Inventário de scripts do nome da máquina, nome de usuário atual, sistema operacional usando WMIC ou PowerShell

3

Eu tenho um arquivo de texto de cada máquina em nosso domínio do Windows Active Directory, e gostaria de determinar o usuário atualmente conectado (se houver) e o sistema operacional de cada máquina usando o WMIC:

WMIC /NODE:<machine_name> COMPUTERSYSTEM GET USERNAME
WMIC /NODE:<machine_name> OS GET caption

Alguém sabe como isso pode ser roteirizado para ler minha lista de computadores a partir de um arquivo de texto e executar os dois comandos WMIC para cada um e gerar os resultados no formato:

ComputerName, OperatingSystem, CurrentUserName
    
por tbone 24.11.2009 / 01:33

1 resposta

5

Eu não recomendo usar o wmic para isso (embora você possa usar um para lop em um arquivo de lote), pois é muito mais fácil no powershell (que é a maneira como a questão é marcada). No topo da minha cabeça eu faria isso:

clear-Host
$File = "Machines.txt"
get-Content $File | foreach-object { 
$uname = (get-wmiobject win32_computersystem -computername $_).username ;
$os = (get-wmiobject win32_operatingsystem -computername $_).caption ;
"$_ $os $uname"
}

os únicos bits que não são bastante óbvios é que na linha 6 simplesmente digitar os nomes das variáveis os envia ao console e a variável especial "$ _" significa "This current object"

    
por 24.11.2009 / 06:07