rr-stefan
Goto Top

AD: Objektverwaltung zuweisen - User - employeeID

Guten Tag,
ich versuche an eine Gruppe Rechte zu delegieren um die AD Felder employeeType, employeeNumber und employeeID zu füllen.

Bisheriges Vorgehen:
- Im Kontext der OU deren Mitglieder editiert werden sollen den Assistenten "Objektverwaltung zuweisen" aufgerufen
- Gruppe, die die Berechtigungen erhalten soll ausgewählt
- Benutzerdefinierte Aufgaben zum Zuweisen erstellen ausgewählt
- Folgende Objekte im Ordner gewählt und dort "Benutzer"-Objekte selektiert
- Eigenschaften spezifisch ausgewählt
- Nun findet man die Werte employeeNumber lesen / schreiben und employeeType lesen schreiben

Hier fehlt der Wert employeeID!!!

Nach meiner bisherigen Recherche bin ich dann zur Datei C:\Windows\System32\dssec.dat gekommen.
Hier habe ich zum einen alle vorhandenen Einträge (testweise) von employeeID von 7 auf 0 gesetzt und ebenfalls im Abschnitt [USER] einen solchen Eintrag ergänzt.

Nach einem Neustart der Benutzer und Computer MMC sollte nach mehreren Anleitungen das Feld nun zur Verfügung stehen um Berechtigungen erteilen zu können.

Dies ist leider nicht der Fall.

Hat jemand noch eine Idee wie verfahren werden sollte? Vielen Dank!

Content-Key: 525132

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

Printed on: April 18, 2024 at 17:04 o'clock

Mitglied: 142232
142232 Dec 13, 2019 updated at 13:30:10 (UTC)
Goto Top
Die Liste dort ist nicht vernünftig sortiert auch wenn man das meint und die Attribute sind dort teilweise auf Deutsch übersetzt und teilweise nicht. Man muss nur ganz penibel die Liste durchgehen dann findet man die gewünschten Attribute, sonst überscrollt man das gesuchte Attribut, Microsoft typisch halt.
Member: DerWoWusste
DerWoWusste Dec 13, 2019 updated at 14:06:04 (UTC)
Goto Top
Ich würde diesen himmelschreienden Wizard zum Mond schießen, und stattdessen mit der Ldp.exe (hat auch eine GUI!) arbeiten. Mit "Add trustee" kannst Du zu berechtigende Nutzer/Gruppen eintragen und die Attribute sind dort vernüntig aufgelistet.

Veranschaulichung: Siehe Ein besserer Weg zur Delegation of Control für Bitlocker Recoverykeys
oder auch hier:
capture
Mitglied: 142232
Solution 142232 Dec 13, 2019 updated at 15:32:46 (UTC)
Goto Top
Und als Ergänzung für den Wizard, das Attribut ist dort als "Arbeitnehmerkennung lesen/schreiben" hinterlegt.

screenshot
Member: colinardo
colinardo Dec 13, 2019, updated at Dec 15, 2019 at 18:53:40 (UTC)
Goto Top
Servus.
Oder man nimmt die Powershell, oder auch die cmd mit DACLS usw.:

back-to-topDSACLS
dsacls "OU=Verwaltung,DC=domain,dc=tld" /I:S /G "DOMAIN\MaxMustermann:WPRP;employeeID;user"

back-to-topPowershell
function Delegate-ADProperty {
    param(
        [Parameter(mandatory=$true)][ValidateNotNullOrEmpty()][ValidateScript({Get-ACL "AD:$_"})][string]$ObjectDN,  
        [Parameter(mandatory=$true)][ValidateNotNullOrEmpty()][System.Security.Principal.IdentityReference]$Account,
        [Parameter(mandatory=$true)][ValidateNotNullOrEmpty()][string]$Attribute,
        [Parameter(mandatory=$true)][ValidateNotNullOrEmpty()][string]$InheritingObjects,
        [Parameter()][System.DirectoryServices.ActiveDirectorySecurityInheritance]$InheritanceType = [System.DirectoryServices.ActiveDirectorySecurityInheritance]::Descendents,
        [Parameter(mandatory=$true)][ValidateNotNullOrEmpty()][string]$AccessRights,
        [Parameter()][ValidateSet("Allow","Deny")][string]$AccessControlType = "Allow"  

    )
    # get attribute GUID
    $GUID_ATTRIBUTE = (Get-ADObject -SearchBase (Get-ADRootDSE).schemaNamingContext -Filter "ldapDisplayName -eq '$Attribute' -and objectClass -eq 'attributeSchema'" -Properties schemaIDGUID).schemaIDGUID -as [guid]  
    if ($GUID_ATTRIBUTE -eq $null){
        Write-Error -Message "Attribute '$Attribute' could not be found." -Category InvalidArgument  
        return
    }
    # get class GUID of inheriting objects
    $GUID_CLASS = (Get-ADObject -SearchBase (Get-ADRootDSE).schemaNamingContext -Filter "ldapDisplayName -eq '$InheritingObjects' -and objectClass -eq 'classSchema'" -Properties schemaIDGUID).schemaIDGUID -as [guid]  
    if ($GUID_CLASS -eq $null){
        Write-Error -Message "Inheriting Object Class Name '$InheritingObjects' could not be found." -Category InvalidArgument  
        return
    }
    
    # get acl of AD object
    $acl = Get-ACL "AD:$ObjectDN"  
    
    # create AccesRule
    $rule = New-Object System.DirectoryServices.ActiveDirectoryAccessRule ($Account,$AccessRights,$AccessControlType,$GUID_ATTRIBUTE,$inheritanceType,$GUID_CLASS) -ErrorAction Stop
    # Add rule to acl
    $acl.AddAccessRule($rule)
    # save acl to object
    Set-ACL "AD:$ObjectDN" $acl  
    return $rule
}


Delegate-ADProperty -ObjectDN 'OU=Verwaltung,DC=domain,dc=tld' -Account ([System.Security.Principal.NTAccount]"MaxMustermann") -Attribute "employeeID" -InheritingObjects 'user' -AccessRights "ReadProperty,WriteProperty" -AccessControlType Allow -InheritanceType Descendents  
Grüße Uwe
Member: RR-Stefan
RR-Stefan Dec 16, 2019 at 09:07:29 (UTC)
Goto Top
Vielen Dank für die verschiedenen Ansätze. Ich habe es in diesem Fall mit dem Hinweis auf die Benennung im Wizard gelöst.

Merci.