Jump to content

Software per VB-Script installieren


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

Empfohlene Beiträge

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.

Link zu diesem Kommentar

also das mit objsoftware.install kenn iich gar nicht...bin aber auch nicht der vbscript spezialist.

da dieses setup aber eine normale .exe ist würd ich sie folgendermaßen starten:

 

 Set objShell = CreateObject("WScript.Shell") 

 

und dann enteder mit run oder mit exec die anwendung starten.

 

objshell.run

=> damit kannst du ein programm z.b. starten oder

objshell.exec 

=> wie run, nur dass du mit dem laufenden programm kommunizieren kannst

 

dazu würd ich mir an deiner stelle die windows script host 5.6 doku von MS downloaden...

dort kannst du alle befehle (methoden) bequem nachschlagen...

Link zu diesem Kommentar

Danke für den Tipp. Funktioniert prächtig - zumindest bis dahin ...

Ein Problem habe ich jetzt aber immer noch: Am Ende des Setup steht eine Eingabeaufforderung "Beenden".

Egal, wieviele "Sendkeys" oder/und "Sleep"-Befehle ich zwischenschalte, die Abfrage ignoriert mich...

Wenn ich allerdings hergehe, und "Alt + F4" als letzte Befehl übertrage, bricht das setup während der installation ab ...

 

Ich weiss einfach nicht, wie ich das Setup korrekt beende ... Jemand anderes vielleicht?

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...