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#.