Fragen zu VBS Routinen

T

TheDonMiguel

Hallo zusammen

Ich habe mich mal mit VBS auseinander gesetzt und stosse nun auf gewisse Probleme. Ich erhoffe mir nun auf kleine Hinweise bei meiner Unwissenheit. Grob gesagt, ich versuche mich an Scripts für automatische Installationen & co für Windows XP/2003. An folgenden Punkten stosse ich an:

1. If rufe eine Installation wie anbei beschrieben auf. Jedoch macht das Script einfach weiter. Wie kann ich eine "Funktion" oder ähnlich einbauen, dass erst forgefahren wird, wenn diese Aktion abgeschlossen ist? Aktuell mache ich es mit WScript.Sleep, aber dies passt mir nicht so...

Code:
Wscript.Echo "Install Microsoft Windows Server 2003 Resource Kit ..."
WshShell.Run "cmd /c msft_ressource\rktools.msi /quiet /passive"

2. Mein zweites Problem ist, dass ich 2-3 Hotfixe installieren möchte. Dies natürlich nur, sofern diese nicht schon installiert sind. Ich habe mich an diesem versucht, aber irgendwie ist dies nicht so toll. Hat jemand eine bessere Idee wie ich dies umsetzten könnte?

Code:
If IsInstalled("KB312864") Then
End If

Function IsInstalled(strHotfix)
sHotfix = WshShell.RegRead(KEY_HOTFIX & strHotfix & "\Installed")
If sHotfix = "1" Then
 'Wscript.Echo "Hotfix " & strHotfix & " was allready installed ..."
Else
 'Wscript.Echo "Start hotfix " & strHotfix & " installation ..."
 'WshShell.Run "cmd /c s:\install\msft\msft_updatepack\data200608\" & strHotfix "-x86-ENU.exe"
End If
End Function

Danke vielmals für eure Tipps.
Grüsse,
TDM
 
TheDonMiguel hat gesagt.:
...dass erst forgefahren wird, wenn diese Aktion abgeschlossen ist?
Dazu musst du dir Informationen über den Prozess besorgen, den du aufrufst (z.B. die Task-ID, ich glaube die Run-Methode gibt dir diese als Rückgabewert, weiß das aber nicht genau und hab gerade kein VB zum ausprobieren da.)
Dann musst du dir eine Liste aller auf dem PC laufenden Tasks besorgen und schauen, ob die Task-ID deines Prozesses noch vorhanden ist oder nicht. Wenn nicht, dann ist das Programm beendet.
Dazu gibt es bereits mehrere Threads hier, einfach mal nach "Prozess-ID" oder so suchen!
 

Neue Beiträge

Zurück