我尝试使用Get-ChildItem来获取已安装的程序属性信息,它确实提供了我需要的一些信息,但安装的位置/路径通常是空白的。给定程序的名称/显示名称,有没有一种方法可以使用Powershell获取Windows Server程序的安装路径(远程到其他服务器)?
提前致谢。
答案 0 :(得分:2)
使用注册表:
Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall |
% { Get-ItemProperty $_.PsPath } | Select DisplayName,InstallLocation
使用WMI:
Get-WmiObject -Class Win32_Product -Filter 'Name like "%Microsoft Office%"' |
Select Caption,InstallLocation
对于Remoting,通过注册表它是完全不同的故事,WMI只需添加-ComputerName
参数(并确保您拥有权限)
答案 1 :(得分:0)
这2个 cmdlet :
Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* | % { Get-ItemProperty $_.PsPath } | Select DisplayName,InstallLocation | Sort-Object Displayname -Descending
Get-ChildItem HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | % { Get-ItemProperty $_.PsPath } | Select DisplayName,InstallLocation | Sort-Object Displayname -Descending
这些显示了不同的程序及其位置