2014-07-22 177 views
0

我只需要有一个csv作为输出与一列中的服务器的名称和第二列中的命令的结果。我无法使用export-csv cmdlet,因为我使用旧版本的PS。非常感谢您的帮助!PowerShell导出列csv结果

$servers = Get-Content -path .\Server_List.txt 

ForEach ($server in $servers) 
{ 
(Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System).EnableLUA 
} 
Out-File UAC_audit_results.csv 

回答

1

然后在循环中使用字符串格式化程序,并使用-append输出文件。或者不要在$ servers中使用ForEach($ server)并将其全部传输到out-file文件中,但是您无法像构建它一样轻松管理一个foreach循环。只要确保首先添加标题行。

$servers = Get-Content -path .\Server_List.txt 
"Server,Results"|Out-File UAC_audit_results.csv 
ForEach ($server in $servers) 
{ 
    $RegProp = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System).EnableLUA 
    "{0},{1}" -f $server, $RegProp|Out-File UAC_audit_results.csv -append 
} 

或者,(我认为是更好),管它:

"Server,Results"|Out-File UAC_audit_results.csv 
Get-Content -path .\Server_List.txt |%{"{0},{1}" -f $_, (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System |select -expand EnableLUA)}|Out-File UAC_audit_results.csv -append 
+0

东西是错误的。我将所有代码为0的服务器(有一些服务器启用了UAC)作为返回 –

+0

与文件输出无关,这与您每次查询本地计算机的注册表有关。当你执行Get-ItemProperty调用时,你永远不会引用另一台机器,它总是在本地机器上完成。您没有向查询远程注册表寻求帮助,如果您需要帮助,请为此提出一个新问题。如果这解决了根据需要输出CSV的问题,请将答案标记为已接受,然后继续用您的更新代码和问题开启新问题。 – TheMadTechnician