heinrichm
Goto Top

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

Content-ID: 3484110501

Url: https://administrator.de/contentid/3484110501

Ausgedruckt am: 22.11.2024 um 05:11 Uhr

DerWoWusste
DerWoWusste 29.07.2022 um 11:56:24 Uhr
Goto Top
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.
HeinrichM
HeinrichM 29.07.2022 um 12:38:20 Uhr
Goto Top
Hi,
zu Punkt 1. wo stelle ich das ein?
zu Punkt 2. Ich habe es hier nicht über eine Gruppe sondern mit gezielt ausgewählten PC gemacht.
zu Punkt 3. Wo erkenne ich ob die GPO beim Neustart oder beim Start greifen soll? Da steht ja nur "Starten".
HeinrichM
HeinrichM 29.07.2022 um 12:41:19 Uhr
Goto Top
die Skript-Executionpolicy kann es fast nicht sein, da lokal ja der Befehl ausgeführt werden kann.
Tezzla
Tezzla 29.07.2022 um 12:46:24 Uhr
Goto Top
Zitat von @HeinrichM:

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
DerWoWusste
DerWoWusste 29.07.2022 um 12:47:56 Uhr
Goto Top
"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

zu Punkt 1. wo stelle ich das ein?
Google mal Powershell executionpolicy GPO
zu 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 selbst
zu 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.
HeinrichM
HeinrichM 29.07.2022 um 13:16:21 Uhr
Goto Top
Zitat von @DerWoWusste:

"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

Sack Zement!
Zugriff verweigert
In Zeile:1 Zeichen:1

back-to-top\\server\pfad\datei


Jetzt habe ich in der GPO die lokalen Skripte zugelassen. Mhhhh geht immer noch nicht.
SlainteMhath
SlainteMhath 29.07.2022 um 13:23:52 Uhr
Goto Top
Moin,

um das Problem mit der Execution Policy zu umgehen starte ich PS-Scripts per GPo immer mit "zwischengeschalteter" CMD die dann das PS1 aufruft:

powershell -noprofile -executionpolicy bypass -file \\sever\share\doit.ps1

lg,
Slainte
DerWoWusste
Lösung DerWoWusste 29.07.2022 aktualisiert um 13:25:43 Uhr
Goto Top
Du hast die Rechte für das Systemkonto nicht auf alle benötigten Pfade/Dateien gesetzt. Wie beschrieben: NTFS-Rechte/Feigaberechte für Domänencomputer zumindest lesen.
HeinrichM
HeinrichM 29.07.2022 um 13:32:51 Uhr
Goto Top
Zitat von @DerWoWusste:

Du hast die Rechte für das Systemkonto nicht auf alle benötigten Pfade/Dateien gesetzt. Wie beschrieben: NTFS-Rechte/Feigaberechte für Domänencomputer zumindest lesen.

Treffer! die entsprechenden PC hinzugefügt - läuft!

Danke und ein schönes WE!