-->
Mostrando postagens com marcador XP. Mostrar todas as postagens
Mostrando postagens com marcador XP. Mostrar todas as postagens

quarta-feira, 16 de dezembro de 2009

STOP: 0x0000007B - Como resolver sem reinstalar o XP - 3a parte.

Na segunda parte deste texto eu fiquei devendo abordar o que ocorreria nos casos em que o erro STOP 7B-34 ocorre pela falta de drivers específicos para chipsets mais novos que não são suportados pelos drivers genéricos do XP. Este é o propósito deste post.

O problema específico abordado nesta parte só ocorre com instalações em HDD SATA. E vou explicar baseado em um exemplo prático.

Eu estou com uma placa-mãe ECS GF8200A (chipset Nforce 780a) aqui. No setup do BIOS existe um item "SATA Mode select" com três opções:

  • AHCI Mode
  • SATA Mode
  • RAID Mode

No modo AHCI o instalador do XP SP3 nem sequer enxerga o HDD*. Para instalar sem precisar apresentar drivers eu mudei o BIOS para o modo SATA, que instalou sem problemas. Depois de tudo funcionando eu mudei o BIOS para AHCI e o XP deixou de dar boot acusando o erro 7B-34.

* Ele poderia enxergar, se o disco de instalação do XP estivesse com o driver já integrado com a ajuda do Nlite, mas isso é assunto para outra série de textos.

No meu caso eu fiz de propósito e poderia consertar facilmente mudando o BIOS de novo para SATA. Mas usar AHCI tem suas vantagens e isso também pode ocorrer se trocarmos a motherboard por uma sem opções (muito comum em notebooks), daí é bom saber como consertar isso.

A solução simples e direta:

A mesma solução, explicada:

Tenha em mente que tudo o que você precisa é de um arquivo driver e de um arquivo .reg com as configurações necessárias.

A primeira coisa foi descobrir qual o driver necessário. Geralmente é um único arquivo, com extensão .sys. Procurando no CD da motherboard eu encontrei um forte candidato em:

\RAID\AHCI\XP32\Floppy\Disk1\nvgts.sys 

Sabendo qual é o driver e, principalmente, tendo acesso ao disco de instalação do mesmo, quase todo o problema já está resolvido. Porque o resto da informação de que você precisa para criar o arquivo .reg para instalar o driver manualmente está em um arquivo .inf no mesmo diretório.

Na quarta parte deste texto eu explicarei como se usa esse arquivo .inf. Como eu estava com preguiça de criar o .reg eu mesmo, procurei primeiro alguém que já tivesse feito isso, com as palavras "nvgts.sys" e "AHCI" no Google. Cheguei a esta página. O arquivo .reg proposto tem o seguinte conteúdo:

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10de&dev_0ad4&cc_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="nvgts"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvgts]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI miniport"
"ErrorControl"=dword:00000003
"ImagePath"="System32\\Drivers\\nvgts.sys"
"Tag"=dword:00000021
"DisableFilterCache"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvgts\parameters]
"BusType"=dword:00000003

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvgts\parameters\PnpInterface]
"5"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvgts\Enum]
"Count"=dword:00000001
"NextInstance"=dword:00000001
"0"="PCI\\VEN_10DE&DEV_0AD4&SUBSYS_83321043&REV_A2\\3&2411e6fe&2&48"


Seu autor chegou a ele por outro método: instalou o XP no modo AHCI e exportou do Registro a chave criada (isso também requer saber que chave exportar. Explicarei outro dia).  O arquivo funciona, mas tem informação desnecessária. O mínimo necessário é isto:

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10de&dev_0ad4&cc_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="nvgts"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvgts]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI miniport"
"ErrorControl"=dword:00000003
"ImagePath"="System32\\Drivers\\nvgts.sys"
"Tag"=dword:00000021
"DisableFilterCache"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvgts\parameters\PnpInterface]
"5"=dword:00000001




Você irá notar que isso é diferente do que está no link da solução curta. Lembre-se de meus arquivos .reg são feitos para serem aplicados por edição offline do Registro. O exemplo acima precisa ser aplicado online para funcionar (se não entendeu a diferença ainda, nem tente fazer isso).

Depois que você colocar o arquivo no lugar e aplicar o .reg, o XP deverá dar boot normalmente. Vai faltar apenas instalar os drivers Windows para o chipset. Mas isso é básico e não tem mais a ver com o problema desta série de textos, por isso não vou abordar aqui.

Como você pode entender do meu texto acima, qualquer instalação do XP dando erro STOP 7B-34 pode ser consertada facilmente se já tivermos os drivers e os arquivos .reg para os principais chipsets em nossa caixa de ferramentas. Em um futuro texto eu vou explicar como você pode criar um arquivo .reg desses do zero, bastando ter em mãos o "floppy" de instalação do driver.

segunda-feira, 7 de dezembro de 2009

STOP: 0x0000007B - Como resolver sem reinstalar o XP - 1a parte.

O erro BSOD 7B é dividido em quatro categorias, cada uma requerendo uma abordagem distinta. A Microsoft tem uma página sobre o erro tão longa que assusta, mas que ainda assim não explica que essas categorias existem. Eu só descobri que esse erro podia ser categorizado quando esbarrei nesta página, publicada por terceiros, que vou simplificar aqui.

É preciso verificar qual é o segundo parâmetro do erro:
  • 0xc000000e (STATUS_NO_SUCH_DEVICE) - Executar FixMBR resolve na maioria dos casos;
  • 0xc0000010 (STATUS_INVALID_DEVICE_REQUEST) - Só costuma ocorrer quando você está usando RAID espelho em software;
  • 0xc0000032 (STATUS_DISK_CORRUPT_ERROR) - Rodar o chkdsk no volume problemático deve resolver o problema;
  • 0xc0000034 (STATUS_OBJECT_NAME_NOT_FOUND) - Um driver está faltando ou está corrompido.

O primeiro e o terceiro são praticamente auto-explicativos. O segundo é muito incomum (embora eu já tenha me deparado com ele uma vez) e não vou dar atenção a ele agora. Neste texto eu abordo apenas o último,

Exemplos:

Erro ao transferir o HDD de uma MSI 648MAX (Intel) para uma Asrock N61P-S (AMD)

STOP: 0x0000007B (0xBA4C3528, 0xC0000034, 0x00000000, 0x00000000)

Ou de uma Asrock P4VM800 (Intel) para uma ASUS M2N-MX SE (AMD)

STOP: 0x0000007B (0xF79B1524, 0xC0000034, 0x00000000, 0x00000000)

Veja que o segundo parâmetro (0xC0000034) permanece o mesmo, porque o problema é da mesma categoria: faltam drivers. Esse erro é chamado pela Microsoft de "INACCESSIBLE_BOOT_DEVICE", mas daqui em diante vou me referir a esse erro como "7B-34".

O erro 7B-34 é o mais comum de todos e pela minha experiência suas causas podem ser divididas em três:
  • Mudança na configuração no setup do BIOS - Essa é a primeira coisa que deve ser verificada antes de partir para as outras possibilidades. Em muitas motherboards modernas é possível fazer com que o HDD SATA apareça como SATA mesmo ou como um drive IDE. Se o Windows XP for instalado em um modo e alguém mudar o BIOS para o outro, vai dar erro 7B-34 no próximo boot. Basta mudar a configuração de volta para que o erro desapareça. Isso pode ocorrer também "do nada" se, por exemplo, a configuração usada para instalar não era a padrão e por qualquer motivo a motherboard reverter para o padrão. A primeira situação que vem à mente é troca da bateria, mas já muito vi caso de conteúdo da CMOS que se corrompe sozinho. 21/08/11: Configurar de "SATA" para "AHCI" e vice-versa também causa/resolve o problema.
  • Driver ausente mesmo - Acontece em alguns casos quando se troca de motherboard. Note que você pode tentar primeiro o método pelo BIOS para resolver o problema; 
  • Driver corrompido -  Ai não tem jeito a não ser repor o driver.

Como consertar drivers ausentes ou corrompidos.

O modo mais comum e "simples" de resolver esse problema é reinstalar o Windows "por cima" da instalação problemática. Porém esse método tem alguns problemas:
  • Nem sempre é possível - Por exemplo, se o Windows do cliente for corporate e você só tiver à mão um CD da versão OEM ou vice-versa, a opção de reparar ou reinstalar não vai aparecer. Também já vi casos em que o CD do XP SP3 não habilitava a reparação, mas um do SP2 habilitava (eu ando com os dois por causa disso).
  • Updates são perdidos - O Windows será revertido para o estado do CD que você usar. Muitos updates e até service packs inteiros terão que ser reinstalados depois. Isso inclui o Internet Explorer, que reverte para o 6.0;
  • Demora - São pelo menos 30 minutos em um computador rápido. Não é raro uma reinstalação do XP levar uma hora ou mais, sem contar com updates;
  • Reinstalação sempre tem risco (pequeno, mas existe) de não conseguir terminar por causa de um problema ainda mais dífícil de consertar que o erro 7B-34, como o erro "Asms", do qual falarei outro dia.
Por sorte, repor os drivers manualmente é um processo muito simples e rápido, quando você entende como funciona. E isto será explicado na segunda parte deste texto.

quinta-feira, 16 de abril de 2009

O estranho, mas às vezes útil, prompt "SHIFT+F10" do XP.

Durante uma instalação do Windows XP, logo após entrar no modo GUI da instalação basta teclar SHIFT+F10 para ter acesso a um prompt de comando como este:



Se você já conhecia isso, pode notar que o console recuperação do Vista não é muito diferente. Mas existe uma diferença importante: Para acessar esse prompt uma instalação do XP precisa estar em andamento e não é possível pará-la (não que eu saiba). Por sorte a instalação sempre pára pelo menos uma vez (se não foi modificada) na hora de pedir o serial ou perguntar a configuração de data/hora.

Na hora do sufoco, quebra o galho. Mas é menos problemático se você puder fazer essa nova instalação (que você vai descartar) em outra partição na mesma máquina. De qualquer forma você precisa estar bem certo do que vai fazer, porque você não vai querer que falte alguma coisa e você tenha que esperar todo o processo de instalação até chegar à parte gráfica de novo.

O poderoso Console de Recuperação do Vista.

Se você já instalou o Windows Vista, deve ter reparado que ele também conta com um Console de Recuperação, como o XP. Porém se você não explorou as possibilidades desse console talvez não saiba de algumas coisas importantes:
  • Ele também serve para fazer reparos no Windows XP e 2000;
  • Ele não tem as limitações do console do XP e pode rodar muito mais programas, incluindo programas com GUI, como o Regedit e o Notepad. Você também está liberado para rodar programas de terceiros;
  • O console "monta" todas as unidades FAT32/NTFS que encontrar, incluindo dispositivos USB Mass Storage. O Console do XP também, mas ele é tão limitado que isso passa despercebido.

No lugar de Instalar Agora, clique em Reparar o Computador.



Se você rodar em um PC que não tenha o Vista instalado, esta lista vai aparecer vazia. Simplesmente clique em Avançar.

Atenção: Se houver uma instalação do Vista listada na tela abaixo, para entrar no console você vai ter que clicar em Avançar e recusar a oferta que o Windows vai fazer para usar a Recuperação do Sistema. Só depois disso e de perguntar se você quer enviar informações sobre o problema para a MS é que vai aparecer o link para as "opções avançadas", que permite entrar no console.





Clique em Prompt de Comando:






A partir do prompt você pode rodar diversos outros programas:



Como eu disse antes, a partir do console (e dos programas abertos a partir dele) você acessa todas as suas unidades, incluindo pendrives. O Windows ainda acrescenta uma:
  • X: - Unidade virtual com o boot do Vista. Quando você executa o Notepad, é o desta unidade que roda e não o do HDD.
Atenção: O Registro que o Regedit enxerga é o virtual em X: e não o da instalação do Windows no HDD. Mas explicarei como esse problema pode ser contornado em outro post.

Explorer.exe não está disponível, mas não faz falta. Qualquer caixa de diálogo "Abrir" serve. No pior caso você tem que habilitar "todos os arquivos" para poder ver os executáveis (usando o diálogo "Carregar Hive" de Regedit isso não é necessário). E usar a opção "Executar como Administrador" no menu de contexto.



No exemplo eu estou executando o programa Movie Maker da instalação problemática, mas apenas para ilustrar. Movie Maker nem roda (faltam codecs e outros arquivos de suporte) nem tem qualquer utilidade no reparo.

Você pode usar esses diálogos para copiar, recortar e colar como se estivesse no Explorer.

Se você acha que o fato do Vista vir em um DVD limita a utilidade desta dica, leia este artigo e procure por "Windows Vista Lite" no Google. Você verá que não é tão difícil ter o boot do Vista em um CD (eu ando com um na minha bolsa de ferramentas).

Melhorando (um pouquinho) o Console de Recuperação.

Quem já tentou usar o Console de Recuperação do XP sabe o quanto ele é ruim. Seria uma tentativa patética de se fazer um prompt de comando, não fosse o fato de suas limitações serem propositais. Por exemplo, não é possível copiar nada para disquetes, nem usar coringas em certos comandos (copy *.* é proibido por default). Mas dá para melhorar um pouco.

Nota: Como você verá, isso só é possível se você estiver em condições de editar o registro. E se você tem condições de fazê-lo geralmente não precisa do Console. Então é bom fazer isso ANTES de ter um problema.

Estando no Console, se você digitar o comando SET verá que só existem quatro variáveis de ambiente, com nomes sugestivos:

AllowAllPaths = false
AllowRemovableMedia = false
AllowWildCards = false
NoCopyPrompt = false

E se você tentar passar qualquer uma delas para TRUE, verá que não tem permissão. Isso pode ser resolvido alterando um valor no Registro na chave:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Setup\RecoveryConsole
Configure o valor SetCommand para 1 (dword)

Isso permitirá que você mude o valor das quatro variáveis para TRUE, eliminando pelo menos essas limitações.

Se você não quiser ter que digitar os quatro comando SET, crie um arquivo qualquer (digamos que seu nome seja "enable.txt") com este conteúdo:

SET AllowAllPaths = TRUE
SET AllowRemovableMedia = TRUE
SET AllowWildCards = TRUE
SET NoCopyPrompt = TRUE

Para "executar" esse arquivo use o comando BATCH do Console assim: Batch enable.txt

Isso é necessário porque o Console do XP não permite a execução de comandos arbitrários (que não estejam em sua lista de comandos e programas permitidos), então você não pode criar um .bat com esses quatro comandos SET, mas pode obter o mesmo efeito usando esse método indireto.

Nota: O Console de Recuperação do XP enxerga dispositivos USB Mass Storage, desde que o hardware da motherboard ajude. Então você pode ter esse "batch" em um pendrive.

Só existe mais um valor do Registro que vale a pena conhecer. Se você configurar sob a mesma chave "SecurityLevel" para 1 (dword) o Console não pedirá mais a senha de Administrador ao se conectar a essa instalação do Windows.

Resumindo: são dois valores no Registro que você pode mudar, como mostra a figura abaixo:


Instalando o Console de Recuperação do XP no HDD.

Qualquer power user que use o Windows XP já deve saber da existência do limitadíssimo, mas às vezes útil, Console de Recuperação (Recovery Console), que você pode acessar usando o CD de instalação. Eu imagino que a maioria já saiba também (mas eu vou explicar assim mesmo) que é possível instalar esse recurso no HDD de modo a não ser necessário usar o CD. E fica bem mais rápido usar dessa forma.

Para instalar basta procurar pela pasta I386 de instalação do XP (pode ser no CD, em uma cópia no HDD, etc), abrir um prompt de comando nela e digitar:

winnt32.exe /cmdcons

O instalador vai tentar se conectar com a Internet. Quando ele fizer isso basta cancelar que a instalação poderá prosseguir com o que você tem no CD.

Isso vai instalar os arquivos necessários em %systemdrive%\cmdcons e acrescentar uma opção ao menu de inicialização:



Eu instalo isso nos meus PCs particulares, mas se eu fosse instalar em um PC de cliente ajustaria o timeout do menu para apenas um ou dois segundos, de forma que suma rápido o suficiente para não chamar atenção mas ainda ser possível usar a opção quando você sabe que ela está lá.

domingo, 5 de abril de 2009

Explorer.exe consumindo CPU demais aleatoriamente?

Experimente fechar todas as janelas de "Resultado da Pesquisa".

Este é um problema que eu estou perseguindo há muito tempo. De vez em quando o Explorer começa a consumir de 50 a 100% da CPU sem nenhum motivo aparente e antes que eu consiga obter alguma informação útil, volta a 0%. O próprio consumo elevado de CPU atrapalha o diagnóstico com o Process Explorer e, pior, o Process Monitor, que mal consegue operar no meu PC nessas situações.

Eu não tenho certeza ainda, mas é a segunda vez que o problema desaparece logo depois de eu fechar todas (e apenas) as janelas de "Resultado da Pesquisa" abertas, mesmo que não haja nenhuma em andamento. 

Isso no XP SP3, mas pelo que consigo lembrar acontece comigo desde o SP2. 

domingo, 22 de março de 2009

Contornando a necessidade de Gpedit.msc.

No post anterior ficou faltando um jeito de implementar a primeira dica em versões do Windows que não vem com o editor de "policies" Gpedit.msc (Windows XP Home, Windows Vista Home e Home Premium, etc). Pois eu encontrei duas planilhas da Microsoft que listam as chaves do registro envolvidas com as "policies".
As planilhas tem as descrições em inglês de cada policy, por isso sabendo a descrição da policy que você quer mudar, basta fazer uma busca de texto pelo seu equivalente em inglês. Com isso você fica sabendo o que mudar no Registro. 

Uma "vantagem" sobre o uso de Gpedit.msc é justamente que você pode fazer uma busca por palavras, se não lembrar onde fica a opção que você quer mudar.

Porém eu creio que algumas policies (como a que trata do limite de usuários do Terminal Services) envolvem mudar vários valores no Registro. Eu não apurei como esses casos são abordados na planilha.

Edit: Se você ainda assim quiser ter o Gpedit.msc no XP Home, veja esta página, que explica o que precisa ser feito. Não basta copiar Gpedit.msc, porque outros arquivos são necessários. Eu não testei e muito menos baixei os arquivos. Eu prefiro pegar os arquivos necessários em uma instalação do Windows da minha confiança.

terça-feira, 17 de março de 2009

Mais informações ao Ligar/Desligar o Windows XP.

É somente um pouco mais, mas pode ser só o que falta para descobrir o que está errado no computador.

Nota: Eu recomendo que você ative pelo menos a Dica 1 (e se não incomodar, também a dica 2) preventivamente, porque dependendo do problema você pode não ser capaz de entrar no Windows para ativar esses recursos depois.


Dica 1 (não funciona no XP Home)

Iniciar -> Executar -> Gpedit.msc

Configuração do Computador -> Modelos Administrativos -> Sistema -> Mensagens de status detalhadas versus normais.



Selecione "Ativado". A partir do próximo boot se prestar atenção você verá na tela mensagens como estas:

Tocando o som de logon...
Executando: c:\windows\system32\wlnotify.dll...
Tocando o som de logoff...
Interrompendo a proteção de arquivo do Windows...

Windows Vista: gpedit.msc nem está disponível em nenhuma versão da Home Premium para baixo. Não testei nas outras.

[22/03]: Se você tem uma das versões do Windows que não vem com o Gpedit.msc, pode fazer a alteração direto no Registro em:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system

Crie o valor REG_DWORD "VerboseStatus" com conteúdo "1".


Dica 2

Iniciar -> Executar -> Msconfig

Na aba BOOT.INI, marque a opção /SOS.



Isso fará com que o Windows mostre no lugar do logotipo animado umas poucas mensagens indicadoras do estado da inicialização.

Windows Vista: a opção /SOS existe mas é chamada de "informações sobre inicialização do SO".

Mesmo que não digam nada de útil, as mensagens exibidas nas duas dicas servem como pontos de referência. Em uma análise você pode registrar "demora n segundos entre a mensagem x e a mensagem y" ou "trava ao exibir a mensagem z".

E é sempre bom lembrar que se você escolher a opção "Ativar log de inicialização" no menu de boot do XP (tecla F8) é acrescentado em c:\windows\ntbtlog.txt um log fraquinho (é menos detalhado que o log do Win9x) mas que pode ajudar também. Principalmente nos casos em que o PC trava antes de concluir o boot.


Posts relacionados:

quarta-feira, 21 de janeiro de 2009

Office 2003 muito lento ao "salvar como" na rede.

Eu havia feito modificações na rede de um cliente visando resolver os problemas de lentidão e no dia seguinte ele telefonou reclamando que "o acesso ao servidor estava muito lento". Chegando lá fiz os testes do meu modo habitual e não vi nada de errado. Pedi então ao usuário que reproduzisse o problema e acompanhei quando ele abriu o Outlook, criou um e-mail e mandou "salvar como" em uma pasta na rede.

O Outlook ficou cerca de um minuto travado, exibindo a ampulheta. E havia repetibilidade. Você entra na pasta compartilhada imediatamente, mas ao clicar em qualquer pasta dentro dela, o programa fica aproximadamente um minuto parado.

Inicialmente eu achei que poderia ser o problema com Arquivos Offline, porque os cenários e sintomas eram muito parecidos, mas não era esse o caso. Deu trabalho entender exatamente o que estava havendo e não estou com saco para descrever tudo aqui. Para resumir, o problema só acontece se todos os requisitos abaixo forem satisfeitos:
  • Se nas configurações DNS estiver definido o servidor de domínio da empresa (foi essa configuração que fiz que trouxe o problema à tona) - Não ocorre se estiver configurado para DNS automático;
  • Ao "Salvar Como" usando programas do Office 2003 - Não acontece se usar o Bloco de Notas, por exemplo;
  • Se você salvar em uma pasta da rede usando o link "meus locais de rede" - Não acontece se você digitar o caminho UNC até a pasta;
  • Se na lista de Meus Locais de Rede existirem atalhos para locais que estão offline no momento (computadores desligados, por exemplo);
  • Se a caixa de diálogo "Salvar Como" estiver configurada para "detalhes" - O problema não ocorre no modo lista;

Para completar o quadro, eu encontrei quatro instalações do Office 2003 nessa empresa e apenas em duas o problema ocorre. Curiosamente são justamente as duas cópias que não tiveram nenhuma atualização. O problema só ocorre nas cópias onde o Office 2003 SP3 está instalado. Pode ser que tenha algo a ver, mas também pode ser apenas uma coincidência. Todos os computadores testados rodavam Windows XP SP3.

É importante salientar que eu não desfiz minha configuração. Pedi ao usuário que usasse o modo "lista" da caixa de diálogo para contornar o problema. Isso porque a definição do servidor DNS é necessária para contornar este outro problema.

sábado, 13 de dezembro de 2008

E não é que parece mesmo?

Este era para ser o papel de parede padrão do Windows XP:



Deserto Vermelho (Red Moon Desert)

Por que foi trocado pelo que conhecemos? Porque algumas pessoas apontaram que a imagem se parecia com um par de nádegas (ok, uma bunda). Olhe de novo.

Depois que li isso, sempre que vejo esse papel de parede no computador de alguém, abro um sorriso :)

Não, eu não estou inventando. Isso vem de fonte perfeitamente confiável.

sexta-feira, 21 de novembro de 2008

Redirecionando LPT1 para uma impressora de rede no XP.

Em geral, imprimir a partir de programas MSDOS em uma impressora de rede é fácil usando o comando:

NET USE LPT1 \\SERVIDOR\IMPRESSORA 

Por exemplo: 

Net Use LPT1 \\contabilidade\epsonlx 

Essa configuração só dura até o proximo boot, mas você pode fazer com que seja permanente com o parâmetro /persistent:yes, assim:

Net Use LPT1 \\contabilidade\epsonlx /persistent:yes

Nota: você pode precisar incluir usuário e senha na linha de comando. Não vou entrar nesses detalhes agora. Digite NET USE ? para ver a sintaxe completa do comando.

Isso tinha funcionado bem até ontem, quando fui chamado para resolver o problema de um determinado programa que não queria imprimir na rede de jeito nenhum. O primeiro problema é que apesar de ser "for windows" o programa era uma "evolução" de um programa DOS e o programador só sabia imprimir em LPT1 (nem mesmo LPT2 ou LPT3 - esperto, não?). Não havia opção para escolher em que impressora imprimir, como é normal em programas Windows.

O segundo problema é que esse usuário específico não conseguia fazer o mapeamento com NET USE. Sempre pedia a senha e depois acusava Acesso Negado, não importando que usuário/senha eu fornecesse. Mas logando como o meu usuário o mapeamento funcionava normalmente.

Não demorou muito para que eu determinasse que não funcionava porque esse usuário era Limitado, mas eu era o Administrador.

Fiz uma rápida pesquisa no Google e encontrei esta página, que explica o motivo: por questões de segurança um usuário limitado não pode mapear uma porta física para uma impressora de rede no XP e 2003. A explicação de como resolver o problema me pareceu demasiado complicada ("devcon" what?!) porque enquanto eu lia já havia me ocorrido uma possível solução.

Fui no setup do BIOS do PC e desabilitei a porta LPT1. Tentei de novo fazer o mapeamento e tudo funcionou como deveria.

É claro que eu só tinha essa opção porque esse PC não tinha nenhuma impressora fisicamente conectada a LPT1 e nem vai ter. Se o seu caso for diferente você terá que seguir as outras sugestões da página. Mais tarde eu fui ler com calma os comentários do post e outras pessoas sugerem fazer o mesmo que eu fiz.

terça-feira, 18 de novembro de 2008

Como fazer logon automático de um usuário no XP e 2K.

Nota1: Sim, eu sei que já publiquei isso antes. Não é falta de assunto (muito pelo contrário). Eu vou precisar fazer referência a esta dica em futuros posts (já em rascunho) e onde essa informação estava não dava para fazer um link direto só para ela.

Nota2: Não se confunda. "Administrador" (com "A" maiúsculo) é um usuário específico do Windows (no Vista é conhecido como Super Administrador). Já "administrador" (minúsculo) é qualquer usuário com poderes de administração. Existe uma diferença importante no que diz respeito a este post.

Este post aborda o Windows XP, mas no Win2K o procedimento é praticamente o mesmo, como você verá adiante.

Por default, o XP já faz logon automático em duas situações:
  • Se você só tem o usuário Administrador definido no XP, sem senha: Logon automático como Administrador;
  • Se você tem ele e apenas mais um usuário, sem senha: Logon automático como esse outro usuário.
Mas basta ter um segundo outro usuário, mesmo que ninguém tenha senha, para que óbviamente o XP não possa mais decidir sozinho quem vai entrar automaticamente. E existem casos onde mesmo com todo mundo tendo senha você vai achar conveniente que sempre ao dar boot um usuário inicie automaticamente. É o caso quando você tem um usuário administrador e um limitado e quer que sempre inicie pelo limitado.


Iniciar -> Executar -> control userpasswords2 [ENTER]

(No Windows 2000 é control userpasswords.)

Desmarque a opção "os usuários devem digitar um nome de usuário..."



Ao clicar em OK, vai perguntar usuário/senha, coloque o nome do usuário que você deseja logar automaticamente (no exemplo, "Administrador") e preencha os campos de senha com a senha desse usuário.



Se o usuário não tiver senha, deixe em branco, mas é importante que a senha que você coloca aqui confira com a senha real do usuário, ou coisas estranhas e desagradáveis podem acontecer!

Edit: Não é recomendável que você deixe sem senha. Já que o logon vai ser automático mesmo e você não vai digitar nada, dê-se ao trabalho de criar uma senha para esse usuário. Por questões de segurança o Windows bloqueia várias funcionalidades de rede para usuários sem senha.

terça-feira, 21 de outubro de 2008

Horário de verão: Se usa XP, verifique seu relógio.

O Windows XP, mesmo com SP3, não é dos mais inteligentes quando se trata do horário de verão brasileiro. Se você está numa cidade que não precisou adiantar o relógio em uma hora, como Recife, verifique se o Windows não fez isso por você. Só agora eu notei que o relógio do meu PC adiantou a hora sozinho, quando não deveria.

Eu não deveria ter tido nenhum problema com isso, porque eu sempre desligo "ajustar automaticamente o relógio para o horário de verão". Mas como um FDP me fez reinstalar meu sistema inteiro, esta foi mais uma das inúmeras configurações que eu vou descobrir que esqueci de fazer só quando algo der errado.

Edit: Isso é ainda mais chato para usuários limitados, que não podem ajustar os próprios relógios e tem que esperar pela intervenção de um administrador. E lembre-se que isso não é só uma questão de "ver a hora errada", pois a hora de chegada e envio de e-mails do Outlook Express e de criação/modificação de arquivos também fica errada.

Diferença de hora impede Vista de acessar XP

A descrição do problema feita pelo cliente era muito estranha. Ele me disse que durante boa parte da manhã era impossível acessar o compartilhamento no PC da recepção (XP) a partir de uma máquina Windows Vista (a única), mas que não tinha problema nenhum para fazê-lo a partir da máquina XP que ficava ao lado. A parte estranha é que, segundo ele, deixando a janela do Explorer minimizada, horas depois ele conseguia acessar o compartilhamento.

No momento em que eu cheguei, o acesso já funcionava normalmente. Mas bastou reiniciar o Vista para a máquina da Recepção recusar as mesmas senhas que aceitava um minuto antes. Como eu nunca tinha visto nada parecido, parti logo para uma busca no Google e, por sorte, logo na primeira página de resultados encontrei esta, onde um usuário que tinha o mesmo problema afirmava ter resolvido apenas sincronizando as datas nas máquinas.

Eu sabia que uma diferença de horário impedia você de autenticar em um servidor de domínio, mas eu nunca havia me deparado antes com essa limitação em uma rede ponto a ponto e com máquinas 9x, 2K e XP. Mesmo desconfiado, pedi para o usuário atrasar o relógio dele em 10 minutos e tentar acessar o compartilhamento de novo. Funcionou na hora, literalmente.

Nota: A regra geral em domínios Windows é que não deve haver uma diferença maior que 5 minutos entre os relógios das máquinas.

Ainda cético, liguei na manhã seguinte para ver se realmente tinha resolvido o problema. Ele disse que aconteceu de novo, mas que bastou sincronizar os relógios novamente para fazer o logon.

Putz... eu esquecera da sincronização de hora que o Windows faz pela internet.

O problema é que a máquina da Recepção precisa ficar com o relógio 10 minutos atrasado por causa da programação do relógio de ponto da empresa (necessidade deles na qual não me meto). Quando a máquina Vista acerta seu relógio via Internet, o compartilhamento deixa de funcionar no próximo boot.

Mais uma frescura do Vista para a minha lista. Eu entendo que sincronização de horários é muito importante em certas aplicações e eu mesmo já escrevi um programa de automação industrial que requeria isso, mas na maioria dos casos essa "imposição" é um estorvo. Se a máquina Vista não pudesse ficar também 10 minutos atrasada eu teria um pepino ainda maior para desentortar.

O que falta explicar: Por que depois de algumas horas o compartilhamento funcionava? Isso poderia acontecer se o relógio do Vista estivesse atrasando uns 10 minutos por dia ou se o relógio da Recepção estivesse sendo atrasado manualmente todos os dias pela manhã e automaticamente corrigido horas depois. Mas a recepcionista disse que ninguém interfere com a hora do computador dela.

Vou checar na próxima visita.

domingo, 19 de outubro de 2008

Notebook Toshiba U305 : Drivers para Windows XP

O notebook vem originalmente com 1GB de RAM e Windows Vista Home Premium, que é naturalmente uma carroça. Mesmo com 2GB de RAM o bicho ainda fica lerdo.

A Toshiba não dá suporte a Windows XP nesse notebook, por isso você tem que se virar para achar os drivers. Após instalado o Windows XP ficam faltando o driver de video, o driver do adaptador de rede sem fio e o driver do leitor de cartões (que aparece como uns quatro "dispositivo do sistema básico").

Driver do leitor: Use o driver Ricoh Card Reader do DVD 1 ou do site da Toshiba;

Driver de Video: Intel 945GM - O driver disponibilizado pela Toshiba, no site ou no DVD original, não serve.

Driver Wi-Fi: Esse deu mais trabalho. O driver do DVD não serve (provavelmente é só para Vista). Para o Unknown Devices ele aparece mais ou menos como "Atheros AR5006x" e esse nome é que aparece na lista de drivers do DVD da Toshiba. Mas tentar instalar qualquer driver específico para o AR5006, como este, é perda de tempo. O driver instala, mas fica sempre com uma exclamação no gerenciador de dispositivos. Eu notei pelo Unknown Devices que havia uma referência a "askey", mas sem nenhum modelo. Depois de esgotar minha paciência com a instalação do driver errado (que até então eu achava ser o certo), abri o notebook para procurar mais pistas no próprio adaptador. Havia uma:



Atheros/ASKEY AR5BXB63

Procurando por "AR5BXB63" no Google só encontrei dois links com o driver. Um era no driverguide (requer registro) e o outro estava hospedado no Rapidshare. Baixei o do Rapidshare ciente de que podia ser alguma trapaça, mas não era.

Para quem prefere confiar em mim, coloquei uma cópia no meu servidor.

Edit: Com os drivers citados acima, o U305 está agora rodando XP com tudo instalado e funcionando como deveria.

Edit 20/10/08: O autor deste tópico afirma que o Satellite U305 funciona com os drivers do Tecra M8. Assim se você tiver qualquer outra dificuldade com drivers XP para o U305, tente os desta página.

quinta-feira, 4 de setembro de 2008

A diferença entre diretório e pasta

Pois é. Desde que o Windows 95 introduziu a "pasta" eu vinha pensando que era apenas outro nome para diretório. Não é.

Como é explicado por Raymond Chen em seu blog, o conceito de "pasta" engloba diretórios e estruturas virtuais que são exibidas como se fossem diretórios, mas não são. O exemplo mais comum de algo que é pasta mas não é diretório é o Painel de Controle.

Para quase todos os efeitos práticos, você pode usar "pasta" e "diretório" como se fossem sinônimos que vai estar tudo bem. Tanto é que eu venho fazendo isso há 13 anos e nunca notei que estava errado.

Mas se o assunto é programação a diferença é importante. Se você tentar processar todas as "pastas" quando o que queria era processar "diretórios", vai acabar com um resultado inesperado. Talvez seja por isso que uma determinada versão do Treesize parece se perder completamente ao examinar o conteúdo de Documents and Settings, incluindo o tamanho de compartilhamentos inteiros em outro PC na rede como se os arquivos estivessem fisicamente no HDD local. Provavelmente o programador não limitou a iteração a apenas diretórios e o loop acabou entrando na pasta "Meus Locais de Rede" para computar o espaço ocupado. Aí já viu...

quarta-feira, 20 de agosto de 2008

Extensões de arquivo que nunca aparecem

Já se perguntou por que é que apesar de ter desmarcado "ocultar extensões dos tipos de arquivos conhecidos" algumas extensões nunca aparecem?

Isso ocorre com vários tipos de arquivo, como os *.lnk, e os *.pif. No caso dos links pode até ser desejável, afinal ia quebrar a elegância do Desktop. Mas no caso dos *.pif eu acho bem inconveniente.

Esse comportamento é controlado por um valor NeverShowExt na chave correspondente ao tipo de arquivo no Registro (sempre em HKEY_CLASSES_ROOT). Basta apagar esse valor para a extensão passar a ser exibida para o tipo de arquivo correspondente.

Para exibir a extensão de arquivos *.pif, basta apagar o valor NeverShowExt em

HKEY_CLASSES_ROOT\piffile

Pode ser necessário reiniciar o Windows para que faça efeito.


Outros tipos:


Recortes (scraps) de texto (*.shs):
HKEY_CLASSES_ROOT\ShellScrap

Links do shell do Windows (*.lnk):
HKEY_CLASSES_ROOT\lnkfile

Links da Internet (*.url):
HKEY_CLASSES_ROOT\InternetShortcut

quinta-feira, 7 de agosto de 2008

O primeiro vírus invisível a gente nunca esquece

Era só uma questão de tempo e eu até acho que demorou bastante, mas só na semana passada eu me deparei com um vírus que não aparece de jeito nenhum nem mesmo no poderoso Process Explorer. O vírus é mais esperto que a média, conseguindo infectar até mesmo contas de usuário limitado do XP (é também o primeiro que eu encontro, apesar de não ser algo realmente difícil).


Baseado nos vários nomes diferentes dados a esse vírus eu fiz uma pesquisa no Google e a descrição que encontrei mais parecida com a do comportamento do exemplar que tenho foi esta aqui. Mas mesmo ela não cita que o vírus não aparece na lista de processos. Nenhuma das descrições que encontrei cita isso, por isso acredito que esse vírus seja uma mutação que só foi detectada porque ainda usa código conhecido. O seu autor pegou o código de um outro vírus e acrescentou a "invisibilidade".

Ao ser executado, você vê que sys32.exe aparece na lista de processos do Process Explorer mas some logo em seguida. Você só percebe que está infectado porque:
  • Se seu antivirus estiver atualizado, ele vai dizer (esse virus usa código conhecido);
  • A intervalos irregulares seu firewall vai dizer que o Windows Explorer (não o IE) está tentando acessar a porta 7000 de endereços na internet;
  • Qualquer pendrive detectado pelo Windows ganhará imediatamente uma pasta Recycler e um arquivo autorun.inf;
Eu conheço muito pouco desse assunto, mas como o firewall diz que é o Explorer que tenta acessar a Internet e o vírus não aparece na lista, eu imagino que o vírus esteja operando por "code injection" e "hooks" injetando seu código no espaço da memória RAM que o Windows acredita estar sendo ocupado apenas pelo Explorer.

A maioria das pessoas chamaria isso de "rootkit". Mas assim como a maioria das pessoas já perdeu a noção da diferença entre "pirataria" e "falsificação" (com a ajuda incansável da nossa mídia obtusa) , a maioria das pessoas não tem noção do que é realmente um (assustador) "rootkit".

Como o vírus não é realmente um rootkit, fica fácil removê-lo, principalmente porque ele não esconde as chaves do Registro que apontam para ele e seu executável não consegue se esconder completamente.

Como remover um malware que se esconde na Lixeira

OK, então o PC já está infectado e você já determinou que o filho de uma $%@## está escondido em C:\Recycler, mas você não consegue tirá-lo de lá porque ao clicar na pasta onde ele está escondido ela aparece como vazia? Isso é fácil de resolver quando você sabe por que isso acontece.

Editado: O jeito mais fácil de fazer isso mesmo é apagar a lixeira inteira porque ela é recriada automaticamente na próxima vez que o usuário jogar algo lá. O que vou explicar a seguir é para os casos onde você não quiser ou não puder apagar a(s) lixeira(s), por qualquer motivo.

Editado 2: Para o propósito deste texto, existe uma diferença bem grande entre esvaziar a lixeira e apagar a lixeira.

O comportamento "especial" de pastas como a Lixeira é definido pelo conteúdo de um arquivo desktop.ini contido nela. Apesar da Microsoft ter decretado a obsolescência dos arquivos INI há muito tempo em favor do Registro, continua usando arquivos INI para isso porque não haveria como garantir que a pasta mantivesse seu status ao mover o drive para outro PC, se o status fosse armazenado no Registro.

Quando o Windows lê um arquivo desktop.ini que diz que aquela pasta é uma Lixeira, ele só exibe os arquivos contidos nessa pasta que estiverem no banco de dados da Lixeira. Assim se o malware se copia para uma Lixeira sem usar o mecanismo de exclusão para a Lixeira do Windows, ele fica invisível. E isso é ridiculamente fácil de se fazer.

Para conseguir entrar na pasta e ver todos os arquivos, incluindo o malware, você precisa excluir o arquivo desktop.ini ou eliminar seu conteúdo, mas como fazer isso se desktop.ini também está invisível? Podem existir vários métodos para se fazer isso, mas o mais simples é este:

Com o Explorer, entre na Lixeira até onde puder ir. Geralmente será um caminho como este:

C:\RECYCLER\S-1-5-21-1177238915-261478967-625345543-1003

Copie o caminho, que aparece na barra de endereço do Explorer.

Abra o notepad, peça Arquivo->Abrir e na caixa de escolha de arquivo cole o caminho. Antes de dar o ENTER, acrescente "\desktop.ini" (sem as aspas). Você ficará com um caminho como este:

C:\RECYCLER\S-1-5-21-1177238915-261478967-625345543-1003\desktop.ini

Dê ENTER. O arquivo desktop.ini abrirá exibindo este conteúdo (se for uma Lixeira):

[.ShellClassInfo]
CLSID={645FF040-5081-101B-9F08-00AA002F954E}

Mas não importa o que está escrito. Selecione tudo, apague e salve o arquivo.

Tente entrar na pasta de novo com o Explorer. Ela será uma pasta normal agora e você verá tanto o arquivo desktop.ini quanto o malware e qualquer outra coisa que estiver escondida lá.

Se existirem várias lixeiras dentro de Recycler (o Windows cria uma para cada usuário) repita o procedimento para todas elas.

Óbviamente, você pode ter que fazer isso no Modo de Segurança ou dando boot por outra instalação, ou o malware irá impedir você de apagá-lo.