Contactez nous

Exécution des scripts vbs via paquet Office 2016

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum

* Questions can be asked in English or in French. If the thread is started in English, stick to English, if it is started in French, stick to French.
* Vous pouvez poser vos questions en Français ou en Anglais. Si un sujet est commencé en français, merci de répondre en français. Si un sujet est commencé en anglais, merci de répondre en anglais.
* Please prefix of the title of the thread to [SOLVED] if it is solved.
* Merci de préfixer le titre du thread par [RESOLU] si il est résolu.

Bonjour tout le monde,

Si je vous écris c'est que je suis un peu perdu. Actuellement, je suis entrain de créer un paquet pour l'installation de Office 2016, dans lequel je veux traiter au préalable la suppression des versions précédentes d'Office, comme 2003, 2007, 2010.

Pour effectuer cette suppression, j'ai récupéré les fixit de Microsoft pour chaque version Office. Au lancement de chaque fixit, se créé temporairement un fichier vbs qui se suffit à lui-même pour réaliser la suppression des différentes version d'Office 2003 et des autres.

Ces fichiers s'appellent Offscrub03.vbs (pour 2003), Offscrub07.vbs (pour 2007) etc ...

Pour faire la désinstallation complète des produits, il suffit de saisir la commande suivante :

Code : Tout sélectionner

cscript Offscrub03.vbs /ALL /Q /NoCancel /BYPASS 1


Cette commande fonctionne parfaitement lorsqu'elle est saisie directement à l'invite DOS.

Par contre dans le code du paquet WAPT :

Code : Tout sélectionner

run('script "Offscrub03.vbs" /ALL /Q /NoCancel /BYPASS 1')
Cela ne fonctionne pas. J'ai l'erreur suivante :

Code : Tout sélectionner

<RunOuput returncode :0>
"Microsoft (R) Windows Script Host Version 5.8\r\nCopyright (C) Microsoft Corporation 1996-2001. Tous droits r\x82serv\x82s.\r\n\r\nMicrosoft Customer Support Services - Office 2003 Removal Utility\r\n\r\nVersion: 1.39\r\n64 bit OS: Vrai\r\nStart removal: 26/07/2018 10:53:49\r\n\r\nInsufficient registry access permissions - exiting\r\nc:\\Offscrub03.vbs(119, 5) Erreur d'ex\x82cution Microsoft VBScript: Variable non d\x82finie: 'TmpKeyCleanUp'\r\n\r\n"
On parle donc de droits qui seraient insuffisants pour accéder au registre.

Ma question est la suivante :
Pourquoi a t-on deux résultats différents où dans un cas les droits ne semblent pas du tout un problème et dans l'autre oui ? Y a t-il a une autre manière de faire ?

Merci beaucoup amis waptiens !
Bonjour Patrice,

Ton post vaut une réponse car on se connaît bien et nous sommes très fiers que WAPT intéresse ta grande et prestigieuse structure (dont l'identité je ne peux dévoiler par respect de la discrétion).

Je ne suis pas le super expert WAPT, mais je créerais plutôt un nouveau paquet Office 2016 qui met en "conflict" tes paquets Office précédents. Donc chercher "conflict" dans la doc WAPT pour plus d'information sur la fonction.

Tes paquets Office précédents, s'ils existent, auront eu une clé de désinstallation. Donc l'exécution du paquet WAPT pour ton Office 2016 viendrait désinstaller les versions précédentes car les versions précédentes seraient en conflit avec ta version de Office que tu veux installer, ainsi, tu n'aurais pas besoin de t'appuyer sur un VBS spécifique Microsoft, magique !!

Cette méthode a le bénéfice complémentaire d'être plus pérenne et simple à gérer dans la durée.

A la rentrée, on discutera avec Monsieur S. et Monsieur F. de Toulouse + Monsieur A. et Monsieur D. de Paris pour vous passer sur la version Enterprise, mieux adaptée pour vos besoins.

Dans cette attente, bon été.

Cordialement.

Vincent
Il semble que le problème soit "connu" :
https://social.technet.microsoft.com/Fo ... roprevious
I had the same issue when running the script with SCCM 2012 in system context on Win7. For some reason the function CheckRegPermissions returns false. When I ran the script manually with admin rights it worked. It even worked when I tried with psexec -s \\machine cmd which launches a command prompt in system context.

I decided to delete the code in CheckRegPermissions. The script works fine now and does what it should.

Function CheckRegPermissions
CheckRegPermissions = True
End Function 'CheckRegPermissions