Deinstallieren von OFFICE 2013

Teilen Sie hier Ihre Tipps oder Probleme bezüglich der WAPT-Konsole oder des WAPT-Agenten mit
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Gesperrt
fbst
Nachrichten: 5
Anmeldung: 24. Oktober 2018 - 15:59 Uhr

24. Oktober 2018 – 16:26 Uhr

Hallo zusammen,

Ich habe Probleme beim Deinstallieren von OFFICE 2013 Standard über WAPT.
Ich habe verschiedene Wege versucht, alles zu deinstallieren, aber es gelingt mir nicht.

Zuerst über den Deinstallationsschlüssel:
Ich habe die UID über wapt-get list-registry abgerufen, was mir einige Ergebnisse lieferte, aber wenn ich versuche, es über PyScripter zu deinstallieren, funktioniert es nicht (Rückgabewert:

Code: Alle auswählen

Ligne de Commande : uninstall "C:\waptdev\Office2013Std_32bits-wapt\WAPT\.."
Uninstalling C:\waptdev\Office2013Std_32bits-wapt ...
None
Uninstallation done)
Der Deinstallationsschlüssel sieht folgendermaßen aus:

Code: Alle auswählen

uninstallkey = ['{90150000-002A-0000-1000-0000000FF1CE}','{90150000-002A-040C-1000-0000000FF1CE}','Office15.STANDARD','Office2013Std_32bits','{90150000-0012-0000-0000-0000000FF1CE}','{90150000-001F-0401-0000-0000000FF1CE}','{90150000-001F-0407-0000-0000000FF1CE}','{90150000-001F-0409-0000-0000000FF1CE}','{90150000-001F-040C-0000-0000000FF1CE}','{90150000-001F-0413-0000-0000000FF1CE}','{90150000-001F-0C0A-0000-0000000FF1CE}','{90150000-002C-040C-0000-0000000FF1CE}','{90150000-006E-040C-0000-0000000FF1CE}','{90150000-00E1-040C-0000-0000000FF1CE}','{90150000-00E2-040C-0000-0000000FF1CE}']
Ich habe auch versucht, die Uninstall-Zeichenfolge zu verwenden, und erhalte die gleiche Meldung wie bei der Uninstall-Zeichenfolge:

Code: Alle auswählen

Ligne de Commande : uninstall "C:\waptdev\Office2013Std_32bits-wapt\WAPT\.."
Uninstalling C:\waptdev\Office2013Std_32bits-wapt ...
None
Uninstallation done)
Die Deinstallationszeichenfolge sieht folgendermaßen aus:

Code: Alle auswählen

uninstallstring =['"C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /uninstall Standard /config silent.xml"']
Ich habe versucht, eine uninstall()-Funktion zu verwenden, die den Inhalt von uninstallstring anzeigt:

Code: Alle auswählen

def uninstall():
    print("Desinstallation d\'Office")
    run('"C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /uninstall Standard /config silent.xml"')
zurück:

Code: Alle auswählen

Ligne de Commande : uninstall "C:\waptdev\Office2013Std_32bits-wapt\WAPT\.."
Uninstalling C:\waptdev\Office2013Std_32bits-wapt ...
Desinstallation d'Office
2018-10-24 16:11:02,690 CRITICAL Fatal error in uninstall function: CalledProcessErrorOutput: Command '"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\OFFICE15\\Office Setup Controller\\Setup.exe /uninstall Standard /config silent.xml"' returned non-zero exit status 1.
Output:Le chemin d'accÇùs spǸcifiǸ est introuvable.
:
Traceback (most recent call last):
  File "c:\wapt\waptpackage.py", line 1843, in call_setup_hook
    hookdata = hook_func()
  File "C:\waptdev\Office2013Std_32bits-wapt\setup.py", line 39, in uninstall
    run('"C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /uninstall Standard /config silent.xml"')
  File "c:\wapt\common.py", line 3317, in run
    return ensure_unicode(setuphelpers.run(*arg,pidlist=self.pidlist,**args))
  File "c:\wapt\setuphelpers.py", line 1044, in run
    raise CalledProcessErrorOutput(proc.returncode,cmd,''.join(output))
CalledProcessErrorOutput: Command '"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\OFFICE15\\Office Setup Controller\\Setup.exe /uninstall Standard /config silent.xml"' returned non-zero exit status 1.
Output:Le chemin d'accŠs sp‚cifi‚ est introuvable.


FATAL ERROR : CalledProcessErrorOutput: Command '"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\OFFICE15\\Office Setup Controller\\Setup.exe /uninstall Standard /config silent.xml"' returned non-zero exit status 1.
Output:Le chemin d'accÇùs spǸcifiǸ est introuvable.

Exit code:  3

Die Installation verläuft sehr gut, sie ist völlig transparent, die MSP-Datei befindet sich am richtigen Ort, ebenso die silent.xml-Datei.
Wenn ich den folgenden Befehl in einer Shell ausführe, funktioniert er einwandfrei und ohne Fehlermeldung....

Code: Alle auswählen

C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /uninstall Standard /config silent.xml
Ich habe verschiedene Dinge ausprobiert, unter anderem habe ich versucht, meine Pfade über eine Variable in "raw" zu übergeben:

Code: Alle auswählen

r"C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /uninstall Standard /config silent.xml" 
Das Ergebnis ist dasselbe, doch ich dachte, ich hätte verstanden, dass das "r" oder die Einbettung des Ausdrucks in "Ausdruck" die Leerzeichen und Schrägstriche überflüssig macht...
Ich habe auch versucht, die "pathlib"-Bibliothek zu verwenden, aber sie ist nicht in WAPT integriert, und ich konnte sie nicht zum Laufen bringen.

Ich habe meine gesamte setup.py-Datei unten beigefügt, falls sie Ihnen Anregungen gibt, aber im Vergleich zu den verschiedenen Themen zu OFFICE, die in den Foren zu finden sind, ist daran nichts besonders Originelles :)
Dank im Voraus!

fbst

Code: Alle auswählen

from setuphelpers import *
import time

windowspath64 = r"C:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\Office Setup Controller"
windowspath32 = r"C:\Program Files\Common Files\microsoft shared\OFFICE15\Office Setup Controller"
waptpath = r"C:\waptdev\Office2013Std_32bits-wapt\Microsoft Office 2013 32bits"

if iswin64():
	uninstallstring =['"%s\Setup.exe /uninstall Standard /config silent.xml"',windowspath64]
else:
	uninstallstring =['"C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /unininstall Standard /config silent.xml"']

def install():

    def killsoft():
      for soft in ('WINWORD.EXE','POWERPNT.EXE','EXCEL.exe','MSPUB.EXE','MSACCESS.EXE','INFOPATH.EXE','lync.exe','ONENOTE.EXE','OUTLOOK.EXE','ONENOTEM.EXE','MSOSYNC.EXE','GROOVE.EXE'):
        if isrunning(soft):
           print ("closing %s" % soft)
           killalltasks(soft)

    softname = 'Microsoft Office Professionnel Standard 2013'
    check_installed_out = installed_softwares(softname)
    if not check_installed_out:
            print('installing Office 2013')
            killsoft()
            cmd = ('%s\setup.exe /adminfile setup.msp /config silent.xml',waptpath)
            run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])
            time.sleep(30)
            filecopyto("silent.xml",("C:\Program Files\Common Files\"))
    else:
            print('repair Office 2013')
            killsoft()
            cmd = '"C:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\Office Setup Controller\setup.exe" /repair Standard /config silent.xml"'
            run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])
Benutzeravatar
dcardon
WAPT-Experte
Nachrichten: 1955
Anmeldung: 18. Juni 2014 - 09:58 Uhr
Ort: Saint Sébastien sur Loire
Kontakt:

24. Oktober 2018 – 16:45 Uhr

Hallo fbst,
fbst schrieb: 24. Okt. 2018 - 16:26 Uhr SCHWERWIEGENDER FEHLER: CalledProcessErrorOutput: Der Befehl '"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\OFFICE15\\Office Setup Controller\\Setup.exe /uninstall Standard /config silent.xml"' hat den Exit-Status 1 zurückgegeben.
Ausgabe: Der angegebene Zugriffspfad konnte nicht gefunden werden.
....

Code: Alle auswählen

            filecopyto("silent.xml",("C:\Program Files\Common Files\"))
Sie müssen den vollständigen Pfad zur Datei silent.xml angeben, da diese sich nicht im selben Verzeichnis wie setup.exe befindet. Alternativ können Sie das Arbeitsverzeichnis definieren.

Aufrichtig,

Denis
Denis Cardon – Tranquil IT
Teilen Sie Ihre Erfahrungen auf WAPT! Senden Sie uns Ihre Blog- und Artikel-URLs im „Ihre Meinung des Forums, und wir werden sie auf der WAPT-
fbst
Nachrichten: 5
Anmeldung: 24. Oktober 2018 - 15:59 Uhr

24. Oktober 2018 – 17:41 Uhr

Guten Morgen,

Vielen Dank für die schnelle Antwort, ich habe einen ersten Lösungsansatz gefunden!
Es funktioniert einwandfrei lokal auf dem Server direkt (Installation/Deinstallation)

Hier ist der Code:

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *
import time

uninstallkey = []
softname = 'Microsoft Office Standard 2013'

def install():

    def killsoft():
      for soft in ('WINWORD.EXE','POWERPNT.EXE','EXCEL.exe','MSPUB.EXE','MSACCESS.EXE','INFOPATH.EXE','lync.exe','ONENOTE.EXE','OUTLOOK.EXE','ONENOTEM.EXE','MSOSYNC.EXE','GROOVE.EXE'):
        if isrunning(soft):
           print ("Fermeture de %s" % soft)
           killalltasks(soft)

    if not installed_softwares(softname):
        open(makepath(programfiles32,'silent.xml'), "w" ).write(silentxml)
        print('Installation d\' Office 2013')
        cmd = '"C:\waptdev\Office2013Std_32bits-wapt\Microsoft Office 2013 32bits\setup.exe" /adminfile "setup.msp"'
        remove_file(makepath(programfiles32,'silent.xml'))
    else:
        print('Reparation d\'Office 2013')
        cmd = '"C:\waptdev\Office2013Std_32bits-wapt\Microsoft Office 2013 32bits\setup.exe" /repair Standard /config silent.xml"'


    killsoft()
    run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])

    if not installed_softwares(softname):
            error('%s : clef de desinstallation non trouvée',softname)

def uninstall():
    open(makepath(programfiles32,'silent.xml'), "w" ).write(silentxml)
    print("Desinstallation d\'Office")
    run('"%s" /uninstall Standard /config "%s"' % (makepath(programfiles32,'Common Files','microsoft shared','OFFICE15','Office Setup Controller','Setup.exe'),makepath(programfiles32,'silent.xml')),timeout=1200)
    remove_file(makepath(programfiles32,'silent.xml'))

silentxml = ur"""<Configuration Product="Standard">
<Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" />
   <Setting Id="SETUP_REBOOT" Value="NEVER" />
</Configuration>"""

Nach dem Erstellen und Hochladen erhalte ich jedoch beim Versuch, es auf einem entfernten Rechner zu installieren, folgende Fehlermeldung:

Code: Alle auswählen

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\waptservice\service.py", line 1374, in run
    self.running_task.run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 515, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 960, in _run
    self.result.get('errors',[])))
Exception: Erreur lors de l'installation de [u'4C4C4544-0057-5810-8039-B8C04F534632(=2)']: erreurs dans les paquets [[u'4C4C4544-0057-5810-8039-B8C04F534632(=2)', PackageEntry(u'4C4C4544-0057-5810-8039-B8C04F534632',u'2') , u'Traceback (most recent call last):\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 4372, in install\n    force=force\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 3591, in install_wapt\n    raise e\nEWaptUnavailablePackage: Missing dependencies: Office2013Std_32bits\n']]

Exception: Erreur lors de l'installation de [u'4C4C4544-0057-5810-8039-B8C04F534632(=2)']: erreurs dans les paquets [[u'4C4C4544-0057-5810-8039-B8C04F534632(=2)', PackageEntry(u'4C4C4544-0057-5810-8039-B8C04F534632',u'2') , u'Traceback (most recent call last):\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 4372, in install\n    force=force\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 3591, in install_wapt\n    raise e\nEWaptUnavailablePackage: Missing dependencies: Office2013Std_32bits\n']]
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\waptservice\service.py", line 1374, in run
    self.running_task.run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 515, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 960, in _run
    self.result.get('errors',[])))
Exception: Erreur lors de l'installation de [u'4C4C4544-0057-5810-8039-B8C04F534632(=2)']: erreurs dans les paquets [[u'4C4C4544-0057-5810-8039-B8C04F534632(=2)', PackageEntry(u'4C4C4544-0057-5810-8039-B8C04F534632',u'2') , u'Traceback (most recent call last):\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 4372, in install\n    force=force\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 3591, in install_wapt\n    raise e\nEWaptUnavailablePackage: Missing dependencies: Office2013Std_32bits\n']]

Irgendwelche Ideen? :/

Dank im Voraus,

Aufrichtig
fbst
Nachrichten: 5
Anmeldung: 24. Oktober 2018 - 15:59 Uhr

24. Oktober 2018 – 18:34 Uhr

Ergänzend zu meiner vorherigen Nachricht möchte ich klarstellen, dass ich den vollständigen Pfad zu setup.exe angebe:

Code: Alle auswählen

cmd = '"C:\waptdev\Office2013Std_32bits-wapt\Microsoft Office 2013 32bits\setup.exe" /adminfile "setup.msp"'
Das liegt daran, dass ich, wenn ich setup.exe allein eingebe, eine Meldung erhalte, dass setup.exe nicht gefunden wurde.
Zu Ihrer Information: Hier ist die Verzeichnisstruktur meines Pakets:
Capture.PNG
Capture.PNG (34,91 KB) 7344 Mal angesehen
Die Setup-Datei befindet sich im Stammverzeichnis. Ich habe sie außerdem in den WAPT-Ordner und anschließend in den Ordner „Microsoft Office 2013 32-Bit“ kopiert. Daher fällt es mir etwas schwer, das Arbeitsverzeichnis des Python-Skripts zu finden. Könnte mir bitte jemand helfen? :)

Könnte die Tatsache, dass der Pfad im Skript fest codiert ist, den oben genannten Fehler verursachen?

Um möglichst vollständig zu sein, hier mein Paket, wie es in der Konsole angezeigt wird:
Capture2.PNG
Capture2.PNG (31,03 KB) 7344 Mal angesehen
Die Meldung erscheint, wenn ich mit der rechten Maustaste auf einen Host klicke / eine Abhängigkeit hinzufügen / das Paket auswähle und dann auf Installationen starten klicke.
(Ich erwähne das nur für den Fall, dass ich einen Fehler mache.) :) )


Hier ist schließlich die Steuerdatei des Pakets:
Capture3.PNG
Capture3.PNG (19,76 KB) 7344 Mal angesehen
Vielen Dank... schönen Abend noch
Benutzeravatar
dcardon
WAPT-Experte
Nachrichten: 1955
Anmeldung: 18. Juni 2014 - 09:58 Uhr
Ort: Saint Sébastien sur Loire
Kontakt:

25. Oktober 2018 – 19:45 Uhr

Guten Abend fbst,
fbst schrieb: 24. Okt. 2018 - 18:34 Uhr Ergänzend zu meiner vorherigen Nachricht möchte ich klarstellen, dass ich den vollständigen Pfad zu setup.exe angebe:

Code: Alle auswählen

cmd = '"C:\waptdev\Office2013Std_32bits-wapt\Microsoft Office 2013 32bits\setup.exe" /adminfile "setup.msp"'
Das liegt daran, dass ich, wenn ich setup.exe allein eingebe, eine Meldung erhalte, dass setup.exe nicht gefunden wurde.
Das setup.py-Skript wird in einem temporären Verzeichnis mit einem zufällig generierten Verzeichnisnamen ausgeführt. Falls das Installationsprogramm einen vollständigen Ausführungspfad benötigt, sollte ich beispielsweise Folgendes verwenden können:

Code: Alle auswählen

import os 
dir_path = os.path.dirname(os.path.realpath(__file__))
In Ihrem Fall:

Code: Alle auswählen

cmd = '"%s\setup.exe" /adminfile "%s\setup.msp"' % (dir_path,dir_path)
Aufrichtig,

Denis
Denis Cardon – Tranquil IT
Teilen Sie Ihre Erfahrungen auf WAPT! Senden Sie uns Ihre Blog- und Artikel-URLs im „Ihre Meinung des Forums, und wir werden sie auf der WAPT-
fbst
Nachrichten: 5
Anmeldung: 24. Oktober 2018 - 15:59 Uhr

30. Oktober 2018 – 15:25 Uhr

Guten Morgen,

Entschuldigung für die etwas längere Antwortzeit...
Vielen Dank für Ihre Antwort

Nach den Tests hat sich gezeigt, dass dies auch nicht besser funktioniert:

Beim Bereitstellen des Pakets unter Windows 7 mit installiertem Office 2010 erhalte ich folgende Meldung:

Code: Alle auswählen

Installation d' Office 2013
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 3512, in install_wapt
    exitstatus = setup.install()
  File "c:\windows\temp\wapt83htmv\setup.py", line 23, in install
  File "C:\Program Files (x86)\wapt\common.py", line 3317, in run
    return ensure_unicode(setuphelpers.run(*arg,pidlist=self.pidlist,**args))
  File "C:\Program Files (x86)\wapt\setuphelpers.py", line 1044, in run
    raise CalledProcessErrorOutput(proc.returncode,cmd,''.join(output))
CalledProcessErrorOutput: Command '"c:\\windows\\temp\\wapt83htmv\\setup.exe" /adminfile "c:\\windows\\temp\\wapt83htmv\\setup.msp" /config "c:\\windows\\temp\\wapt83htmv\\silent.xml"' returned non-zero exit status -2146368439.
Output:
CalledProcessErrorOutput: Command '"c:\\windows\\temp\\wapt83htmv\\setup.exe" /adminfile "c:\\windows\\temp\\wapt83htmv\\setup.msp" /config "c:\\windows\\temp\\wapt83htmv\\silent.xml"' returned non-zero exit status -2146368439.
Output:
Die MSP-Datei ist so konfiguriert, dass ältere Versionen deinstalliert werden:

Hier ist mein Code

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *
import os

dir_path = os.path.dirname(os.path.realpath('__file__'))

uninstallkey = []
softname = 'Microsoft Office Standard 2013'


def install():

    def killsoft():
      for soft in ('WINWORD.EXE','POWERPNT.EXE','EXCEL.exe','MSPUB.EXE','MSACCESS.EXE','INFOPATH.EXE','lync.exe','ONENOTE.EXE','OUTLOOK.EXE','ONENOTEM.EXE','MSOSYNC.EXE','GROOVE.EXE'):
        if isrunning(soft):
           print ("Fermeture de %s" % soft)
           killalltasks(soft)

    if not installed_softwares(softname):
        killsoft()
        print('Installation d\' Office 2013')
        cmd = '"%s\setup.exe" /adminfile "%s\setup.msp" /config "%s\silent.xml"' % (dir_path,dir_path,dir_path)
        run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])
        killsoft()
    else:
        print('Deinstallation d\'office')
        cmd = '"%s\setup.exe" /uninstall Standard /config "%s\silent.xml"' % (dir_path,dir_path)
        run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])


def uninstall():
    open(makepath(programfiles32,'silent.xml'), "w" ).write(silentxml)
    killsoft()
    print("Desinstallation d\'Office")
    run('"%s" /uninstall Standard /config "%s"' % (makepath(programfiles32,r'Common Files',r'microsoft shared','OFFICE15',r'Office Setup Controller','Setup.exe'),makepath(programfiles32,'silent.xml')),timeout=1200)
    remove_file(makepath(programfiles32,'silent.xml'))


Die Dateien setup.exe / setup.MSP / silent.xml befinden sich im Stammverzeichnis des Office-Pakets zusammen mit setup.py und allen Office-Ordnern.
Ich gestehe, dass ich etwas Schwierigkeiten habe, das Problem, das ich habe, zu verstehen :)

Dank im Voraus,

Aufrichtig



NACHTRAG: Ich bestätige, dass auf dem Client-Rechner tatsächlich ein Ordner unter windows/temp/XXXX erstellt wird, der alle im Paket auf dem Server vorhandenen Office-Dateien enthält (setup.msp, setup.py, silent.xml + alle Office-Ordner)
Gesperrt