编写机器名称清单,当前用户名,使用WMIC或PowerShell的操作系统

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

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

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

 ComputerName, OperatingSystem, CurrentUserName 

我不会推荐使用wmic来做这件事(尽pipe你可以在batch file中使用lop),因为在powershell(这是标记问题的方式)中它要容易得多。 closures我的头顶我会这样做:

 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行inputvariables名输出到控制台,特殊variables“$ _”表示“当前对象”