Execute o comando WMIC na rede

7

Em vez de digitar isso em um prompt de comando, um de cada vez:

wmic / node: endereço IP / usuário: administrador / senha: mypassword bios get serialnumber

Como posso executar isso em uma sub-rede inteira e gerar um documento de texto? Como eu faço isso a cada dois meses para verificar nosso inventário de computadores, eu assumiria que haveria uma maneira muito mais fácil de colocar isso em um script em lote, em vez de fazê-lo manualmente.

C-vertigem
fonte

Respostas:

13

Você pode colocar uma lista depois node: node:ip1,ip2,ip3ou usar um arquivo node:@file- basta colocar todos os seus endereços IP em um arquivo e depois executar:

wmic /node:@nodes.txt /user:administrator /password:mypassword /output:out.csv bios get serialnumber /format:csv

Isso pressupõe que usuário / senha é o mesmo em todas as máquinas.

wmz
fonte
Existe uma maneira de listar algum console no arquivo de saída que falhou? A resposta que recebo de alguns é "RPC indisponível" ou algo parecido, quero saber quais tenho que voltar e verificar por causa disso.
C # dizzle12:
@ C-dizzle Você pode redirecionar o stderr para o arquivo, por exemplo. com `2> log.txt` (você pode adicioná-lo antes wmicou anexar no final do cmdline e depois analisar que Você também pode querer adicionar./failfast:on
wmz
Não devo estar fazendo essa parte corretamente, você pode me dar um exemplo de como anexar isso ao meu comando?
C-dizzle
2>log.txt wmic /node:@nodes.txt /user:administrator /password:mypassword /output:out.csv bios get serialnumber /format:csvou wmic /node:@nodes.txt /user:administrator /password:mypassword /output:out.csv bios get serialnumber /format:csv 2>log.txt(ambos devem ser linhas simples)
wmz
2

Um loop for com redirecionamento de arquivo funcionará, embora você queira deixá-lo em funcionamento por um tempo se houver mais falhas no conjunto de nós (em outras palavras, não é possível resolver o IP no loop)

(FOR /L %s IN (1,1,254) DO wmic /node:192.96.1.%s /user:administrator /password:pass bios get serialnumber) >> c:\results.txt

Se você planeja colocar isso em um arquivo em lotes, substitua %spor %%s. Isso é tudo.

Chad Harrison
fonte