Seite 1 von 1

Ausführen von VBS-Skripten über das Office 2016-Paket

Veröffentlicht: 26. Juli 2018 - 12:32 Uhr
von Patrice_minagri
Hallo zusammen,

Ich schreibe Ihnen, weil ich etwas ratlos bin. Ich erstelle gerade ein Installationspaket für Office 2016 und möchte dabei die vorherigen Office-Versionen, wie 2003, 2007 und 2010, vorab entfernen.

Zur Deinstallation habe ich die Microsoft Fixit-Tools für jede Office-Version heruntergeladen. Bei der Ausführung jedes Fixit-Tools wird eine temporäre VBScript-Datei erstellt, die ausreicht, um die verschiedenen Versionen von Office 2003 und anderen Office-Versionen zu entfernen.

Diese Dateien heißen Offscrub03.vbs (für 2003), Offscrub07.vbs (für 2007) usw.

Um die Produkte vollständig zu deinstallieren, geben Sie einfach folgenden Befehl ein:

Code: Alle auswählen

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


Dieser Befehl funktioniert einwandfrei, wenn er direkt in der DOS-Eingabeaufforderung eingegeben wird.

Im WAPT-Paketcode hingegen:

Code: Alle auswählen

run('script "Offscrub03.vbs" /ALL /Q /NoCancel /BYPASS 1')
Es funktioniert nicht. Ich erhalte folgende Fehlermeldung:

Code: Alle auswählen

<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"
Wir sprechen also von Rechten, die für den Zugang zum Register nicht ausreichen würden.

Meine Frage lautet:
Warum erhalten wir zwei unterschiedliche Ergebnisse, in denen Rechte in einem Fall überhaupt kein Problem zu sein scheinen und im anderen Fall schon? Gibt es eine andere Möglichkeit, dies zu tun?

Vielen Dank, meine waptischen Freunde!

Betreff: Ausführen von VBScripts über das Office 2016-Paket

Veröffentlicht: 30. Juli 2018 - 21:56 Uhr
von vcardon
Hallo Patrice,

dein Beitrag verdient eine Antwort, da wir uns gut kennen und sehr stolz darauf sind, dass WAPT für deine große und angesehene Organisation (deren Namen ich aus Gründen der Vertraulichkeit nicht nennen darf) von Interesse ist.

Ich bin zwar kein WAPT-Experte, aber ich würde vorschlagen, ein neues Office 2016-Paket zu erstellen, das mit deinen bisherigen Office-Paketen in Konflikt steht. Suche dazu in der WAPT-Dokumentation nach „Konflikt“, um mehr über diese Funktion zu erfahren.

Deine bisherigen Office-Pakete hatten, falls vorhanden, einen Deinstallationsschlüssel. Wenn du also das WAPT-Paket für dein Office 2016 ausführst, werden die vorherigen Versionen deinstalliert, da sie mit der Version von Office, die du installieren möchtest, in Konflikt stehen. So benötigst du kein bestimmtes Microsoft VBS – fast schon Zauberei!

Diese Methode ist zudem robuster und einfacher zu verwalten.

Sobald alle aus dem Urlaub zurück sind, werden wir mit Herrn S. und Herrn F. aus Toulouse sowie Herrn A. und Herrn D. aus Paris sprechen, um Sie auf die Enterprise-Version umzustellen, die besser auf Ihre Bedürfnisse zugeschnitten ist.

Bis dahin wünschen wir Ihnen einen schönen Sommer.

Mit freundlichen Grüßen,

Vincent

Betreff: Ausführen von VBScripts über das Office 2016-Paket

Veröffentlicht: 6. September 2018 - 11:26 Uhr
von htouvet
Das Problem scheint "bekannt" zu sein:
https://social.technet.microsoft.com/Fo...roprevious
Ich hatte dasselbe Problem beim Ausführen des Skripts mit SCCM 2012 im Systemkontext unter Windows 7. Aus irgendeinem Grund gab die Funktion `CheckRegPermissions` den Wert `false` zurück. Als ich das Skript manuell mit Administratorrechten ausführte, funktionierte es. Es funktionierte sogar mit `psexec -s \\machine cmd`, wodurch eine Eingabeaufforderung im Systemkontext geöffnet wird.

Ich beschloss, den Code in `CheckRegPermissions` zu löschen. Das Skript funktioniert nun einwandfrei und erfüllt seinen Zweck.

Funktion `CheckRegPermissions`
`CheckRegPermissions = True`
End Function 'CheckRegPermissions