erikro
Goto Top

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.

# 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

Content-Key: 375347

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

Printed on: April 26, 2024 at 13:04 o'clock

Member: emeriks
emeriks May 29, 2018 updated at 06:27:23 (UTC)
Goto Top
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.
Member: SeaStorm
SeaStorm May 29, 2018 at 07:05:18 (UTC)
Goto Top
wie emeriks schon geschrieben hat ist das Anmeldescript nicht der richtige Ort dafür. Mache per GPO eine Geplante aufgabe "Beim Anmelden des Users" und führe das da aus
Member: erikro
erikro May 29, 2018 at 14:11:14 (UTC)
Goto Top
Moin,

Zitat von @emeriks:
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.

Das dachte ich auch. Aber mit dem CMD-Skript funktioniert es auch dann, wenn ich stundenlang auf dem TS angemeldet bin. Deshalb ja meine Frage.

Liebe Grüße

Erik