Anmeldescript oder GPO mit zu hohen Rechten?
Hallo zusammen,
ich habe ein Problem mit der Verarbeitung eines Powershell-Anmeldescripts. Das Script ist per GPO als Anmeldescript deklariert.
Das Anmeldescript enthällt einen Aufruf auf ein externes KIX-Script.
Die Verarbeitung des Scripts funktioniert tadellos. Der Benutzer meldet sich an, das Script tut was es soll... aber mit den falschen Berechtigungen.
Client: Windows 10 Pro
Das Script verbindet einen LPT-Port mit einer Printshare, ähnlich dem Net Use Befehl. Dies funktioniert erfolgreich
in Kix:
Das Anmeldescript wird aber scheinbar unter anderen Benutzerberechtigungen ODER dem Systemaccount ausgeführt.
Mein Fazit:
Das Anmeldescript wird mit erhöhten Berechtigungen einem anderen Userkontext ausgeführt. Dieser erhält die LPT-Verbindung, aber nicht der User im normalen Kontext/Berechtigung. Der Benutzer erhält keine Druckerverbindung (von LPT zu Printshare)
Als Alternative sehe ich zur Zeit nur, das Script als geplanten Task bei Anmeldung auszuführe ... (ungetestet)
Kann jemand das Problem nachvollziehen?
Kann man GPOs oder Powershellscripte in der Ausführung auf Benutzerebene herabsetzen?
Hat jemand noch eine Idee?
Gruß, TheToxic
ich habe ein Problem mit der Verarbeitung eines Powershell-Anmeldescripts. Das Script ist per GPO als Anmeldescript deklariert.
Das Anmeldescript enthällt einen Aufruf auf ein externes KIX-Script.
Die Verarbeitung des Scripts funktioniert tadellos. Der Benutzer meldet sich an, das Script tut was es soll... aber mit den falschen Berechtigungen.
Client: Windows 10 Pro
Das Script verbindet einen LPT-Port mit einer Printshare, ähnlich dem Net Use Befehl. Dies funktioniert erfolgreich
net use LPT2 \\server\printshare
use LPT2: \\server\printshare
Das Anmeldescript wird aber scheinbar unter anderen Benutzerberechtigungen ODER dem Systemaccount ausgeführt.
- Wenn ich im Script eine Auswertung zur Verbindung (net use; von LPT zur Printshare) protokolliere, so wird die Verbindung korrekt angezeigt
- Wenn ich unter dem angemeldeten User mithilfe des gleichen Befehls (net use) die Verbindung prüfe, so wird ist die Verbindung nicht hergestellt
- Wenn ich unter dem angemeldeten User das Script per Hand ausführe, so wird die Verbindung korrekt hergestellt.
Mein Fazit:
Das Anmeldescript wird mit erhöhten Berechtigungen einem anderen Userkontext ausgeführt. Dieser erhält die LPT-Verbindung, aber nicht der User im normalen Kontext/Berechtigung. Der Benutzer erhält keine Druckerverbindung (von LPT zu Printshare)
Als Alternative sehe ich zur Zeit nur, das Script als geplanten Task bei Anmeldung auszuführe ... (ungetestet)
Kann jemand das Problem nachvollziehen?
Kann man GPOs oder Powershellscripte in der Ausführung auf Benutzerebene herabsetzen?
Hat jemand noch eine Idee?
Gruß, TheToxic
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3542122385
Url: https://administrator.de/contentid/3542122385
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
11 Kommentare
Neuester Kommentar
Moin
Anmeldeskripte im Benutzerteil der GPO werden immer unter dem angemeldeten Benutzer ausgeführt. Alles andere würde ja definitiv fast immer ins Chaos führen.
Um Dein Problem einzugrenzen, fängst Du einfach an, in dem Skript die Schritte zu protokollieren. Bei deiner Annahme, es würde unter einem anderen Account ausgeführt, ermittelst Du den Benutzernamen und schreibst ihn in eine Datei. Und schon bist Du schlauer. Zumindest was diese Annahme betrifft.
Und gleichermaßen verfährst Du mit dem dann folgenden Anweisungen. Ausgabe in Datei protokollieren lassen und schon wirst Du schlauer sein.
Gruß
Zitat von @TheToxic:
Kann jemand das Problem nachvollziehen?
Kann man GPOs oder Powershellscripte in der Ausführung auf Benutzerebene herabsetzen?
Hat jemand noch eine Idee?
Kann jemand das Problem nachvollziehen?
Kann man GPOs oder Powershellscripte in der Ausführung auf Benutzerebene herabsetzen?
Hat jemand noch eine Idee?
Anmeldeskripte im Benutzerteil der GPO werden immer unter dem angemeldeten Benutzer ausgeführt. Alles andere würde ja definitiv fast immer ins Chaos führen.
Um Dein Problem einzugrenzen, fängst Du einfach an, in dem Skript die Schritte zu protokollieren. Bei deiner Annahme, es würde unter einem anderen Account ausgeführt, ermittelst Du den Benutzernamen und schreibst ihn in eine Datei. Und schon bist Du schlauer. Zumindest was diese Annahme betrifft.
Und gleichermaßen verfährst Du mit dem dann folgenden Anweisungen. Ausgabe in Datei protokollieren lassen und schon wirst Du schlauer sein.
Gruß
Moin,
So ist es, was mich zu der Frage führt: Ist es wirklich ein Anmeldeskript oder vielleicht doch ein Start-Skript?
Liebe Grüße
Erik
Zitat von @Hubert.N:
Anmeldeskripte im Benutzerteil der GPO werden immer unter dem angemeldeten Benutzer ausgeführt. Alles andere würde ja definitiv fast immer ins Chaos führen.
Anmeldeskripte im Benutzerteil der GPO werden immer unter dem angemeldeten Benutzer ausgeführt. Alles andere würde ja definitiv fast immer ins Chaos führen.
So ist es, was mich zu der Frage führt: Ist es wirklich ein Anmeldeskript oder vielleicht doch ein Start-Skript?
Liebe Grüße
Erik
... wobei die Frage bleibt, was die tatsächlichen Anweisungen als Ausgabe haben.
und nein. Es ist per default nicht möglich, ein Anmeldeskript als Benutzer mit erhöhten Rechten zu starten. Wenn man das will, muss man dafür extra in die Trickkiste greifen.
Ich tippe eher auf etwas ganz banales, wie "ich verwende eine Variable, die zu dem Zeitpunkt nicht zur Verfügung steht" o.ä. Das sollte aber eine Protokollierung der Befehle zeigen.
Du kannst auch mal versuchen, das Skript in der GPO unter Benutzer\Administrative Vorlagen\System\Anmelden\Diese Programme bei... zu definieren. Dann wird die Ausführung etwas später gestartet.
Oder unter Computer\Administrative Vorlagen\System\Gruppenrichtlinie\Anmeldeskriptverzögerung konfigurieren die Verzögerung global einstellen.
Ist bei dir konfiguriert, dass bei der Anmeldung auf das Netzwerk gewartet wird? Vlt. ist sonst es ja auch so unglaublich einfach, dass Du Befehle zum Verbinden einer Netzwerkressource ausführst, diese aber zu dem Zeitpunkt noch nicht zur Verfügung steht, weil das Netzwerk noch nicht zur Verfügung steht.
Womit ich aber wieder bei mir selbst bin denn ich schrieb:
All diese Dinge würdest Du sehen, wenn Du die Ausgaben Deiner Befehle in eine Datei schreiben würdest...
Gruß
und nein. Es ist per default nicht möglich, ein Anmeldeskript als Benutzer mit erhöhten Rechten zu starten. Wenn man das will, muss man dafür extra in die Trickkiste greifen.
Ich tippe eher auf etwas ganz banales, wie "ich verwende eine Variable, die zu dem Zeitpunkt nicht zur Verfügung steht" o.ä. Das sollte aber eine Protokollierung der Befehle zeigen.
Du kannst auch mal versuchen, das Skript in der GPO unter Benutzer\Administrative Vorlagen\System\Anmelden\Diese Programme bei... zu definieren. Dann wird die Ausführung etwas später gestartet.
Oder unter Computer\Administrative Vorlagen\System\Gruppenrichtlinie\Anmeldeskriptverzögerung konfigurieren die Verzögerung global einstellen.
Ist bei dir konfiguriert, dass bei der Anmeldung auf das Netzwerk gewartet wird? Vlt. ist sonst es ja auch so unglaublich einfach, dass Du Befehle zum Verbinden einer Netzwerkressource ausführst, diese aber zu dem Zeitpunkt noch nicht zur Verfügung steht, weil das Netzwerk noch nicht zur Verfügung steht.
Womit ich aber wieder bei mir selbst bin denn ich schrieb:
Zitat von @Hubert.N:
Um Dein Problem einzugrenzen, fängst Du einfach an, in dem Skript die Schritte zu protokollieren. (...)
Und gleichermaßen verfährst Du mit dem dann folgenden Anweisungen. Ausgabe in Datei protokollieren lassen und schon wirst Du schlauer sein.
Um Dein Problem einzugrenzen, fängst Du einfach an, in dem Skript die Schritte zu protokollieren. (...)
Und gleichermaßen verfährst Du mit dem dann folgenden Anweisungen. Ausgabe in Datei protokollieren lassen und schon wirst Du schlauer sein.
All diese Dinge würdest Du sehen, wenn Du die Ausgaben Deiner Befehle in eine Datei schreiben würdest...
Gruß
Ich glaube ich habe mit dem Problem wie im Bild zu sehen ist zu kämpfen.
nun sind wir also von einer Druckerverbindung zu einem Laufwerk gekommen?!
Noch mal:
- teste es erst einmal als Benutzer manuell
- schreibe in das Skript am Ende des Befehls ein >> <lokaler Speicherort mit Zugriff für alle>\logon.txt
- schaue in die logon.txt, was da steht.
o.k. ... Skript wird also erfolgreich ausgeführt.
Wenn das so ist und (also z.B. mit der Verbindung des Netzlaufwerkes) im Protokoll dann steht, dass der Vorgang erfolgreich war und Anmeldeskripte immer im Kontext des Benutzer ohne erhöhte Rechte ausgeführt werden (das ist so "by Design"), dann bleibt für mich nur als logische Erklärung, dass Du anschließend den Explorer oder was auch immer in einem andern Kontext startest.
Wenn das so ist und (also z.B. mit der Verbindung des Netzlaufwerkes) im Protokoll dann steht, dass der Vorgang erfolgreich war und Anmeldeskripte immer im Kontext des Benutzer ohne erhöhte Rechte ausgeführt werden (das ist so "by Design"), dann bleibt für mich nur als logische Erklärung, dass Du anschließend den Explorer oder was auch immer in einem andern Kontext startest.