Powershell 如何从AD或txt输出

Powershell 如何从AD或txt输出,powershell,powershell-2.0,Powershell,Powershell 2.0,我试图运行这个程序对远程pc/服务器列表或通过广告输出TXT,并显示在csv或html中,如果有人可以提供一些帮助或建议,我将非常感激 我唯一的限制是我所有的机器只运行powershell v2 Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, Install

我试图运行这个程序对远程pc/服务器列表或通过广告输出TXT,并显示在csv或html中,如果有人可以提供一些帮助或建议,我将非常感激

我唯一的限制是我所有的机器只运行powershell v2

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | 
 Format-Table –AutoSize

是否要获取该命令的输出并将其放入文件中?PowerShell有很多工具可以实现这一点。但是,您需要先删除
格式化表
命令

请看,
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
此示例将使用
-NoTypeInformation
开关导出CSV,忽略PowerShell通常添加的导入助手信息。我想知道制作文件的计算机的名称会很有用,所以这就是它要做的。编辑
-Path
指向带有共享的服务器,然后离开。您将得到如下文件:

  • ComputerA_Programs.Csv
  • ComputerB_Programs.Csv
  • 计算机程序.Csv

如果要从所有Ad计算机中提取

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

}}

非常感谢您,PS还是新手,因此以正确的顺序获取命令仍然让我困惑(这并不难),当然,很乐意提供帮助。如果这篇文章对你有帮助,记得把它标记为答案并投赞成票:)