testperson 2.012 Geschrieben Freitag um 19:18 Melden Geschrieben Freitag um 19:18 Hi, ich habe hier ein "Intune App Installations Problem". Während der ESP werden mehrere Apps erzwungen und die Installationen scheitern unregelmäßig. Hierbei handelt es sich überwiegend um "Setup.exe", die zur Laufzeit mehrere MSIs entpacken und dann installieren. Wenn Installationen fehlschlagen und man entsprechende MSI Logs findet, findet sich dort "Another program is being installed. Please wait until that installation is complete, and then try installing this software again.". Dadurch bin ich auf "Mutex" gestoßen. Jetzt zur Frage: Hat es Nachteile, wenn ich in meinen Installations-Scripts am Anfang einfach ein "Mutex" erstelle / belege dann installiere und am Ende den "Mutex" wieder freigebe? Dadurch sollte ja keines der Scripte und somit auch keine Installation parallel laufen. (Ensuring that two PowerShell scripts don’t run at the same time | by Luke Puplett | Luke Puplett’s Personal Blog | Medium) Oder sollte ich "nur" prüfen, ob msiexec gerade einen "Mutex" belegt? (PowerShell Intune Win32 Apps – Avoiding a busy MSI Installer – Azure to the Max) Danke und Gruß Jan P.S.: So ganz habe ich "Mutex" noch nicht verstanden. Aber im Grunde funktioniert beides in ersten Tests.
BOfH_666 592 Geschrieben Gestern um 10:23 Melden Geschrieben Gestern um 10:23 vor 14 Stunden schrieb testperson: Hierbei handelt es sich überwiegend um "Setup.exe", die zur Laufzeit mehrere MSIs entpacken und dann installieren. Hatte ich auch mal. Da hat die aufgerufene Setup.exe die Kontrolle mehr oder weniger sofort wieder abgegeben und das PS-Script ist weitergelaufen. Die eigentliche Installation lief dann in einem Sub-Prozess im Hintergrund weiter. Ich hab dann eine Schleife gebaut, die auf die Beendigung dieses Sub-Prozesses gewartet hat, bevor es mit dem Rest weiterging. vor 15 Stunden schrieb testperson: So ganz habe ich "Mutex" noch nicht verstanden. Geht mir auch so. vor 15 Stunden schrieb testperson: Aber im Grunde funktioniert beides in ersten Tests. Na, denn .... go for it! 🤷🏼♂️ 🤟🏼
testperson 2.012 Geschrieben Gestern um 12:03 Autor Melden Geschrieben Gestern um 12:03 Danke für die Antwort. vor 1 Stunde schrieb BOfH_666: Hatte ich auch mal. Da hat die aufgerufene Setup.exe die Kontrolle mehr oder weniger sofort wieder abgegeben und das PS-Script ist weitergelaufen. Die eigentliche Installation lief dann in einem Sub-Prozess im Hintergrund weiter. Ich hab dann eine Schleife gebaut, die auf die Beendigung dieses Sub-Prozesses gewartet hat, bevor es mit dem Rest weiterging. Das Problem hatte ich auch hin und wieder bis ich "Start-Process" durch Write-Output "Starting Installation" $proc = New-Object System.Diagnostics.Process -Property @{ StartInfo = New-Object System.Diagnostics.ProcessStartInfo("$env:SystemRoot\Temp\Setup.exe") } $proc.Start() | Out-Null $proc.WaitForExit() ersetzt habe. Ich denke ich werde dann mal intensiver mit der Option "Mutex fürs komplette Script" testen. (Oder evtl. doch zum PSAppDeployToolKit wechseln...) 1
testperson 2.012 Geschrieben vor 1 Stunde Autor Melden Geschrieben vor 1 Stunde Hier noch der entsprechende Part, der jetzt in die Win32 Apps wandert: # ... [int]$Wait = 1 # Wait time in minutes [bool]$check = $false [bool]$created = $false [System.Threading.Mutex]$mutex = New-Object System.Threading.Mutex $Wait *= 60000 # Convert minutes to milliseconds do{ try{ $mutex = $mutex::OpenExisting("PoShIntuneAppInstall") Write-Output "[$(Get-Date -UFormat "%Y.%m.%d %H:%M:%S")] - Other Script is running..." $check = $mutex.WaitOne($Wait) } catch{ $check = $true } finally{ $mutex.Dispose() | Out-Null } }until($check) Write-Output "[$(Get-Date -UFormat "%Y.%m.%d %H:%M:%S")] - No other Script is running..." $mutex = $mutex::new($true, "PoShIntuneAppInstall", [ref]$created) # Have a break, have a KitKat or install some software pause $mutex.ReleaseMutex() | Out-Null $mutex.Dispose() | Out-Null # ...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden