Vor Kurzem haben wir eine Software auf allen Windows-Clients durch NinjaOne mittels des MSI-Pakets über msiexec.exe updaten wollen. Dafür haben wir auf meinem und dem Notebook eines Kollegen remote das MSI-Paket mit den benötigten Parametern über die msiexec.exe ausgeführt. Das hat gut funktioniert und das Setup für die Software hat auch keinen Neustart benötigt. Aber leider nur auf unseren Computern und nicht den anderen Client-PCs! Die sind nämlich leider teilweise einfach ohne vorherige Ankündigung neu gestartet!
Ursache für den Neustart durch msiexec.exe
Tja, das war eine gute Lektion um festzustellen, dass die Ausführung eines MSI-Packages ohne den Parameter „/norestart“ dazu führt, dass anscheinend ausstehende Windows-Updates mit installiert werden, unabhängig davon welche Software man installiert und zu einem ungeplanten Neustart des Systems führen können, auch wenn das ausgeführte Setup diesen gar nicht fordert! Zumindest war dies in unserem Fall der Grund, denn bei den erfolgreich ohne Neustart getesteten Computern fehlten keine Windows-Updates, bei allen anderen schon.
MSI-Paket mittels Command Line installieren
In der guten alten Command Line kann man ein MSI-Paket beispielsweise so ausführen und dabei einen Neustart verhindern:
1 |
msiexec /package softwaresetuo.msi /norestart |
MSI-Paket mittels PowerShell installieren
In der PowerShell muss man diesen Befehl etwas anders verpacken und mit dem Befehl „Start-Process“ arbeiten und die Parameter in einer „ArgumentList“ mit übergeben:
1 2 |
$msiPath = "C:\Pfad\zu\Ihrem\paket.msi" Start-Process msiexec.exe -ArgumentList "/package `"$msiPath`" /norestart" -Wait -NoNewWindow |
Doch neustarten?
Wenn man statt den Neustart zu unterdrücken genau das Gegenteil bewirken und auf jeden Fall einen Neustart durchführen möchte, erreicht man dies mit dem Parameter „/forcerestart„. Der Neustart wird dann auch durchgeführt, selbst wenn das Setup dies nicht voraussetzt.
Fazit zur Installation mittels MSI-Paket
Aufgrund der Erkenntnis, dass Windows anscheinend ohne weiteren Kommentar neu gestartet wird, sofern man zumindest per Kommandozeile ein MSI-Paket installiert und noch Windows-Updates ausstehen, sollte man vermutlich immer den Parameter „/norestart“ verwenden. Also auch dann, wenn das Setup bzw. die Software selber sowieso keinen Neustart benötigt wenn sie installiert wurde.