Ich bin ein Citrix- Administrator und möchte die allgemeine Benutzerpopulation auf unseren Servern daran hindern, PowerShell zum Ausführen eigener Skripts oder zur interaktiven Verwendung zu verwenden. Wir verbieten bereits die Verwendung der Eingabeaufforderung über das Gruppenrichtlinienobjekt , aber mit PowerShell ist dies im Grunde genommen nutzlos.
Ich habe festgestellt, dass Powershell.exe eine Befehlszeilenoption hat, mit -NoInteractiveder ein Benutzer ein Skript ausführen kann, die ihm jedoch keine interaktive Eingabeaufforderung bietet. Das Problem ist, dass ich keinen Weg gefunden habe, Powershell zu zwingen, auf diese Weise zu arbeiten. Ich bin sogar so weit gegangen, ein Startskript C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Microsoft.PowerShell_profile.ps1 zu erstellen, das nach dem -NoInteractiveParameter sucht, aber Benutzer können dies umgehen, indem sie einfach Powershell.exe mit dem -NoProfileParameter starten .
Das andere Problem ist, dass wir viele PowerShell-Skripte verwenden, um Anwendungen für Benutzer zu starten, und Teile des Anmeldeskripts in PowerShell geschrieben sind und im Benutzerkontext ausgeführt werden müssen, sodass ich die EXE-Datei nicht einfach mit einer ACL versehen kann. Ich brauche sie, um PowerShell verwenden zu können, nur nicht interaktiv. Letztendlich möchten wir die AllSignedAusführungsrichtlinie durchsetzen und alle Skripte signieren, damit ein Benutzer nur ein Skript ausführen kann, das wir (die Administratoren) erstellt und / oder abgemeldet haben.
Ich habe versucht, nach dieser Antwort zu googeln und habe festgestellt, dass viele Leute sie verwenden -NoInteractive, aber ich habe keine Instanz gefunden, in der jemand versucht hat, sie zu erzwingen. Irgendwelche Ideen?