5

我目前正在编写一个脚本,其中涉及卸载 WES 7 设备上安装的程序的数量。我需要卸载的应用程序之一 (VMware Horizo​​n View Client) 要求重新启动。当这是脚本的一部分时,它似乎接受默认按钮 (YES) 并继续重新启动设备。因此脚本失败。

非常感谢您在如何防止重新启动方面提供帮助。

仅供参考:此脚本通过管理工具发送,并在目标上以提升的方式运行。

这是我的脚本:

set-executionpolicy unrestricted
#############################################################
# Un-install unwanted applications
#############################################################
$application = Get-WMIObject Win32_Product -filter "Name='ThinPrint Client Windows 8.6'"
$application.Uninstall()
$application = Get-WMIObject Win32_Product -filter "Name='2X Client'"
$application.Uninstall()
$application = Get-WMIObject Win32_Product -filter "Name='Adobe Reader X (10.1.4)'"
$application.Uninstall()
$application = Get-WMIObject Win32_Product -filter "Name='VMware Horizon View Client'"
$application.Uninstall()
$application = Get-WMIObject Win32_Product -filter "Name='VERDE VDI User Tools'"
$application.Uninstall()
$application = Get-WMIObject Win32_Product -filter "Name='vWorkspace Connector for Windows'"
$application.Uninstall()

#############################################################
# Remove Internet Explorer Access
#############################################################
dism /online /norestart /Disable-Feature /FeatureName:Internet-Explorer-Optional-x86

#############################################################
# Remove IE Browser LNK from Taskbar
#############################################################
del "C:\Users\User\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\Launch Internet Explorer Browser.lnk"

#############################################################
# Make Citrix Receiver the shell
#############################################################
Push-Location
CD 'HKCU:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon'
New-Itemproperty -path .\ -name Shell -Type String -Value 'c:\program files\Citrix\Receiver\receiver.exe'
Pop-Location

set-executionpolicy restricted
# End of Script

对于如何防止脚本中途重新启动,我将非常感谢一些帮助。

4

1 回答 1

10

我强烈建议不要使用 Win32_Product。每次调用 Win32_Product 时,它都会对每次安装进行软件一致性检查。这不仅会使事情变得非常缓慢,而且如果发现有问题,它还可能触发软件修复。

http://gregramsey.net/2012/02/20/win32_product-is-evil/

而是进入注册表并调用卸载字符串。

http://support.microsoft.com/kb/247501

您可以使用 msiexec 的 norestart 标志来尝试防止重新启动。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa372024(v=vs.85).aspx

于 2013-07-25T20:48:06.720 回答