卸载脚本执行不正确

洛特

这是一个非常简单的脚本,仅用于卸载应用程序。这是我的代码:

$app = Get-WmiObject -Class Win32_Product -Filter "Name = 'Alliance Suite G5'"

Write-Host $app

$app.Uninstall()

我放入Write-Host只是为了确保它可以捕获正确的应用程序。这是我的输出。

\ COMPUTERNAME \ root \ cimv2:Win32_Product.IdentifyingNumber =“ {99B66721-7E75-487C-A0C8-A4F8C4325661}”,名称=“联盟套件G5”,版本=“ 2013.2.14226.1”

__GENUS:2

__CLASS:__ PARAMETERS

__SUPERCLASS:

__DYNASTY:__PARAMETERS

__RELPATH:

__PROPERTY_COUNT:1

__DERIVATION:{}

__服务器 :

__NAMESPACE:

__小路 :

返回值:0

PSComputerName:

返回值为0,但实际上从不卸载应用程序。任何帮助,将不胜感激!我在晚上运行了一些自动化测试,其中一个安装了该应用程序,因此,如果可以执行预定的powershell脚本来卸载它,那就太好了。

事件查看器(注意:该产品“在第二条消息之前已被多次配置):

Windows Installer reconfigured the product. Product Name: Microsoft Identity Extensions. Product Version: 2.0.1459.0. Product Language: 1033. Manufacturer: Microsoft Corporation. Reconfiguration success or error status: 0.

Beginning a Windows Installer transaction: {99B66721-7E75-487C-A0C8-A4F8C4325661}. Client Process Id: 8664.

Product: Alliance Suite G5 -- Removal completed successfully.

Windows Installer removed the product. Product Name: Alliance Suite G5. Product Version: 2013.2.14226.1. Product Language: 1033. Manufacturer: United Systems & Software. Removal success or error status: 0.

运行命令时的结果:

C:\Windows\system32>msiexec.exe /X "C:\AllianceInstall\G5\Alliance.G5.exe" /QN /
L*V "C:\msilog.log

===已开始详细日志记录:2014年8月18日9:42:06构建类型:SHIP UNICODE 5.00.9200.00调用过程:C:\ Windows \ system32 \ msiexec.exe === MSI(c)(5C:74)

[09:42:06:039]:重置缓存的策略值MSI(c)(5C:74)

[09:42:06:039]:计算机策略值“调试”为0 MSI(c)(5C:74)[09:42:06:039]:* RunEngine:*产品:C:\ AllianceInstall \ G5 \ Alliance.G5.exe *操作:*命令行****** MSI(c)(5C:74)

[09:42:06:039]:客户端和> UI都不存在或基本不存在:完整运行

安装在服务器上。微星(c)(5C:74)

[09:42:06:039]:捕获了执行互斥。微星(c)(5C:74)

[09:42:06:061]:启用了隐藏。MSI(c)(5C:74)

[09:42:06:061]:在调用服务器MSI上的安装(c)之前尝试启用所有禁用的特权(5C:74)

[09:42:06:064]:递增计数器以禁用关闭功能。柜台

增量后:0 MSI(s)(F8:48)[09:42:06:069]:在多包事务C:\ AllianceInstall \ G5 \ Alliance.G5.exe MSI中运行安装(F8:48 )[09:42:06:069]:抓取执行互斥量。MSI(s)(F8:64)

[09:42:06:071]:重置缓存的策略值MSI(s)(F8:64)[09:42:06:071]:机器策略值'Debug'为0 MSI(s)(F8:64) [09:42:06:071]:* RunEngine:

       ******* Product: C:\AllianceInstall\G5\Alliance.G5.exe
       ******* Action: 
       ******* CommandLine: ********** MSI (s) (F8:64)

[09:42:06:072]:注意:1:2203 2:C:\ AllianceInstall \ G5 \ Alliance.G5.exe

3:-2147286960 MSI(s)(F8:64)

[09:42:06:073]:MainEngineThread为

返回1620 MSI(F8:48)

[09:42:06:074]:用户策略值

'DisableRollback'是0 MSI(s)(F8:48)

[09:42:06:074]:机器政策

值'DisableRollback'为0 MSI(s)(F8:48)

[09:42:06:074]:

递增计数器可禁用关闭功能。增量后计数器:0 MSI(s)(F8:48)

[09:42:06:074]:注意:1:1402 2:

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer \ Rollback \ Scripts 3:2 MSI(s)(F8:48)

[09:42:06:074]:注意:1:1402 2:

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer \ Rollback \ Scripts 3:2 MSI(s)(F8:48)

[09:42:06:075]:递减计数器禁用

关掉。如果计数器> = 0,则关闭将被拒绝。递减后的计数器:-1 MSI(c)(5C:74)

[09:42:06:076]:递减计数器

禁用关机。如果计数器> = 0,则关闭将被拒绝。递减后的计数器:-1 MSI(c)(5C:74)

[09:42:06:076]:MainEngineThread

正在返回1620

===详细日志记录已停止:2014年8月18日9:42:06 ===

斯坦·奥斯姆(SteinÅsmul)

看来这是一个Installshield套件项目-本质上是通过一些自定义Installshield构造将MSI文件视为一个产品的集合。它似乎是setup.exe类型的启动器,也已注册用于处理ARP修复/修改


在聊天中,JLott确认此命令有效:

Alliance.G5.exe /remove /s

JLott使用的完整命令:

C:\Windows\system32>Start C:\AllianceInstall\G5\Alliance.G5.exe /remove /s

除了上述内容之外,您还应该能够通过找到每个MSI的GUID并通过msiexec.exe进行卸载

这个简单的powershell命令将提供带有“识别代码”的已安装产品的列表。您可以像下面这样将代码传递给Windows安装程序:msiexec.exe /x {GUID-HERE}

get-wmiobject -class Win32_Product 

在此处输入图片说明

或者,您可以选择以列表形式查看它

get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name, Version

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章