机器名称、当前用户名、使用 WMIC 或 powershell 的操作系统的脚本清单

tbo*_*one 3 scripting powershell active-directory wmi

我在 Windows Active Directory 域中有每台机器的文本文件,我想确定当前登录的用户(如果有)和使用 WMIC 的每台机器的操作系统:

WMIC /NODE:<machine_name> COMPUTERSYSTEM GET USERNAME
WMIC /NODE:<machine_name> OS GET caption
Run Code Online (Sandbox Code Playgroud)

有谁知道如何编写脚本以从文本文件中读取我的计算机列表并为每个计算机执行两个 WMIC 命令并以以下格式输出结果:

ComputerName, OperatingSystem, CurrentUserName
Run Code Online (Sandbox Code Playgroud)

Jim*_*m B 5

我不建议为此使用 wmic,(尽管您可以在批处理文件中使用 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"
}
Run Code Online (Sandbox Code Playgroud)

唯一不太明显的地方是在第 6 行,只需输入变量的名称即可将它们输出到控制台,并且特殊变量“$_”表示“当前对象”