我正在编写一个PowerShell脚本,它将为我的webapp安装一些依赖项.在我的脚本中,我遇到了一个反复检查是否安装了特定应用程序的问题.似乎有一种独特的方法来检查每个应用程序是否存在应用程序(例如:通过检查此文件夹的现有文件或c :)上的此文件.有没有办法通过查询已安装的应用程序列表来检查是否安装了应用程序?
Kei*_*ill 13
要获取已安装应用程序的列表,请尝试:
$r = Get-WmiObject Win32_Product | Where {$_.Name -match 'Microsoft Web Deploy' }
if ($r -ne $null) { ... }
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Win32_Product上的文档.
Rom*_*min 11
这是我有时使用的代码(不常见,所以......).有关详细信息,请参阅帮助注释
<#
.SYNOPSIS
Gets uninstall records from the registry.
.DESCRIPTION
This function returns information similar to the "Add or remove programs"
Windows tool. The function normally works much faster and gets some more
information.
Another way to get installed products is: Get-WmiObject Win32_Product. But
this command is usually slow and it returns only products installed by
Windows Installer.
x64 notes. 32 bit process: this function does not get installed 64 bit
products. 64 bit process: this function gets both 32 and 64 bit products.
#>
Run Code Online (Sandbox Code Playgroud)
function Get-Uninstall
{
# paths: x86 and x64 registry keys are different
if ([IntPtr]::Size -eq 4) {
$path = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*'
}
else {
$path = @(
'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*'
'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
)
}
# get all data
Get-ItemProperty $path |
# use only with name and unistall information
.{process{ if ($_.DisplayName -and $_.UninstallString) { $_ } }} |
# select more or less common subset of properties
Select-Object DisplayName, Publisher, InstallDate, DisplayVersion, HelpLink, UninstallString |
# and finally sort by name
Sort-Object DisplayName
}
Get-Uninstall
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28156 次 |
| 最近记录: |