我有 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 行,只需输入变量名称即可将其输出到控制台,特殊变量“$_”表示“当前对象”