holliknolli
Goto Top

GPO wird angewandt, Login-Script darin jedoch nicht

Hallo,

folgende Situation: Windows Server 2019, Windows 10 Enterprise-Clients

Problem:

es soll ein Login-Script in Powershell ausgeführt werden, das eine "halbe 2 Faktorenauthentifizierung" einführt, indem der jeweilige User ein Mail bekommt, das ihn darüber informiert, dass eingeloggt wurde. Der Sinn: sollte jemand missbräuchlich die Logn-Daten verwenden erhält der User zumidnest ein Mail, von welchem Computer und System dies erfolgt ist.

Soweit sogut, das Script selbst wurde getestet unter der "normalen" Powershell und läuft auch ohne Fehler.

Das gleiche Skript allerdings in eine GPO verfrachtet für den User-Login unter:

Computerkofiguration -> Benutzerkonfiguration -> Richtlinien -> Windows-Einstellungen -> Script (Anmelden/Abmelden)

gelangt einfach nicht zur Ausführung, obwohl die GPO definitiv zur Anwendung gelangt.

was wurde bereits überprüft:

-> gpresult /r /scope:user -> meldet, dass die GPO angewandt wurde

-> Gruppen-Filtering -> dass betreffende User das Leserecht haben (sonst würde die GPO ja gar nicht ausgeführt)

-> es wurde sogar ein simpler Testbefehl ins Skript gegeben: md c:\TEST -> allein, um zu prüfen, ob das Script grundsätzlich läuft, wenn das Verzeichnis angelegt worden wäre, was es leider nicht tut

-> das Skript mit dem md c:\TEST unter der "normalen" Powershell ohne GPO wieder getestet: funktioniert

-> das Script liegt im NETLOGON-Ordner

Wie also kann eine GPO zwar angewandt werden, das Script allerdings in der "angewandten GPO" ohne jegliche Fehlermeldung nicht ausgeführt werden?

LG,
H.K.

Content-ID: 6639296777

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

Ausgedruckt am: 14.11.2024 um 14:11 Uhr

3063370895
3063370895 04.04.2023 aktualisiert um 15:53:29 Uhr
Goto Top
Hi,

Computerkofiguration -> Benutzerkonfiguration
wo jetzt? (wenn es ein Loginskript ist, Benutzerkonfiguration)

Siehst du was in den Eventlogs?
Entsprechender Nutzer hat Lesen/Ausführen für das Skript?
holliknolli
holliknolli 04.04.2023 um 15:56:12 Uhr
Goto Top
oh, verlesen, ja eh Benutzerkonfiguration
anmeldungsskript
3063370895
3063370895 04.04.2023 um 15:56:45 Uhr
Goto Top
ExecutionPolicy entsprechend angepasst?
Mr-Gustav
Mr-Gustav 04.04.2023 um 16:07:41 Uhr
Goto Top
Entweder die Execution Ploicy oder der Powershell Datei fehlt schlicht die Verbindung zum Mailserver bzw. ggf. hat das
Script bei der Anmeldung keine Berechtigung über den Mailserver zu versenden.

Wie "meldet" sich das Script denn am Mailserver an ?
Denke dran das GPO´s größtenteils als SYSTEM ausgeführt werden. Der User Kontext kommt wenn erst relativ spät.

Hast du eventuell mal versucht das ganze über einen Task zu lösen ? Ich würde es nämlich damit erstmal testen.
Sprich als Regel: Wenn Benutzer sich anmeldet --> DANN --> Powershell Script "NAME.PS1" ausführen.
Eventuell eine Verzögerung rein und das ganze im Userkontext ausführen lassen.
DerWoWusste
DerWoWusste 04.04.2023 um 16:11:47 Uhr
Goto Top
Anmeldeskripte werden mit 5 Minuten Verzögerung ausgeführt.
Abstellbar so: https://learn.microsoft.com/en-us/troubleshoot/windows-client/group-poli ...
DerWoWusste
DerWoWusste 04.04.2023 um 16:13:32 Uhr
Goto Top
Abgesehen davon: das soll eine Schutzwirkung haben? Der Angreifer kann die Mail doch selbst sicherlich löschen. Auch könnte er die Ausführung von Logonskripten blockieren.

Mach doch was Bessereres und führe SmartCards, virtuelle SmartCards oder Windows Hello ein.
Mr-Gustav
Mr-Gustav 04.04.2023 um 16:19:13 Uhr
Goto Top
Nun wenn die Scripte mit Verzögerung ausgeführt werden so müsste ja eigentlich im Falle des TO die Mail einfach später ankommen. Die Scripte werden doch als SYSTEM ausgeführt ?

Wenn der TO sagt es kommt nichts an außer er startet das von Hand dann würde das auf ein Zugriffsproblem hindeuten. ggf. wird im falschen Kontext ( User oder System ) gearbeitet
DerWoWusste
DerWoWusste 04.04.2023 um 16:20:09 Uhr
Goto Top
Das Logonskript wird als User ausgeführt.
holliknolli
holliknolli 04.04.2023 um 21:06:52 Uhr
Goto Top
Quote from @Mr-Gustav:

Hast du eventuell mal versucht das ganze über einen Task zu lösen ? Ich würde es nämlich damit erstmal testen.
Sprich als Regel: Wenn Benutzer sich anmeldet --> DANN --> Powershell Script "NAME.PS1" ausführen.
Eventuell eine Verzögerung rein und das ganze im Userkontext ausführen lassen.

Ne, noch nicht, hört sich aber gut an - werde das mal versuchen. kann tatsächlich sonst nur am "SYSTEM" liegen. Allerdings würde das nicht erklären, warum nicht das Test-Verzeichnis angelegt wurde. Schreibberechtigung hat ja jeder auf sein lokales System auf die C-Platte, sofern es keine System-Verzeichnisse sind.

LG
holliknolli
holliknolli 04.04.2023 um 21:08:43 Uhr
Goto Top
Quote from @DerWoWusste:

Abgesehen davon: das soll eine Schutzwirkung haben? Der Angreifer kann die Mail doch selbst sicherlich löschen. Auch könnte er die Ausführung von Logonskripten blockieren.

Mach doch was Bessereres und führe SmartCards, virtuelle SmartCards oder Windows Hello ein.

Zu viel Aufwand - geht um eine Schule, wo Schüler ihre Accounts nicht missbrauchen sollen als der jeweils andere. Wenn hier jemand ne Mail bekommt, er habe von dort und da eingeloggt, obwohl er nicht vorm PC sitzt, kann der flugs dorthin sausen und dem eine aufs Maul hauen. ;) Aber eigentlich sollen die Kids ja lernen, Passwörter geheim zu halten.

LG
3063370895
3063370895 04.04.2023 um 21:27:01 Uhr
Goto Top
Das überlesen?

Zitat von @DerWoWusste:

Anmeldeskripte werden mit 5 Minuten Verzögerung ausgeführt.
Abstellbar so: https://learn.microsoft.com/en-us/troubleshoot/windows-client/group-poli ...
holliknolli
holliknolli 04.04.2023 um 21:27:50 Uhr
Goto Top
Nur zur Info: das wäre das gestrickte Script (nur die Daten, bzw. Credentials geändert) aus diversen Infos aus dem Internet - wie gesagt läuft unter reiner Powershell, allerdings nicht in der GPO - und zwar ohne jegliche Meldung.


# Get current user and computer information
$current_user = $env:USERNAME
$computer_name = $env:COMPUTERNAME
$ip_address = Test-Connection -ComputerName $computer_name -Count 1 | Select-Object -ExpandProperty IPV4Address
$timestamp_date = Get-Date -Format "dd-MM-yyyy"  
$timestamp_time = Get-Date -Format "HH:mm:ss"  


# Set email parameters
# hier den Schul-Server eintragen
$smtp_server = "XXXXsmtp.server.comXXXX"  
$from_address = "it@meine-schule.de"  
$to_address = $current_user + "@meine-schule.de"  
$subject = "LOGIN-MELDUNG"  
$body = "S.g. User/in!<BR><BR>Wir haben<BR><BR>am: <B>$timestamp_date</B><BR>um: <B>$timestamp_time Uhr</B><BR>dem PC: <B>$computer_name</B><BR>mit IP: <B>$ip_address</B><BR><BR>ein Login erlaubt, da die Zugangsdaten (Ihre) korrekt verwendet wurden.<BR><BR><B>WAREN DAS NICHT SIE</B>, DANN BITTE <B>SOFORT</B> DAS <B>SEKRETARIAT UND / ODER</B> DIE <B>IT INFORMIEREN!</B><BR><B>DIE DATEN K&Ouml;NNTEN AUSPIONIERT UND MISSRBAUCHT WORDEN SEIN.</B><BR><BR>MfG<BR>SCHUL-IT<BR>"  

# Set credential
$username = "it@meine-schule.de"  

$password = ConvertTo-SecureString "1234567890abcdefgABCDEFG" -AsPlainText -Force  

$credential = New-Object System.Management.Automation.PSCredential($username, $password)

# Send email

Send-MailMessage -BodyAsHtml -SmtpServer $smtp_server -To $to_address -From $from_address -Subject $subject -Body $body

md c:\TEST
holliknolli
holliknolli 04.04.2023 um 21:33:12 Uhr
Goto Top
Quote from @3063370895:

Das überlesen?

Zitat von @DerWoWusste:

Anmeldeskripte werden mit 5 Minuten Verzögerung ausgeführt.
Abstellbar so: https://learn.microsoft.com/en-us/troubleshoot/windows-client/group-poli ...

Leider kam auch nach 5 Stunden noch nichts face-sad
3063370895
3063370895 04.04.2023 aktualisiert um 21:40:07 Uhr
Goto Top
md c:\TEST
ein normaler User kann doch unter c:\ keine Ordner erstellen? Versuche stattdessen mal
md "$env:userprofile\test"  

und auf den entsprechenden PCs die Einstellung "Computerkonfiguration\Administrative Vorlagen\System\Gruppenrichtlinie\Anmeldeskriptverzögerung konfigurieren" auf 0 setzen
3063370895
3063370895 04.04.2023 um 21:44:27 Uhr
Goto Top
Und stelle das
md "$env:userprofile\test"   
in die erste Zeile..