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-Key: 109964

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

Printed on: April 19, 2024 at 20:04 o'clock

Member: Logan000
Logan000 Feb 25, 2009 at 13:07:24 (UTC)
Goto Top
Moin Moin

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

Gruß L.
Member: gdnmarc
gdnmarc Feb 25, 2009 at 14:12:50 (UTC)
Goto Top
DANKE, das war einfach face-smile Viele Grüße
Member: Logan000
Logan000 Feb 25, 2009 at 14:24:25 (UTC)
Goto Top
Moin

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

Danke & Gruß L.
Member: dieablo
dieablo Jun 02, 2009 at 14:02:28 (UTC)
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