Powershell按发行商查找已安装的软件

ivqmmu1c  于 2023-08-05  发布在  Shell
关注(0)|答案(1)|浏览(125)

因此,我试图找到安装的软件使用卸载注册表项,但只想显示软件的某些出版商。在我的出版商数组中寻找我想使用通配符。我可以让这个只与一个出版商工作,但如果我有多个出版商,它返回什么。我已经尝试了我能想到的一切,我在这个网站和其他网站上搜索,但我不知道为什么它不会工作。
我已经尝试了它与和没有最后的每一个声明与相同的结果。我觉得这应该是一个简单的修复。代码如下:

$HKLM = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
$HKLM_Wow = "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$HKCU = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
$InstalledSoftware = Get-ChildItem $HKLM, $HKLM_Wow, $HKCU
$allSoftware = [System.Collections.ArrayList]@()
$SoftwarePub =  [System.Collections.ArrayList]@("Microsoft*", "Dell*")

foreach($obj in $InstalledSoftware) {
    $software = New-Object -TypeName PSObject
    $software | Add-Member -MemberType NoteProperty -Name DisplayName -Value            $obj.GetValue("DisplayName")
    $software | Add-Member -MemberType NoteProperty -Name Version -Value $obj.GetValue("DisplayVersion")
    $software | Add-Member -MemberType NoteProperty -Name Publisher -Value     $obj.GetValue("Publisher")
    $software | Add-Member -MemberType NoteProperty -Name InstallDate -Value        $obj.GetValue("InstallDate")
    $null = $allSoftware.Add($software)
}
foreach ($pub in $SoftwarePub)
{
 $allSoftware | Where-Object {$_.Publisher -like $SoftwarePub}
}

字符串

6l7fqoea

6l7fqoea1#

在阅读了我之前的回复留下的反馈后,我研究了你的脚本,做了一些修改,并得到了下面的工作:

$SoftwarePub = @("Microsoft", "Dell")

$HKLM = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
$HKLM_Wow = "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$HKCU = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"

$registryKeys = Get-ChildItem $HKLM, $HKLM_Wow, $HKCU -ErrorAction SilentlyContinue

$installedSoftware = foreach ($key in $registryKeys) {
    $publisher = $key.GetValue("Publisher")
    if ($SoftwarePub | Where-Object { $publisher -like "*$_*" }) {
        [PSCustomObject]@{
            DisplayName = $key.GetValue("DisplayName")
            Publisher = $publisher
            Version = $key.GetValue("DisplayVersion")
            InstallDate = $key.GetValue("InstallDate")
        }
    }
}

$installedSoftware | Select-Object DisplayName, Publisher, Version, InstallDate

字符串


的数据

相关问题