如何将Get-WmiObject输出的特定行存储到变量并在msiexec命令中复用
解决方法:提取WMI对象属性到变量并复用
没问题,我来帮你搞定这个需求!核心要点是不要用Format-Table来处理对象数据——它是用来给人看的格式化输出,不是用来提取属性值的。我们直接操作原始的WMI对象就行:
步骤1:提取IdentifyingNumber到变量$var1
用Select-Object -ExpandProperty直接取出属性值,命令如下:
# 获取匹配的产品对象,提取IdentifyingNumber(如果有多个结果,取排序后的第一个) $var1 = Get-WmiObject Win32_Product -Filter "Name like '%team%'" | Sort-Object -Property Name | Select-Object -First 1 -ExpandProperty IdentifyingNumber
小提示:如果你的PowerShell版本较新,推荐用
Get-CimInstance替代Get-WmiObject(后者已被弃用),命令几乎一样:$var1 = Get-CimInstance Win32_Product -Filter "Name like '%team%'" | Sort-Object -Property Name | Select-Object -First 1 -ExpandProperty IdentifyingNumber
执行后可以用Write-Host $var1验证变量值,应该会输出你需要的{ABC12345-1234-1234-8936-123456789ABC}。
步骤2:复用变量到msiexec命令
直接把$var1代入你的卸载命令即可:
Start-Process "msiexec.exe" -ArgumentList "/x $var1 /quiet /n" -Wait
这样就能自动用提取到的GUID执行静默卸载啦!
内容的提问来源于stack exchange,提问作者user12493723
相关产品推荐
相关产品推荐

