Seltsames Verhalten eines PS-Anmeldeskripts
Moin,
ich habe die Frage hier rein gestellt, weil es kein Skript, sondern ein GPO-Problem ist.
für eine Gruppe User, die einfach den Unterschied zwischen Terminalsserver und lokalem Client nicht verstehen und die nur auf dem TS arbeiten sollen, habe ich ein Skript geschrieben, das ihnen den TS beim anmelden durchstartet und beim Abmelden vom TS auf dem Client ein Dialog aufruft, das sie auffordert, sich entweder abzumelden oder den Rechner herunterzufahren. Das Skript selbst ist kein Problem. Es tut, was es soll. Ich poste deshalb nur die ersten Zeilen, die das "Problem" verursachen.
Starte ich das Skript von der PS-Konsole, läuft es wie Schmitz Katze. Trage ich es in den Gruppenrichtlinien (Benutzerkonfiguration -> Richtlinien -> Windows-Einstellungen -> Skripts) als Anmeldeskript in der Abteilung "PowerShell-Skripts" ein, dann wird zwar der TS gestartet, die Maske nach Beenden aber nicht. Dann habe ich eine Batch geschrieben mit:
und das in die Abteilung "Skripts" eingefügt. Und siehe da, es läuft. Ich würde gerne verstehen, warum das so ist. Hat jemand eine Erklärung?
Liebe Grüße
Erik
ich habe die Frage hier rein gestellt, weil es kein Skript, sondern ein GPO-Problem ist.
für eine Gruppe User, die einfach den Unterschied zwischen Terminalsserver und lokalem Client nicht verstehen und die nur auf dem TS arbeiten sollen, habe ich ein Skript geschrieben, das ihnen den TS beim anmelden durchstartet und beim Abmelden vom TS auf dem Client ein Dialog aufruft, das sie auffordert, sich entweder abzumelden oder den Rechner herunterzufahren. Das Skript selbst ist kein Problem. Es tut, was es soll. Ich poste deshalb nur die ersten Zeilen, die das "Problem" verursachen.
# TS starten
$p = [Diagnostics.Process]::Start("\\meineDomain.local\path\file.rdp")
$p.WaitForExit()
# Maske für Abmelden, Herunterfahren
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
...
Starte ich das Skript von der PS-Konsole, läuft es wie Schmitz Katze. Trage ich es in den Gruppenrichtlinien (Benutzerkonfiguration -> Richtlinien -> Windows-Einstellungen -> Skripts) als Anmeldeskript in der Abteilung "PowerShell-Skripts" ein, dann wird zwar der TS gestartet, die Maske nach Beenden aber nicht. Dann habe ich eine Batch geschrieben mit:
powershell.exe -executionpolicy bypass -file "\\meineDomain.local\NETLOGON\ts_logon_logoff.ps1"
und das in die Abteilung "Skripts" eingefügt. Und siehe da, es läuft. Ich würde gerne verstehen, warum das so ist. Hat jemand eine Erklärung?
Liebe Grüße
Erik
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 375347
Url: https://administrator.de/forum/seltsames-verhalten-eines-ps-anmeldeskripts-375347.html
Ausgedruckt am: 26.03.2025 um 11:03 Uhr
3 Kommentare
Neuester Kommentar
Hi,,
mal am Rande: Wenn Du vernünftige Antworten/Tipps erwartest, dann solltest Du auch vernünftig formulieren. Und damit meine ich jetzt noch nicht mal Rechtschreibung/Grammatik.
"das ihnen den TS beim anmelden durchstartet" -- Du startest nicht den TS durch.
"und das in die Abteilung "Skripts" eingefügt." - Und Du fügst nicht in eine Abteilung ein.
Anmeldescripts haben das "Problem", dass sie nach einer max. Zeit (ich glaube 10 min.) abgebrochen werden. Wenn Du also die RDP-Sitzung startest, und diese läuft länger als diese Spanne, dann wird das Script im Hintergrund abgebrochen und es ist klar, dass dann alles Weitere im Code nicht mehr kommt. Du musst da also auch bei Deinen Test aufpassen, dass Du Dich nicht selbst austrickst, wenn Du Dich nach nur kurzer Zeit schon wieder abmeldests.
E.
mal am Rande: Wenn Du vernünftige Antworten/Tipps erwartest, dann solltest Du auch vernünftig formulieren. Und damit meine ich jetzt noch nicht mal Rechtschreibung/Grammatik.
"das ihnen den TS beim anmelden durchstartet" -- Du startest nicht den TS durch.
"und das in die Abteilung "Skripts" eingefügt." - Und Du fügst nicht in eine Abteilung ein.
Anmeldescripts haben das "Problem", dass sie nach einer max. Zeit (ich glaube 10 min.) abgebrochen werden. Wenn Du also die RDP-Sitzung startest, und diese läuft länger als diese Spanne, dann wird das Script im Hintergrund abgebrochen und es ist klar, dass dann alles Weitere im Code nicht mehr kommt. Du musst da also auch bei Deinen Test aufpassen, dass Du Dich nicht selbst austrickst, wenn Du Dich nach nur kurzer Zeit schon wieder abmeldests.
E.