mitnick
Goto Top

Security Attribut ändern mit PS

Hallo zusammen, ich würde gerne das Security-Attribut Change Passwort, für User in der AD, mit PowerShell ändern. Soweit klappt das auch ganz gut, aber die Nutzer, bei denen das Attribut schon vorher gesetzt wurde, bekommen es wieder entzogen. Ich hoffe, ihr habt eine Idee. lg

Content-ID: 7691681584

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

Ausgedruckt am: 09.11.2024 um 01:11 Uhr

Pjordorf
Pjordorf 29.06.2023 um 23:36:31 Uhr
Goto Top
Hallo,

Zitat von @mitnick:
Ich hoffe, ihr habt eine Idee.
Ääähhh, nicht wirklich. Aber ich hab dich und dein Problem auch nicht wirklich Verstanden oder was du jetzt tatsächlich willst...

Gruß,
Peter
mitnick
mitnick 30.06.2023 um 07:40:35 Uhr
Goto Top
Guten Morgen, ich möchte dieses Attribut mit einem Skript setzen. Dies gelingt mir auch, nur ist danach das Attribut, bei denen es vor dem Durchlauf gesetzt war, wieder weg...und die Nutzer, die es nicht hatten, haben es...
unbenannt
6376382705
6376382705 30.06.2023 um 08:13:58 Uhr
Goto Top
Scheint als würde eine default gpo das wieder zurücksetzen?
Schau mal welche GPOs angezogen werden und was die bewirken.

Wäre jetzt so meine erste Idee.

Gruß
Kraemer
Kraemer 30.06.2023 um 08:42:06 Uhr
Goto Top
Zitat von @mitnick:

Guten Morgen, ich möchte dieses Attribut mit einem Skript setzen. Dies gelingt mir auch, nur ist danach das Attribut, bei denen es vor dem Durchlauf gesetzt war, wieder weg...und die Nutzer, die es nicht hatten, haben es...

dann zeige mal dein Skript. Da wird nen simpler Fehler drin sein.
7426148943
7426148943 30.06.2023 aktualisiert um 11:52:38 Uhr
Goto Top
Solche Rechte delegiert man ja auch nicht an einzelne User sondern effektiverweise an eine Gruppe in welchen die User Mitglied sind. Dann muss man nicht jedes mal neu Rechte delegieren sondern schmeißt die User dafür nur in die berechtigte Gruppe, feddisch.

Zum Setzen der Berechtigung reicht das Hinzufügen einer
activedirectoryaccessrule mit PS, so lange man damit keine Regel entfernt oder ein Deny setzt geschieht das Entfernen nicht von selbst.

Beispiel wie man das Kennwort zurücksetzen Recht für eine Liste von Benutzern auf eine OU delegiert:
Import-Module ActiveDirectory
# OU to delegate permissions to
$OU = "OU=MeineOU,DC=domain,DC=de"  
# get acl from ad object
$acl = Get-ACL "AD:$OU"  
# for each user in list 
foreach($user in "MaxMuster","MonaMusterfrau"){  
    # add access rule to allow the user password reset for descendant user objects in the above OU
    $acl.AddAccessRule([System.DirectoryServices.ActiveDirectoryAccessRule]::new([System.Security.Principal.NTAccount]$user,"ExtendedRight","Allow",'00299570-246d-11d0-a768-00aa006e0529',"Descendents",'bf967aba-0de6-11d0-a285-00aa003049e2'))  
}
# write back acl
Set-ACL "AD:$OU" $acl  
Das funktioniert auch bei mehrmaligen aufrufen, die Berechtigung für den User wird dann einfach überschrieben wenn sie bereits vorhanden ist.
Aber wie gesagt das einmalige Berechtigen einer Gruppe und Hinzufügen der User zu dieser Gruppe ist Best Practice.

Import-Module ActiveDirectory
# OU to delegate permissions to
$OU = "OU=MeineOU,DC=domain,DC=de"  
# Group to assign rights
$GROUP = "MeineGruppe"  
# get acl from ad object
$acl = Get-ACL "AD:$OU"  
# add group to acl if not already existing
if (!($acl.Access | ?{$_.IdentityReference.Value.split("\")[-1] -eq $GROUP -and $_.ObjectType -eq '00299570-246d-11d0-a768-00aa006e0529'})){  
    # add access rule to allow the group members password reset for descendant user objects in the above OU
    $acl.AddAccessRule([System.DirectoryServices.ActiveDirectoryAccessRule]::new([System.Security.Principal.NTAccount]$GROUP,"ExtendedRight","Allow",'00299570-246d-11d0-a768-00aa006e0529',"Descendents",'bf967aba-0de6-11d0-a285-00aa003049e2'))  
    # write back acl
    Set-ACL "AD:$OU" $acl  
}
# Add Group members
Add-ADGroupMember $GROUP -Members "User1","User2"  

Auch zu beachten gilt es den ADMINSDHolder Mechanismus

Zeppel
mitnick
mitnick 03.07.2023 um 14:18:04 Uhr
Goto Top
Vielen Dank, ich werde es dann mal testen face-smile