Windows Management Instrumentation Command-line (WMIC) - Parte 2

by Hirashiki 1. October 2008 21:12

Continuando o meu post anterior, vamos tratar de mais comandos com o WMIC. Porém, antes de todos os comandos, iremos adicionar parâmetros para realizar as ações em uma máquina remota:

WMIC /node:xxx.xxx.xxx.xxx /user:Dominio\Usuario /password:senha ....

Os parâmetros são simples de entender:

- Node: Indica qual "nó" (IP ou Host) iremos trabalhar
- User: Usuário que executará a ação. Dependendo do comando a ser executado, este usuário deverá ter privilégios administrativos
- password: senha do usuário. Caso você tire este parâmetro da linha de comando, o WMIC solicitará a senha.

Reiniciar uma máquina

Como todo usuário de Windows você sabe que dependendo do problema do Sistema Operacional, um simples restart na máquina resolve:

WMIC /node:xxx.xxx.xxx.xxx /user:Dominio\Usuario /password:senha OS where Primary="True" call win32shutdown 6

Finalizar um processo

Para finalizar um processo, do mesmo modo que você faria usando o gerenciador de tarefas é:

WMIC /node:xxx.xxx.xxx.xxx /user:Dominio\Usuario /password:senha process where caption="processo.extensao" call terminate

Iniciar um processo

Em teoria, você pode iniciar qualquer processo usando o comando WMIC. Porém, programas de interface gráfica são iniciados, mas não aparecem na máquina remota. Para exemplificar, execute o comando:

WMIC /node:xxx.xxx.xxx.xxx /user:Dominio\Usuario /password:senha process call create "notepad.exe"

Você consegue ver na listagem de processos o executável notepad.exe, porém não aparece sua janela. Por medida de segurança, a microsoft bloqueou a inicialização de processos interativos remotamente.

Para "Burlar" esta segurança, utilize o programa PSEXEC instalado na máquina remota:

WMIC /node:xxx.xxx.xxx.xxx /user:Dominio\Usuario /password:senha process call create "psexec -i -d -s notepad.exe"

Executando o mesmo comando em várias máquinas

Se você fosse usar o WMIC para reiniciar 50 máquinas, e se em cada máquina você digitasse o comando, iria demorar muito. Você pode criar um arquivo TXT com o IP das máquinas e utilizar somente uma linha de comando:

WMIC /NODE:@"c:\MinhaLista.txt" OS WHERE Primary="TRUE" CALL Win32ShutDown 6

O WMIC é somente um meio de acessar os serviços disponibiliados pelo WMI. Nos próximos post, veremos a implementação do WMI com c#.

Tags: , , , , ,

Windows

Windows Management Instrumentation Command-line (WMIC) - Parte 1

by Hirashiki 12. August 2008 23:43

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. 

Tags: , , , , ,

Windows

Calendário

<<  September 2010  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar

RecentPosts