mahagon
Goto Top

Powershell: Sicherheitsgruppen der Active Directory Objekte anpassen

Guten Morgen bzw Mahlzeit face-smile

ich versuche im Augenblick Sicherheitsgruppen via Skript bei AD Objekten (z.B: Benutzer) zu verändern.

4635a44da158ce345ce3e881d1c72487

Das ganze versuche ich im Moment per Powershell nur fehlt mir absolut jeder Ansatz wo ich diese setzen kann.
Get-AdUser gibt ja leider nur folgendes zurück:


 
$adusers = Get-ADUser -Filter '*' -SearchBase "OU=WTS-Benutzer,DC=XYZ,DC=Local"  


foreach ($aduser in $adusers)
{

    $aduser | Format-List -Property *
}

DistinguishedName  : CN=user5,OU=WTS-Benutzer,DC=XYZ,DC=LOCAL
Enabled            : False
GivenName          : user5
Name               : user5
ObjectClass        : user
ObjectGUID         : 74dbab91-62e6-4ec5-8478-e5a047481e97
SamAccountName     : user5
SID                : S-1-5-21-2383739693-2358384490-3528108004-1143
Surname            : 
UserPrincipalName  : user5@XYZ.LOCAL
PropertyNames      : {DistinguishedName, Enabled, GivenName, Name...}
AddedProperties    : {}
RemovedProperties  : {}
ModifiedProperties : {}
PropertyCount      : 10

Grund ist, das wir eine Benutzergruppe erstellen wollen die bestimmte Bereiche in der AD-Verwaltung sehen kann. Quasi ein readonly Benutzer.
Manuell wäre das ganze eine ziemliche Plage.

Ich weiß, dass es keine "Standardfrage" ist, aber ich hoffe es kann mir jemand zumindest einen Ansatz zur Lösung verraten face-smile
Powershell ist kein muss

Gruß Daniel

Content-ID: 288680

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

Ausgedruckt am: 25.11.2024 um 12:11 Uhr

114757
Lösung 114757 18.11.2015 aktualisiert um 12:59:30 Uhr
Goto Top
Moin,
Get-ADObject ist dein Freund, das liefert dir die Sicherheitsinformationen der Objekte im AD. Geht aber auch über Get-ADuser aber nicht vergessen den Schalter -properties * bei Get-AdUser oder Get-ADObject anzugeben sonst werden nicht alle Eigenschaften aufgelistet !
Get-AdUser maxmuster -properties * | select -Expand nTSecurityDescriptor
Setzen von ACLs kannst du dann entweder normal über Set-ACL oder über die Methoden des System.DirectoryServices.ActiveDirectorySecurity Objekts welches dir nTSecurityDescriptor zurückliefert:
 TypeName: System.DirectoryServices.ActiveDirectorySecurity
Name                            MemberType
----                            ----------
Access                          CodeProperty
Group                           CodeProperty
Owner                           CodeProperty
Path                            CodeProperty
Sddl                            CodeProperty
AccessRuleFactory               Method
AddAccessRule                   Method
AddAuditRule                    Method
AuditRuleFactory                Method
Equals                          Method
GetAccessRules                  Method
GetAuditRules                   Method
GetGroup                        Method
GetHashCode                     Method
GetOwner                        Method
GetSecurityDescriptorBinaryForm Method
GetSecurityDescriptorSddlForm   Method
GetType                         Method
ModifyAccessRule                Method
ModifyAuditRule                 Method
PurgeAccessRules                Method
PurgeAuditRules                 Method
RemoveAccess                    Method
RemoveAccessRule                Method
RemoveAccessRuleSpecific        Method
RemoveAudit                     Method
RemoveAuditRule                 Method
RemoveAuditRuleSpecific         Method
ResetAccessRule                 Method
SetAccessRule                   Method
SetAccessRuleProtection         Method
SetAuditRule                    Method
SetAuditRuleProtection          Method
SetGroup                        Method
SetOwner                        Method
SetSecurityDescriptorBinaryForm Method
SetSecurityDescriptorSddlForm   Method
ToString                        Method
AccessRightType                 Property
AccessRuleType                  Property
AreAccessRulesCanonical         Property
AreAccessRulesProtected         Property
AreAuditRulesCanonical          Property
AreAuditRulesProtected          Property
AuditRuleType                   Property
AccessToString                  ScriptProperty
AuditToString                   ScriptProperty
https://social.technet.microsoft.com/Forums/windowsserver/en-US/df3bfd33 ...

Einfaches Beispiel:
# User-Objekt holen
$user = Get-AdUser maxmuster -properties nTSecurityDescriptor
# ACL des Objekts holen
$acl = $user.nTSecurityDescriptor
# Verweis auf hinzuzufügenden User erstellen
$account = New-Object System.Security.Principal.NTAccount("CONSTOSO\Administrator")  
# Neue Access-Rule erstellen
$rule = New-Object System.DirectoryServices.ActiveDirectoryAccessRule($account,"GenericAll","Allow")  
# Access Rule dem ACL-Objekt hinzufügen
$acl.AddAccessRule($rule)
# neue ACL dem User wieder zuweisen
Set-ACL "AD:$($user.DistinguishedName)" -AclObject $acl  
Für weitere Konstruktoren der AccessRule mit Propagation-Flags(Vererbung) siehe:
https://msdn.microsoft.com/de-de/library/System.DirectoryServices.Active ...

Gruß jodel32
Mahagon
Mahagon 18.11.2015 um 12:59:45 Uhr
Goto Top
Super, Danke damit sollte ich das hinbekommen face-smile