是否可以从 Active Directory 中获取安装了特定软件的服务器列表?例如,获取安装了 wampserver 版本 5 的所有服务器。
答案1
您可以仔细阅读现有脚本https://gallery.technet.microsoft.com/scriptcenter/Get-RemoteProgram-Get-list-de9fd2b4
要获取具有 Internet Explorer 11 的计算机列表,请执行以下操作:
$result= @();
$programName = "Internet Explorer 11"
$computers = ("Computer1","Computer2","Computer3")
$computers | % { if ((Get-RemoteProgram -ComputerName $_).programname -contains $programName) { $result += $_}}
$result
答案2
不,不是你问的那个问题。很抱歉,这个信息不在 Active Directory 中。但是,你可以编写一些 PowerShell,首先使用Get-ADComputer
过滤器来获取服务器操作系统,然后将其通过管道或循环插入 WMI 或注册表查询中以获取已安装软件的列表 - 希望你想要的版本信息是由供应商写在那里的。
非常简单 - 当然,您也可以使用附加管理工具,例如 Microsoft 自己的 SCCM,或第三方库存工具来为您完成此操作 - 有些甚至是免费的。我特别喜欢 SpiceWorks。
答案3
您可以尝试将服务器列表放在文本文件中或从 AD 中过滤
#$computer="get-content computers.txt"
#computers=Get-ADComputer -Filter {OperatingSystem -Like “Windows Server*”}
foreach ($Computers in $computer)
{
Get-WmiObject -query 'select * from win32_product' | where {$_.name -like "Ccleaner*"} |ft Name, Version,PsComputername | export-csv "$env:userprofile\desktop\software.csv"
}
答案4
尝试将服务器列表放在文本文件中或从广告中获取
#$computer="get-content computers.txt"
#$computers=Get-ADComputer -Filter {OperatingSystem -Like “Windows Server*”}
foreach ($Computers in $computer)
{
Get-WmiObject -query 'select * from win32_product' | where {$_.name -like "Ccleaner*"} |ft Name, Version,PsComputername | export-csv "$env:userprofile\desktop\software.csv"
}