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 "
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
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 "
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 109964
Url: https://administrator.de/contentid/109964
Ausgedruckt am: 19.11.2024 um 05:11 Uhr
4 Kommentare
Neuester Kommentar
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
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