我试图通过AD out TXT对远程PC /服务器列表运行该程序,并以csv或html显示它们,如果任何人可以提供一些帮助或建议我会非常感激。
我唯一的限制是我的所有机器只运行PowerShell v2
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
Format-Table –AutoSize
答案 0 :(得分:1)
您想获取该命令的输出并将其放入文件中吗? PowerShell有很多工具可以做到这一点。但是,您需要先删除Format-Table
命令。
请参阅,Format-Table
是关于使您的命令输出在PowerShell窗口中看起来非常好,因此它有很多硬回车,并且在其中定义了对控制台有意义的列和事物,但在导出时看起来像垃圾。
对于这样的数据,我认为逗号分离价值可能是要走的路。
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
Export-CSV -NoTypeInfo -Path \\server\share\$($env:ComputerName)_Programs.csv
此示例将导出CSV,省略PowerShell通常使用-NoTypeInformation
开关添加的导入辅助信息。我认为知道制作文件的计算机的名称是有用的,这就是它将要做的事情。编辑-Path
以指向具有共享的服务器,然后离开。你最终会得到这样的文件:
答案 1 :(得分:1)
如果您想从所有广告计算机中提取
ForEach ($COMPUTER in (Get-ADComputer -Filter * | Select-Object -ExpandProperty Name))
{if(!(Test-Connection -Cn $computer -BufferSize 16 -Count 1 -ea 0 -quiet))
{write-host "cannot reach $computer" -f red}
else{Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
Export-CSV -NoTypeInfo -Path "\\server\share$\$Computer_Programs.csv" -NoTypeInformation}}
如果您有文本列表中的计算机
Foreach ($computer in ($computers= Get-Content "c:\Computers.txt" ))
{if(!(Test-Connection -cn $computer -BufferSize 16 -Count 1 -ea 0 -quiet))
{write-host "cannot reach $computer" -f red}
else{
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
Export-CSV -NoTypeInfo -Path "\\server\share$\$Computer_Programs.csv" -NoTypeInformation
}}