GPO-PowerShell greift nicht
Hallo zusammen ich habe eine GPO erstellt, die mir an den PCs im Netzwerk beim Starten derer immer das Standardgateway anpassen soll.
Dies soll sie über einen PowerShell Befehl machen. Diese sieht so aus:
Get-NetRoute -DestinationPrefix 0.0.0.0/0 -NextHop 192.168.99.254 -EA SilentlyContinue | Remove-NetRoute -Confirm:$false -PassThru | New-NetRoute -DestinationPrefix 0.0.0.0/0 -NextHop 192.168.99.253
Hier soll das Gateway immer auf die 192.168.99.253 gestellt werden, was es auch tut, wenn ich die PowerShell als Admin öffne und den Befehl laufen lasse.
Die .ps1 liegt auf dem DC in einem freigegebenen Ordner.
In der Sicherheitsfilterung in der GPO habe ich alle die PCs hinzugefügt, die den Befehl erhalten sollen.
Die GPO selbst habe ich wie folg gemacht.
Computerkonfiguration => Richtlinien => Windows-Einstellungen => Skripts (Start/Herunterfahren) Im Start habe ich unter der Registerkarte PowerShell-Skripts den Pfad zum Skript angegeben.
Starte ich den PC neu passiert einfach nichts. Ich habe auch schon in der Sicherheitsfilterung einmal die Domänen-Benutzer hinzugefügt, brachte auch nichts.
Hat jemand eine Idee?
Dank und Gruß HeinrichM
PS: ist ein Server 2019 Standard mit der Rolle DC
Dies soll sie über einen PowerShell Befehl machen. Diese sieht so aus:
Get-NetRoute -DestinationPrefix 0.0.0.0/0 -NextHop 192.168.99.254 -EA SilentlyContinue | Remove-NetRoute -Confirm:$false -PassThru | New-NetRoute -DestinationPrefix 0.0.0.0/0 -NextHop 192.168.99.253
Hier soll das Gateway immer auf die 192.168.99.253 gestellt werden, was es auch tut, wenn ich die PowerShell als Admin öffne und den Befehl laufen lasse.
Die .ps1 liegt auf dem DC in einem freigegebenen Ordner.
In der Sicherheitsfilterung in der GPO habe ich alle die PCs hinzugefügt, die den Befehl erhalten sollen.
Die GPO selbst habe ich wie folg gemacht.
Computerkonfiguration => Richtlinien => Windows-Einstellungen => Skripts (Start/Herunterfahren) Im Start habe ich unter der Registerkarte PowerShell-Skripts den Pfad zum Skript angegeben.
Starte ich den PC neu passiert einfach nichts. Ich habe auch schon in der Sicherheitsfilterung einmal die Domänen-Benutzer hinzugefügt, brachte auch nichts.
Hat jemand eine Idee?
Dank und Gruß HeinrichM
PS: ist ein Server 2019 Standard mit der Rolle DC
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3484110501
Url: https://administrator.de/contentid/3484110501
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
9 Kommentare
Neuester Kommentar
Hi.
Es gibt hier mehrere Fehlerquellen.
1. Hast Du die Skript-Executionpolicy global auf remote-signed gestellt? Sonst zieht das nämlich nicht für das Systemkonto, welches hier handelt.
2. Hat die Gruppe "Authentifizierte Nutzer" ODER "Domänencomputer" Leserechte auf das Skript? Das ist nötig
3. Es funktioniert mit Startskripts nur bei echten Neustarts. Fährt man den Computer herunter und er schaltet sich aus und dann fährt man ihn wieder hoch, ist das KEIN Neustart.
Es gibt hier mehrere Fehlerquellen.
1. Hast Du die Skript-Executionpolicy global auf remote-signed gestellt? Sonst zieht das nämlich nicht für das Systemkonto, welches hier handelt.
2. Hat die Gruppe "Authentifizierte Nutzer" ODER "Domänencomputer" Leserechte auf das Skript? Das ist nötig
3. Es funktioniert mit Startskripts nur bei echten Neustarts. Fährt man den Computer herunter und er schaltet sich aus und dann fährt man ihn wieder hoch, ist das KEIN Neustart.
Zitat von @HeinrichM:
die Skript-Executionpolicy kann es fast nicht sein, da lokal ja der Befehl ausgeführt werden kann.
die Skript-Executionpolicy kann es fast nicht sein, da lokal ja der Befehl ausgeführt werden kann.
Dann lass dir doch mal lokal was hinschreiben, Logdatei zB. Dann siehst du ob das Script per se ausgeführt wird.
Wenn du den Fastboot deaktivierst, sollte das meines Wissens nach beim Starten ausgeführt werden.
VG
"die Skript-Executionpolicy kann es fast nicht sein, da lokal ja der Befehl ausgeführt werden kann." - Irrtum. Wenn DU es ausführen kannst, heißt es ja nicht, dass das Systemkonto es auch ausführen kann. Teste es also als Systemkonto mittels psexec.
1 psexec.exe aus den pstools von Microsoft laden und ablegen in c:\windows
2 cmd.exe rechtsklicken und wählen: ausführen als Administrator ->eine Shell öffnet sich, wo du fortfährst mit 3
3 psexec -si powershell
->eine Powershell öffnet sich als Systemkonto, wo du fortfährst mit 4
4 dort den Pfad des Skriptes angeben
1 psexec.exe aus den pstools von Microsoft laden und ablegen in c:\windows
2 cmd.exe rechtsklicken und wählen: ausführen als Administrator ->eine Shell öffnet sich, wo du fortfährst mit 3
3 psexec -si powershell
->eine Powershell öffnet sich als Systemkonto, wo du fortfährst mit 4
4 dort den Pfad des Skriptes angeben
zu Punkt 1. wo stelle ich das ein?
Google mal Powershell executionpolicy GPOzu Punkt 2. Ich habe es hier nicht über eine Gruppe sondern mit gezielt ausgewählten PC gemacht.
"gemacht"? Was gemacht? Ich frage konkret nach den Freigabe- und NTFS-Rechten auf der Skriptdatei selbstzu Punkt 3. Wo erkenne ich ob die GPO beim Neustart oder beim Start greifen soll? Da steht ja nur "Starten".
Die greift beim Neustart - da kann man nichts konfigurieren. Allenfalls kannst Du fast startup deaktivieren bei allen PCs, dann laufen Startskripte immer. Ich würde davon aber abraten.