Jump to content

Systemvariable setzen und prüfen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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 

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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	

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...