首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >除了win32_product之外,有没有更快的方法来查找已安装软件的产品号

除了win32_product之外,有没有更快的方法来查找已安装软件的产品号
EN

Stack Overflow用户
提问于 2019-04-19 01:41:24
回答 1查看 91关注 0票数 1

我正在编写一个脚本,使用msiexec自动修复软件。我遇到的问题是当我打电话给:

代码语言:javascript
运行
复制
get-wmiobject -class win32_product -filter "name of software" | foreach-object {$_.IdentifyingNumber}

解析每个产品编号所需的时间接近5-10分钟。有没有更快的方法来做这件事?

EN

回答 1

Stack Overflow用户

发布于 2019-04-20 19:35:22

正如Lee_Dailey提到的,您可以从注册表中的卸载项中获取此信息。

代码语言:javascript
运行
复制
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

下面将为您提供已安装的应用程序的名称和GUID,并在卸载键中输入一个条目。-match "^{.+}$"仅返回以{开头且以}结尾的条目。如果你希望GUID输出没有花括号{},那么你可以将其转换为[GUID],例如[GUID][String]$matches.Values

代码语言:javascript
运行
复制
Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall |
%{
    if(($_.Name | Split-Path -Leaf) -match "^{.+}$")
    {
        [PSCustomObject]@{
            GUID = [String]$matches.Values
            Name = [String]($_ | Get-ItemProperty -ErrorAction SilentlyContinue).DisplayName
        }
    }
}

输出:

代码语言:javascript
运行
复制
GUID                                   Name                                                          
----                                   ----                                                          
{0CA4BB37-FF4A-42C6-A39C-11CB0BB8D395} Microsoft .NET Core Host - 2.1.8 (x64)                        
{1657ABEE-7D56-416A-B7E0-A89CC5AAD0F7} Microsoft Azure Compute Emulator - v2.9.6 
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55751222

复制
相关文章

相似问题

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