gdnmarc
Goto Top

VBS - warten bis Aufruf(Installation) abgearbeitet wurde

Hallo Ihr Lieben,

ich habe ein ganz kleines Problem. Ich habe ein Script geschrieben welches überprüft, ob ein RegValue existiert. Wenn dieser existiert, wird er gelöscht und danach eine Deinstallation eines Programms gestartet. Das einzige Problem, dass ich habe, das das Script die Deinstallationsroutine erfolgreich startet und dann das Script über script.quit beendet wird. Die Deinstallation läuft im Hintergrund weiter. Kann ich das ändern, dass das Script erst beendet wird wenn der msiexec mit der Deinstallation auch fertig ist?

DANKE!!!!!!!!


Option Explicit

On error resume next

dim objShell,objFSO, objFolder, regRDP, regTDP, RDP, TDP, strRegKey, strComputer, strSubKeyName, strEntryName, objReg, intRet, deleteValue,wshshell, strmsiexec
Const HKLM = &H80000002
set wshshell = Wscript.createobject("Wscript.shell")
Set objShell = CreateObject("WScript.Shell")

strComputer="."
strSubKeyName = "SOFTWARE\Microsoft\PCHealth\ErrorReporting\DW\Products"
strEntryName = "{375E26BD-2A8B-4DC5-84A1-9B43D504EDF9}"
strMsiexec = "C:\WINDOWS\system32\msiexec.exe /x {91710409-8000-11D3-8CFE-0150048383C9} REINSTALL="""" REINSTALLMODE=""omus"" /l*v C:\WINDOWS\Temp\ManageSoft\AERuninstall.log /qb"

Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

If RegEntryExists(strSubKeyName, strEntryName) <> 0 Then
' wscript.echo "The registry key was not found. Nothing to do face-smile"
wscript.quit
Else
deleteValue = objReg.DeleteValue(HKLM, strSubKeyName, strEntryName)
Wshshell.Run(strmsiexec)
End If

WScript.Quit

Function RegEntryExists(RegPath, theEntry)
intRet = objReg.GetDWORDValue(HKLM, RegPath, theEntry)
RegEntryExists=intRet
End Function

Content-ID: 109964

Url: https://administrator.de/contentid/109964

Ausgedruckt am: 19.11.2024 um 05:11 Uhr

Logan000
Logan000 25.02.2009 um 14:07:24 Uhr
Goto Top
Moin Moin

Die Run Funktion kennt noch Parameter. Versuchs mal mit folgendem Aufruf:
...
Wshshell.Run strmsiexec,1, True
...

Gruß L.
gdnmarc
gdnmarc 25.02.2009 um 15:12:50 Uhr
Goto Top
DANKE, das war einfach face-smile Viele Grüße
Logan000
Logan000 25.02.2009 um 15:24:25 Uhr
Goto Top
Moin

Freut mich das ich Dir helfen konnte. Sei doch so gut und setze den Beitrag auf erledigt.

Danke & Gruß L.
dieablo
dieablo 02.06.2009 um 16:02:28 Uhr
Goto Top
Guten Tag,

ich habe zu dem Thema noch eine Frage.
Die EXE die ich auf rufe mit dem Parameter, ruft wiederum eine EXE auf.
Ich muss allerdings die zweite EXE abfangen und schauen ob die noch läuft und wenn nicht soll er zum Beispiel eine Messagebox öffnen.

Jetzt könnten man sagen, rufe doch gleich die 2 EXE auf, dass geht leider nicht.

Hat jemand eine Idee ??

Hab schon versucht den Prozess abzufangen aber da habe ich das Problem, dass diese EXE mehre Parameter hat und ich nur möchte, dass man das Programm mit ein und dem selben Paramter nicht geöffnet werden kann / darf.

Das ist auch das Hauptziel, ein Programm darf nur 1 mal geöffnet werden mit dem selben Parameter.

Lg
Dennis