Script de désinstallation de Powershell - avoir un vrai mal de tête

je suis en train d'écrire un script qui implique un certain nombre de désinstallations de programmes installés sur un périphérique WES 7. Une des applications que je dois désinstaller (VMware Horizon View Client) demande un redémarrage. Lorsque c'est une partie du script, il semble accepter le bouton par défaut (OUI) et procède au redémarrage de l'appareil. Le script échoue donc.

j'apprécierais vraiment que vous m'aidiez à empêcher ce redémarrage.

FYI: ce script est envoyé via un outil de gestion et est exécuté de manière élevée sur la cible.

C'est mon script:

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:UsersUserAppDataRoamingMicrosoftInternet ExplorerQuick LaunchLaunch Internet Explorer Browser.lnk"

#############################################################
# Make Citrix Receiver the shell
#############################################################
Push-Location
CD 'HKCU:SoftwareMicrosoftWindows NTCurrentVersionWinlogon'
New-Itemproperty -path . -name Shell -Type String -Value 'c:program filesCitrixReceiverreceiver.exe'
Pop-Location

set-executionpolicy restricted
# End of Script

j'apprécierais beaucoup d'aide sur la façon d'empêcher le redémarrage à mi-chemin dans le script.

5
demandé sur Neolisk 2013-07-26 00:37:35

1 réponses

je suggère fortement de ne pas utiliser Win32_Product. Chaque fois que Win32_Product est appelé il fait un contrôle de cohérence du logiciel de chaque installation. Non seulement cela rend les choses très lentes, mais cela peut aussi déclencher une réparation du logiciel si quelque chose ne va pas.

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

au lieu de cela allez dans le registre et appelez juste la chaîne de désinstallation.

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

vous pouvez utiliser le drapeau norestart de msiexec pour essayer d'empêcher les redémarrages.

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

10
répondu Andy Arismendi 2013-07-25 20:48:06