domingo, 25 de setembro de 2011

Clean Boot


Olá pessoal, vamos hoje ao nosso segundo post!


Você alguma vez já passou por uma situação onde seu computador não iniciava em modo normal porém funcionava normalmente em modo de segurança?


Isso pode acontecer devido à algum problema com software ou serviço que não faz parte do sistema operacional. Quando você inicia o computador em modo seguro esses serviços e aplicações não são inciados e o computador consegue iniciar normalmente.
Mas como descobrir qual o serviço ou software que está causando o problema?
A respota é simples, assim como o procedimento para chegar à resolução
Hoje vamos mostrar como realizar um "Clean Boot"


Clean Boot - Consiste em desabilitar todos os serviços que não são Microsoft, e reiniciando a máquina para verificar se algum outro software ou serviço não Microsoft pode estar interferindo no sistema operacional.


Procedimentos para execução do Cleanboot:





1. Abrir o menu Iniciar >>> Executar e digitar msconfig, conforme a imagem abaixo:
2. No msconfig ir até a aba services, marcar as opções “Hide All Microsoft Services” e “Disable All”
3. O msconfig exibirá somente os serviços que não são Microsoft e desabilitados, conforme a imagem a seguir. Neste caso temos somente 1 serviço não-Microsoft
4. Clique na aba startup e depois em Disable All e em OK

5. Reiniciar a máquina e ver se o problema continua acontecendo sem os serviços e aplicações não Microsoft.
Caso a máquina inicie normalmente após o clean boot, repetir os procedimentos acima, porém ao invés de remover você voltará a adicionar o serviços que foram removidos.


6. Para agilizar o processo você pode adicionar a metade dos serviços, e reinciar a máquina, caso apresente o problema novamente já sabemos que um desses serviços habilitados estão causando o problema. 
Realize os procedimentos novamente até estreitar as opções de serviços disponíveis para chegar no serviço ou aplicação que esteja causando o problema.


Este procedimento apesar de ser bem simples acaba nos salvando de grandes problemas, auxiliando na resolução rápida de um servidor que não inicia mais.


Até a próxima!

quinta-feira, 1 de setembro de 2011

O misterioso caso do DHCP

Olá pessoas! Bem vindo ao nosso primeiro post. Espero poder compartilhar com vocês informações úteis e que ajudem na resolução de problemas do dia a dia em ambientes Microsoft.

Neste primeiro post, vamos acompanhar um caso bem curioso, onde o administrador da rede me reportou que o serviço de DHCP estava parando todos os dias pela manhã, e com isso centenas de usuários ao chegarem ao trabalho tinham problemas de logon. Resultado: todo mundo sem trabalhar! \o/

Caso queira conhecer a fundo o como funciona o serviço de DHCP o link abaixo é leitura obrigatória:
How DHCP works - http://technet.microsoft.com/pt-br/library/cc780760(WS.10).aspx (em inglês)

Voltando ao problema, olhando a console de serviços do Windows, verificamos que o serviço de DHCP estava com o status "stopped", e clicando em start o serviço era iniciado normalmente, sem nenhum problema, até o dia seguinte, onde o mesmo parava novamente.

Fomos atrás de mais pistas que nos levassem a causa desse comportamento, esperava que o serviço de DHCP tivesse um "crash" ou algo do tipo, mas olhando o log de Application do Windows não encontrei nada que nos provasse isso.
Os eventos de System, também não nos mostravam informações que nos dessem pistas do problema. Para piorar, por algum motivo nem os logs de que o serviço foi iniciado ou parado eram logados nesse servidor.

Verificando os logs de auditoria do DHCP, (que ficam por padrão em C:\Windows\System32\Dhcp - se estiverem ativados, claro!) podíámos ver que o serviço parava:

25,05/24/07,21:39:31,0 leases expired and 8 leases deleted,,,, 25,05/24/07,21:39:31,0 leases expired and 0 leases deleted,,,, 11,05/24/07,21:49:53,Renew,10.226.149.19,machinename.contoso.msft,0013D32435D, 11,05/24/07,22:24:09,Renew,10.226.161.54,machinename02.contoso.msft,000009D9B9EB, 01,05/24/07,22:30:01,Stopped,,,,

Isso se repetiu por diversos dias, e sempre no mesmo horário.

Minha primeira ação foi atualizar os binários do DHCP para uma versão mais atual, com um update que atualizasse o arquivo dhcpssvc.dll para uma versão mais atual. a versão na desse arquivo na maquina problemática era 5.2.3790.3959

Instalamos o Kb 950574 - que atualizou o arquivo para a versão 5.2.3790.4257.

Porém no dia seguinte o problema aconteceu novamente, e no mesmo horário!

Essa repetição programada, me fez lembrar de alguma tarefa agendada que pudesse estar rodando todos os dias nesse horário.

Perguntei ao administrador da rede, que me confirmou a existência de um script de backup do DHCP a qual estava justamente programada para aquele horário.

O script em si, parecia inofensivo (e realmente era! Explicarei o porquê depois... mais abaixo) com apenas a seguinte linha:

netsh dhcp server export C:\Scripts\DHCP\servername.txt ALL

Mas quando rodávamos o script manualmente, o serviço não parava!

Depois de muita paciência, identificamos que o comando só causava uma parada no serviço de DHCP após modificarmos algo no DHCP.

Se nada fosse modificado, o script rodava normalmente.
Bom, já descobrimos a causa pelo qual o serviço parava todos os dias pela manhã, mas porquê o inofensivo script de backup parava o serviço de DHCP se alguma modificação fosse realizada na console do DHCP? Além disso as alterações realizadas na console eram perdidas.

A solução de contorno (workaround) era deixar por enquanto essa tarefa desabilitada.

Realizei alguns testes em laboratório e não conseguimos reproduzir este problema. Até que encontramos o seguinte Kb da Microsoft.
http://support.microsoft.com/kb/938134 - After you restart the DHCP Server service, some DHCP options disappear on a Windows Server 2003-based DHCP server

Pensei comigo mesmo, achamos o problema! Intalamos a atualização e retomamos o teste. Nada feito, o problema persistia.

Comecei a imaginar que a database do DHCP estivesse corrompida.
Desfragmentamos a base com o comando: jetpack dhcp.mbd tmp.mdb

Importamos de volta para o DHCP, e após novos testes, o mesmo problema!

Resolvi importar a base do DHCP para um ambiente de laboratório e verificar com mais calma.

Existiam diversos escopos, e verificar um à um foi bem trabalhoso.



Verificando escopo por escopo identificamos uma reserva para o IP 10.226.149.0, o qual seria o endereço de rede para a rede 10.226.149.0/24
Como podemos ver na imagem abaixo:



Excluímos esta reserva do DHCP e o problema foi resolvido. Foi possível executar o script sem que o serviço tivesse que ser iniciado manualmente e as configurações modificadas na console do DHCP foram salvas!

Conclusão:

O script não estava causando o problema. Ele apenas não conseguia realizar o backup da base do DHCP por haver uma configuração errada no DHCP. No nosso caso uma reserva de IP.

A quantidade de escopos neste caso dificultou que verificássemos logo de início uma configuração incorreta do DHCP.

Portanto lembrem-se, caso tenham algum problema similar, verifiquem as configurações do DHCP e se possível documentem, toda e qualquer alteração realizada no ambiente.

Com a documentação em dia, seria fácil verificar a última alteração realizada e rastrear o problema com maior rapidez.

Espero que tenham gostado e que esse artigo possa ajuda-los em um possível troubleshooting de DHCP.

Abraços e até a próxima!

Luciano Brena