【问题标题】:Powershell Get MSI file GUIDPowershell 获取 MSI 文件 GUID
【发布时间】:2021-02-01 02:09:51
【问题描述】:

为了在远程 VM 中找到已安装的 MSI 文件 GUID - 我在 Invoke-Command 中使用以下命令:
Get-WmiObject Win32_Product | Where-Object {$_.Name -eq "Application Name"}
此命令在其输出中显示一个标识符号。
我知道,我应该在此命令中再添加一件事,以便仅获取 GUID,但我不知道如何...

现在,我需要将此 GUID 与我为安装获得的新 MSI 文件的 GUID 进行比较。

这意味着:
如果新文件的 GUID 较旧 - 我什么也不做
如果新文件的 GUID 相等 - 我什么也不做
如果新文件的 GUID 较新 - 我将进行升级或卸载 - 安装过程...

所以,为了比较已安装的 MSI 的 GUID 和新的 MSI 文件的 GUID:
查找新 MSI 文件的 GUID 的确切 PowerShell 命令是什么?

【问题讨论】:

标签: powershell windows-installer guid


【解决方案1】:

如果我理解正确,您想查找当前未安装的 MSI 的产品 G​​UID?我希望这是对您所问问题的正确理解。如果您需要从代码中自动获取产品 GUID,that is also possible。此处有一个full, standalone VBScript,您可以将 MSI 文件拖放到其中以检索产品代码。

您可以通过使用合适的查看器打开 MSI 来找到产品代码 - 例如 Orca,这是用于 MSI 包的 Microsoft SDK 工具。如果您安装了 Visual Studio,请尝试在 Program Files (x86) 下搜索 Orca-x86_en-us.msi - 并安装它。然后在开始菜单中找到 Orca。您也可以右键单击 MSI 文件以使用 Orca 打开它们 - 只需选择:"Edit with Orca"。然后您可以在属性表中找到产品 GUID。

这是关于 MSI 查看器主题的答案(有几种选择,但总体而言,Orca 是最好的):How can I compare the content of two (or more) MSI files?


MSI 有一个 Powershell 模块: https://github.com/heaths/psmsi


链接:

【讨论】:

    【解决方案2】:

    我在远程 VM 和我的电脑的“C:\Program Files\WindowsPowerShell\Modules”中都安装了一个 Carbon 库 然后我执行以下命令:

    [string] $newMSIProductCode = (Get-CMsi -Path "C:\appName.msi").ProductVersion
    [string] $newMSIProductCodeGUID = (Get-CMsi -Path "C:\appName.msi").ProductCode.Guid
    $newMSIProductCode = $newMSIProductCode -replace '\.',''
    
    
    Enter-PSSession -Computer $computer -Credential $credentials
    Invoke-Command -Computer $computer -Credential $credentials -ScriptBlock {
    
       [string] $installedMSIProductCode = (Get-CProgramInstallInfo -Name "app name").DisplayVersion
       $installedMSIProductCodeGUID = (Get-CProgramInstallInfo -Name "app name").ProductCode.Guid
       [long] $installedMSIProductCode = $installedMSIProductCode -replace '\.',''
    
       if ($Using:$newMSIProductCodeGUID -gt $installedR10ServerBuildProductCode)
       {
          //TO-DO 
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 2015-11-02
      • 2014-09-22
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多