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

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

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

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

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

ComputerName, OperatingSystem, CurrentUserName

答案1

我不建议使用 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"
}

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

相关内容