У меня есть текстовый файл каждой машины в нашем домене Windows Active Directory, и я хотел бы определить текущего пользователя, вошедшего в систему (если есть), и операционную систему каждой машины, использующей WMIC:
WMIC /NODE:<machine_name> COMPUTERSYSTEM GET USERNAME
WMIC /NODE:<machine_name> OS GET caption
Кто-нибудь знает, как это можно было бы написать сценарий для чтения моего списка компьютеров из текстового файла и выполнения двух команд WMIC для каждого и вывода результатов в формате:
ComputerName, OperatingSystem, CurrentUserName
Я бы не рекомендовал использовать для этого wmic (хотя вы можете использовать a for lop в пакетном файле), так как в PowerShell это намного проще (именно так помечен вопрос). Я бы сделал следующее:
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"
}
единственные биты, которые не совсем очевидны, - это то, что в строке 6 просто вводят имена переменных, и они выводятся на консоль, а специальная переменная «$ _» означает «Этот текущий объект»