leg 10 Geschrieben 2. Februar 2009 Melden Geschrieben 2. Februar 2009 Hallo zusammen, ich muss eine Deinstallation eines Programms und daraufhin eine Neuinstallation durchführen. Das ist per Batch & GPO auch kein Problem. Allerdings muss ich irgendwie abfragen, ob diese Installation schon gelaufen ist, deswegen möchte ich nach Installation der neuen Software eine Systemvariable setzen. Aus verschiedenen Sysntaxbeispielen im Netz habe ich mir was zusammengebaut, leider wird die Variable nicht gesetzt. Könnt ihr mir einen Tipp für die korrekte Sysntax oder ein Beispiel geben? Das ganze betrifft nur Windows XP Clients, falls das von Bedeutung ist. Vielen Dank leg Hier mein Code: if not %fcinstalledviagpo% == 1 msiexec /qn /x {C2FAE67B-9C91-4C88-91C6-37E4D5F50FE9} msiexec /i \\server\freigabe\FortiClient\Forticlient.msi /quiet set %fcinstalledviagpo% = 1
zahni 587 Geschrieben 2. Februar 2009 Melden Geschrieben 2. Februar 2009 Dein Problem ist, dass Du so nur temporäre Varibalen setzt, die sind nur während der aktuellen "CMD.EXE" gültig. Im Windows Resource Kit müsste es "setx" geben. Mit http://www.kixtart.org/ geht es auch. Der ausführende User muss Admin-Rechte haben. -Zahni
BrainStorm 10 Geschrieben 2. Februar 2009 Melden Geschrieben 2. Februar 2009 Hallo leg, wäre es auch eine Option einen kleinen Registry-Eintrag zu setzen? Das wäre zumindest von Dauer und lässt sich ebensogut mittels REG.EXE QUERY abfragen.
leg 10 Geschrieben 2. Februar 2009 Autor Melden Geschrieben 2. Februar 2009 Danke euch schon mal für die Anregungen, habe das Skript nun etwas ausgefeilt. Aktuell scheint das Problem zu sein, dass das manuelle Neustart, den ich leider brauche, nicht ausgeführt wird (Schritt :REBOOT). Was also passiert: - PC mit alter Software wird gestartet - Software wird deinstalliert - PC Bootet - PC steht an der Anmeldung - %FCInstalledViaGPO% steht auf 1 Ist der Syntax des Reboots hier falsche oder kann man vielleicht auch so nicht booten? Etwas komisch, im CMD klappt das ohne Probleme. Ob mit oder ohne -m macht keinen Unterschied. Hat noch jemand Vorschläge? Danke leg @ECHO OFF REM FC installed? if not defined FCInstalledViaGPO GOTO UNINSTALL if "%FCInstalledViaGPO%" == "0" GOTO REBOOT if "%FCInstalledViaGPO%" == "1" GOTO INSTALL if "%FCInstalledViaGPO%" == "2" GOTO END GOTO END :UNINSTALL REM Variable not set -> UNINSTALL! \\server\freigabe\FortiClient\setx FCInstalledViaGPO 0 -m msiexec /qn /x {C2FAE67B-9C91-4C88-91C6-37E4D5F50FE9} GOTO END :REBOOT \\server\freigabe\FortiClient\setx FCInstalledViaGPO 1 -m shutdown -r -f -m \\%COMPUTERNAME% -t 00 GOTO END :INSTALL REM Install FC and set Variable \\server\freigabe\FortiClient\setx FCInstalledViaGPO 2 -m msiexec /i \\server\freigabe\FortiClient\Forticlient.msi /quiet :END
zahni 587 Geschrieben 2. Februar 2009 Melden Geschrieben 2. Februar 2009 Du hast nach dem MSIEXEC zur Desinstallation eine "GOTO END" drinn. Da kann er nicht neu booten. [...] msiexec /qn /x {C2FAE67B-9C91-4C88-91C6-37E4D5F50FE9} shutdown -r -f -t 00 GOTO END Den Reboot-Teil kannst Du weglassen. Ein Tip: Ich würde besser irgendwas in der Registry abfragen oder im Dateisystem was prüfen, um sicher zeu sein, dass die Anwendung wirklich installiert wurde. Also z.B. (mit Kixtart) IF GetFileVersion("C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.dll", "ProductVersion" )<>"8.1.3.2008101500" SHELL "\\Server\share\Softwareverteilung\MSI\Acroread813\setup.exe" shell 'psshutdown -r -t 0' exit endif
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden