Назад | Перейти на главную страницу

Инвентаризация сценариев имени машины, текущего имени пользователя, операционной системы с использованием WMIC или powershell

У меня есть текстовый файл каждой машины в нашем домене 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 просто вводят имена переменных, и они выводятся на консоль, а специальная переменная «$ _» означает «Этот текущий объект»