leg 10 Geschrieben 2. Februar 2009 Melden Teilen 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 Zitieren Link zu diesem Kommentar
zahni 550 Geschrieben 2. Februar 2009 Melden Teilen 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 Zitieren Link zu diesem Kommentar
BrainStorm 10 Geschrieben 2. Februar 2009 Melden Teilen 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. Zitieren Link zu diesem Kommentar
leg 10 Geschrieben 2. Februar 2009 Autor Melden Teilen 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 Zitieren Link zu diesem Kommentar
zahni 550 Geschrieben 2. Februar 2009 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Dukel 451 Geschrieben 2. Februar 2009 Melden Teilen Geschrieben 2. Februar 2009 set /p ... Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.