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

Geschrieben

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 

Geschrieben

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

Geschrieben

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	

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

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...