首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Powershell从注册表检索应用程序的DisplayName/UninstallString

使用Powershell从注册表检索应用程序的DisplayName/UninstallString
EN

Stack Overflow用户
提问于 2016-02-17 15:55:10
回答 1查看 9.5K关注 0票数 1

我需要从Windows获取特定软件包的UninstallString。不幸的是,安装了许多不同版本的包,所以我需要通过包名来查询它。我已经找到了如何做这个这里这里的例子。我编写了一个测试脚本来验证我正在获取正确的应用程序。这个测试脚本应该将应用程序的显示名称写入控制台。然而,它却是在写空白行。当我试图将UninstallString写到控制台时,我得到了相同的结果。

代码语言:javascript
复制
$PATHS = @("HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall",
           "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall")
$SOFTWARE = "SOFTWARE_NAME"

ForEach ($path in $PATHS) {
    $installed = Get-ChildItem -Path $path |
                 ForEach { Get-ItemProperty $_.PSPath } |
                 Where-Object { $_.DisplayName -match $SOFTWARE } |
                 Select-Object -Property DisplayName,DisplayVersion,UninstallString

    ForEach ($app in $installed) {
        Write-Output "${app.DisplayName}"
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-17 16:23:14

替换这个

代码语言:javascript
复制
Write-Output "${app.DisplayName}"

有了这个

代码语言:javascript
复制
Write-Output "$($app.DisplayName)"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35461569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档