MSI Installation als User auf TS funktioniert nicht
Guten Tag zusammen,
ich habe eine Frage bezüglich der Installation von einer MSI-Datei auf einem Server 2016 Datacenter Terminalserver.
Wenn ich eine User-Software installieren will, kann ich das als normaler User problemlos. Ich starte die Installation und der Wizard installiert ihn unter AppData. Nun will ich aber bei allen Usern die Software installieren (muss auf User-basis sein, damit gewisse Registry-Einstellungen dafür greifen).
Ich starte die Installation per Powershell-Script (weil UNC-Pfad) mit dem Parameter /passive (start namedermsi.msi /passive). Aber auf dem Terminalserver läuft die Installation nicht erfolgreich durch und bricht ab. Nach einiger Recherche habe ich herausgefunden, dass es abbricht, weil anscheinend aufgrund einer administrativen Richtlinie das verhindert wird.
Ich habe aber sicherlich keine Richtlinie aktiv, die sowas explizit einschränkt (die normale Installation per klick klick klick ok funktioniert). Es muss also eine sein, die irgendwie standardmäßig aktiv ist, ich finde aber keine Infos dazu. Und ich finde auch keine korrekten Google Ergebnisse, vielleicht suche ich auch falsch. Starte ich jedenfalls diese Installation auf dem TS als Domänenadministrator, läuft sie planmäßig durch.
Stelle ich die Situation auf meinem lokalen Win 10 Rechner nach, funktioniert es genauso, wie es soll. Ich habe das Script + die MSI im Netzwerk freigegeben (Jeder lesen) und greife über \\localhost\freigabe\script.ps1 zu. Ich werde gefragt, ob ich das Powershell-Script ausführen will, ich bestätigt das, die Installation läuft sauber durch. Ich bin mit dem User, mit dem ich angemeldet bin, kein lokaler Administrator, bin also als normaler User unterwegs.
Ich habe dann die Idee gehabt, dass PowerShell Scripte auf Terminalservern nicht erlaubt sind, Stichwort Execution Policy. Da ich aber nicht "unrestriced" nutzen wollte, bin ich sogar soweit gegangen und habe das kleine Script mit der internen Zertifizierungsstelle signiert, gleiches Ergebnis.
Kann mir jemand sagen, was hier eventuell falsch läuft?
Vielen Dank im Voraus!
MfG
ich habe eine Frage bezüglich der Installation von einer MSI-Datei auf einem Server 2016 Datacenter Terminalserver.
Wenn ich eine User-Software installieren will, kann ich das als normaler User problemlos. Ich starte die Installation und der Wizard installiert ihn unter AppData. Nun will ich aber bei allen Usern die Software installieren (muss auf User-basis sein, damit gewisse Registry-Einstellungen dafür greifen).
Ich starte die Installation per Powershell-Script (weil UNC-Pfad) mit dem Parameter /passive (start namedermsi.msi /passive). Aber auf dem Terminalserver läuft die Installation nicht erfolgreich durch und bricht ab. Nach einiger Recherche habe ich herausgefunden, dass es abbricht, weil anscheinend aufgrund einer administrativen Richtlinie das verhindert wird.
Ich habe aber sicherlich keine Richtlinie aktiv, die sowas explizit einschränkt (die normale Installation per klick klick klick ok funktioniert). Es muss also eine sein, die irgendwie standardmäßig aktiv ist, ich finde aber keine Infos dazu. Und ich finde auch keine korrekten Google Ergebnisse, vielleicht suche ich auch falsch. Starte ich jedenfalls diese Installation auf dem TS als Domänenadministrator, läuft sie planmäßig durch.
Stelle ich die Situation auf meinem lokalen Win 10 Rechner nach, funktioniert es genauso, wie es soll. Ich habe das Script + die MSI im Netzwerk freigegeben (Jeder lesen) und greife über \\localhost\freigabe\script.ps1 zu. Ich werde gefragt, ob ich das Powershell-Script ausführen will, ich bestätigt das, die Installation läuft sauber durch. Ich bin mit dem User, mit dem ich angemeldet bin, kein lokaler Administrator, bin also als normaler User unterwegs.
Ich habe dann die Idee gehabt, dass PowerShell Scripte auf Terminalservern nicht erlaubt sind, Stichwort Execution Policy. Da ich aber nicht "unrestriced" nutzen wollte, bin ich sogar soweit gegangen und habe das kleine Script mit der internen Zertifizierungsstelle signiert, gleiches Ergebnis.
Kann mir jemand sagen, was hier eventuell falsch läuft?
Vielen Dank im Voraus!
MfG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 596241
Url: https://administrator.de/forum/msi-installation-als-user-auf-ts-funktioniert-nicht-596241.html
Ausgedruckt am: 22.12.2024 um 07:12 Uhr
44 Kommentare
Neuester Kommentar
/qn zeigt ja auch nix an. Probier mal /qb.
/q - set the UI level:
n - no UI
n+ - no UI except for a modal dialog box displayed at the end.
b - basic UI
b+ - basic UI with a modal dialog box displayed at the end. The modal box is not displayed if the user cancels the installation. Use qb+! or qb!+ to hide the [ Cancel ] button.
b- - basic UI with no modal dialog boxes. Please note that /qb+- is not a supported UI level. Use qb-! or qb!- to hide the [ Cancel ] button.
r - reduced UI
f - full UI
Das ist applocker oder eine Softwareeinschränkungsrichtlinie ("SRP").
Einfach am Server ein elevated command Prompt öffnen und dort
abfeuern und in der sich öffnenden Reportdatei nachschauen, ob Applocker oder SRPs aktiv sind und von welcher GPO die stammen.
Einfach am Server ein elevated command Prompt öffnen und dort
gpresult /h %temp%\result.html /f & %temp%\result.html
Öffne sie in notepad. Drücke STRH und H (Suchen und ersetzen), suche gründlich nach Namen/Wörtern, die Du nicnt veröffentlichen willst und ersetze sie durch Dummies. Speichere, uploade hier: https://fromsmash.com/
Gut. Zum ersten Punkt: nimm mal ein MSI, das Adminrechte erfordert, zum Beispiel 7zip und teste damit. Was passiert?
Wg. Wsus: Es gibt wunderbare Exploitkits, die geben sich selbst als WSUS aus und hauen Deinen Kisten die Malware als Updates getarnt um die Ohren. Bekannt seit Ewigkeiten, ausgenutzt seit Ewigkeiten Risiko: hoch. Wahrscheinlichkeit der Ausnutzung: hoch. Abhilfe: simpel: https.
https://docs.microsoft.com/en-us/windows-server/administration/windows-s ...
Siehe 2.1
Wg. Wsus: Es gibt wunderbare Exploitkits, die geben sich selbst als WSUS aus und hauen Deinen Kisten die Malware als Updates getarnt um die Ohren. Bekannt seit Ewigkeiten, ausgenutzt seit Ewigkeiten Risiko: hoch. Wahrscheinlichkeit der Ausnutzung: hoch. Abhilfe: simpel: https.
Der WSUS selbst lädt die Updates ja sogar auch über HTTP runter
Hö?https://docs.microsoft.com/en-us/windows-server/administration/windows-s ...
Siehe 2.1
2.1.1. Connection from the WSUS server to the Internet
If there is a corporate firewall between WSUS and the Internet, you might have to configure that firewall to ensure WSUS can obtain updates. > To obtain updates from Microsoft Update, the WSUS server uses port 443 for HTTPS protocol.
If there is a corporate firewall between WSUS and the Internet, you might have to configure that firewall to ensure WSUS can obtain updates. > To obtain updates from Microsoft Update, the WSUS server uses port 443 for HTTPS protocol.
Ja, 7zip braucht ja auch Adminrechte. Nimm doch mal eins, was noch nicht installiert ist, z.B. xml notepad: https://download.microsoft.com/download/6/e/e/6eef2361-33d4-48a2-b52e-58 ...
Ich habe das nachvollzogen auf einer 2016er Testinstallation - ist bei mir genau so.
msiexec /i paket.msi /qb führt zu "Der Systemadministrator hat Richtlinien erlassen...", während das Selbe auf Win10 einfach geht.
Frag den Entwickler des Paketes, ob es bei ihm auf 2016 Server läuft (vermutlich auch nicht, da meiner jungfräulich ist) und wenn ja, wie.
msiexec /i paket.msi /qb führt zu "Der Systemadministrator hat Richtlinien erlassen...", während das Selbe auf Win10 einfach geht.
Frag den Entwickler des Paketes, ob es bei ihm auf 2016 Server läuft (vermutlich auch nicht, da meiner jungfräulich ist) und wenn ja, wie.
Wie wäre es damit: https://support.microsoft.com/de-de/help/223300/how-to-enable-windows-in ...
Oder
Abwegig, aber warum nicht: wird .net 3.5 benötigt?
Oder
msiexec /i paket.msi /qb /L*iew "C:\TEMP\install.log"
Abwegig, aber warum nicht: wird .net 3.5 benötigt?
Gibt es denn eine Möglichkeit, mithilfe eines Scripts oder so tempoäre Adminrechte nur für die Installation zu genehmigen?
Nein. Du kannst jedoch MSI Usern per GPO zuweisen, so dass diese von Nichtadmins über den Weg appwiz.cpL installiert werden können (ruf das mal auf, da gibt es einen Bereich "Programme vom Netzwerk installieren, wo das dann auftauchen würde).Aber warum das Ganze: wenn es nur um die Verteilung von einer Plugindatei und 3 Registryeinträgen geht, dann mach das lieber per Group Policy Preferences.
https://social.technet.microsoft.com/Forums/security/en-US/65f67962-582a ... - muss im Nutzerabteil der GPO gemacht werden, nicht im Computerabteil.
ich denke nicht, dass es mir möglich ist, die Installation einer Software nach zu bauen.
Orca würde dir zeigen, welche Dateien kopiert werden und welche Registrywerte gesetzt werden - mehr brauchst Du doch nicht. Hast Du es dir in orca überhaupt angesehen?Ich habe es getestet mit dem an User assignen - geht.
Nutzer nicht publish oder assign, sondern advanced, setze dann folgenden Haken:
und dann läuft das unter appwiz.cpL:
Ich habe mittlerweile getestet, dass die Zuweisung per GPO an User auf Server 2016 funktioniert, wenn man es einstellt wie im Bild:
Hattest Du vielleicht im Zuge deiner Tests auch schon gemacht.
Ich rate weiterhin schwer davon ab, die Policy zu setzen, dass MSIs immer mit den Rechten des Installerdienstes installiert werden, aber man könnte es ja temporär erlauben:
Ein immediate scheduled Task läuft bei Anmeldung des Nutzers als Nutzer und triggert einen weiteren Task (der mit hohen Rechten läuft), der den Registrywert setzt, der zur Policy "Immer mit erhöhten Rechten installieren" gehört. Dann kommt msiexec /i dein.msi /qn und danach wird wieder ein Task mit hohen Rechten angetriggert, der den Registrywert entfernt.
Wird funktionieren und löst Dein Problem hinreichend sicher.
Hattest Du vielleicht im Zuge deiner Tests auch schon gemacht.
Ich rate weiterhin schwer davon ab, die Policy zu setzen, dass MSIs immer mit den Rechten des Installerdienstes installiert werden, aber man könnte es ja temporär erlauben:
Ein immediate scheduled Task läuft bei Anmeldung des Nutzers als Nutzer und triggert einen weiteren Task (der mit hohen Rechten läuft), der den Registrywert setzt, der zur Policy "Immer mit erhöhten Rechten installieren" gehört. Dann kommt msiexec /i dein.msi /qn und danach wird wieder ein Task mit hohen Rechten angetriggert, der den Registrywert entfernt.
Wird funktionieren und löst Dein Problem hinreichend sicher.