Onde eu trabalho, tenho um monte de máquinas com acesso remoto. Muitas vezes essas máquinas travavam e eu precisava reiniciá-las. Percebi que em vez de ir até a máquina e apertar um botão, poderia fazer este mesmo processo remotamente no windows 2000 com o comando Shutdown, assim:
Shutdown -r -f -t 05 -m \\xxx.xxx.xxx.xxx
Onde:
-r significa para desligar e reinicar a máquina
-f significa para forçar o desligamento
-t xx indica que após xx segundos a máquina será reiniciada
-m xxx.xxx.xxx.xxx significa que este comando será realizado no ip digitado (pode-se usar o nome da máquina em vez do ip)
Mesmo usando este comando, percebi que na maioria das vezes, a causa do travamento na máquina era simplesmente um erro em um dos serviços do windows, bastava eu reinicar o serviço que a máquina voltava a funcionar.
Foi aí que eu começei a pesquisar como parar um serviço remotamente que eu descobri o WMI.
O WMI é um componente preinstalado dos sistemas operacionais Windows Server 2003 e Windows XP que fornece informações de gerenciamento e controle em um ambiente corporativo. Usando os padrões da indústria, os administradores de gerenciamento de sistemas podem usar o WMI para consultar e definir informações em computadores desktop, aplicativos, redes e outros componentes corporativos. Diversas ferramentas de gerenciamento são habilitadas para WMI, incluindo Informações do Sistema e o componente Dependências do console Serviços. As dependências de serviços identificam os serviços dos quais o serviço atual depende e os serviços que dependem dele. Os administradores de sistema também podem usar scripts WMI para automatizar tarefas de administração.
O WMI inclui uma ferramenta de linha de comando, WMIC, que oferece interface de linha de comando simples para o WMI consultar e gerenciar remotamente os computadores que executam sistemas operacionais Windows.
Seu funcionamente parece com qualquer programa de DOS somado a comandos SQL. Por exemplo, para verificar qual é o seu sistema operacional digite no prompt de comando:
wmic os get caption
Você terá como retorno algo do tipo:
Caption
Microsoftr Windows VistaT Home Premium
Com o WMIC, eu posso listar todos os processos e serviços que estão sendo executados na máquina. Para ver o serviços você usará o argumento SERVICE:
wmic service get caption, service
E para ver os processos, deverá usar o argumento PROCESS:
wmic process get caption, description
Em ambos os casos, você terá como retorno uma listagem contendo vários processos ou vários serviços. Para retornar um determinado serviço ou processo, use a cláusula WHERE:
wmic process WHERE caption=" SQL Server (SQLEXPRESS)" get caption, description
Caso tenha este serviço, ele retornará:
Caption State
SQL Server (SQLEXPRESS) Running
Agora podemos parar o serviço usando o comando CALL STOPSERVICE, para parar o serviço:
wmic process WHERE caption=" SQL Server (SQLEXPRESS)" call STOPSERVICE
...E o comando CALL STARTSERVICE para reiniciar o serviço:
wmic process WHERE caption=" SQL Server (SQLEXPRESS)" call STARTSERVICE
Após digitar qualquer um destes comandos, aparecerá a execução do WMIC e um código de retorno. Por padrão, o retorno 0 (zero) indica que o comando foi executado com sucesso. Caso retorne alguma coisa diferente, é necessário verificar o tipo de erro. Para ver os códigos de retorno, acesse o site da Microsoft:
StopService
StartService
Este foi somente um post introdutório do WMIC e do que ele pode fazer. Nos próximos posts, irei tratar de mais alguns comandos básicos para serem utilizados com esta ferramenta.