Hallo (Scripting) Gemeinde.
Ich habe ein Problem mit einem VB-Script.
Zu meiner grossen Schande muss ich allerdings gestehen, dass Ich vom VB-Scripting ungefähr so viel Ahnung habe, wie eine Kuh vom Fliegen. Leider habe ich keine Möglichkeit gehabt, den "Auftrag" abzubiegen ...
Aufgabe:
Dieses Script soll nach Abfrage eines Registry-Flags auf einem lokalen PC (OS win2K oder Win XP) eine Software (Paradox 7 Runtime) einmalig installieren, wenn dieses Flag auf "0" steht - anderenfalls (Flag = "1") soll nichts passieren. Nach erfolgreicher Installation wird das Flag auf "1" gesetzt.
Im Moment (Testhalber - als proof of concept) soll die SW von einem lokalen Laufwerk installiert werden. Im Echtbetrieb wird die Installation von einer Freigabe erfolgen (UNC-Pfad). Als Installations-Benutzer ist ist ein administrativer Domänen-Account vorgesehen (hier allerdings noch nicht - die Feinheiten kommen später).
Zum Problem:
Die Abfrage des Flags funktioniert und die "setup.exe" wird auch aufgerufen ... danach passiert erstmal eine Weile nichts. Es kommt dann die Meldung mit dem errReturn = "3".
Dass anschliessend das Flag trotzdem auf "1" gesetzt wird, ist schon ok...
Warum wird das Setup der Paradox 7 Runtime nicht ausgeführt bzw. warum erhalte ich den Returncode "3"? Was bedeutet der überhaupt? Ich habe mir schon einen Wolf gesucht.
Hier nun das Script. Meine Kommentare und die Zeilen für die Fehlermeldungen bitte ignorieren - die werden später wieder entfernt...
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
Call Paradoxinstall()
WScript.Quit
'==========================================================================
Sub Paradoxinstall()
key = "HKCU\Test\Paradoxinstall"
WScript.Echo "Paradox-Runtime Flag: "& wshshell.regread(key)
If wshshell.regread(key) = "0" Then
Const Administrators = True
Set objService = GetObject("winmgmts:")
Set objSoftware = objService.Get("Win32_Product")
errReturn = objSoftware.Install("c:\RUN32\setup.exe", ,Administrators)
' ... maybe shit happened ... :-((
Wscript.Echo "Returncode: " & errReturn
' Setting flag to one after work is done ;-)
WSHShell.RegWrite "HKCU\Test\Paradoxinstall", "1", "REG_DWORD"
WScript.Echo "Paradox-Runtime installiert und Flag gesetzt."
Else
' Next 3 lines only for testing - will be deleted
WScript.Echo "Paradox-Runtime NICHT installiert und Flag NICHT gesetzt."
' setting flag to zero again - maybe shit happened ...
WSHShell.RegWrite "HKCU\Test\Paradoxinstall", "0", "REG_DWORD"
end If
End Sub
Wer kann mir helfen? Oder hat jemand so ein Problem bzw, solch eine Aufgeabe zur Zufriedenheit Aller gelöst?
Vielen Dank im Voraus für Eure Hilfe.