emeriks
Goto Top

PowerShell - ACL für AD-Objekt ändern

Hi,
ich sehe wahrscheinlich gerade den Wald vor lauter Bäumen nicht.

Ich habe von einem AD-Objekt die ACL ausgelesen. Eine der ACEs diesr ACL lautet

ActiveDirectoryRights : ReadProperty, GenericExecute
InheritanceType       : All
ObjectType            : 00000000-0000-0000-0000-000000000000
InheritedObjectType   : 00000000-0000-0000-0000-000000000000
ObjectFlags           : None
AccessControlType     : Allow
IdentityReference     : DOMAIN\GROUPNAME
IsInherited           : False
InheritanceFlags      : ContainerInherit
PropagationFlags      : None

Jetzt versuche ich, den ACL anderer AD-Objekte die gleiche ACE hinzuzufügen. Geht nicht.
(Mir ist klar, dass ich direkt die ausgelesene ACE weiterverwenden könnte. Will ich aber nicht. Weil ich das auch für "nackte" AD's anwenden will, also solchen, wo ich nicht davon ausgehen kann, dass es eine solche ACE schon gibt, welche ich auslesen könnte.)

Es scheitert schon beim Erstellen des ACE-Objekts. (ActiveDirectoryAccessRule)

$ReadProperty_GenericExecute = 131092
$Allow = 0
$All = 1
$Null_GUID = [GUID]"00000000-0000-0000-0000-000000000000"  

$Groupname = "GROUPNAME"  
$GroupSID = (Get-ADgroup $Groupname -Properties ObjectSID).ObjectSID.Value

$ACE1 = New-Object System.DirectoryServices.ActiveDirectoryAccessRule($GroupSID, $ReadProperty_GenericExecute, $Allow, $Null_GUID, $All, $Null_GUID)

Hier behauptet PS mit konstanter Bosheit, dass es keinen Konstruktor mit 6 Argumenten geben würde.
New-Object : Für "ActiveDirectoryAccessRule" und die folgende Argumenteanzahl kann keine Überladung gefunden werden: "6".  
In Zeile:3 Zeichen:9
+ $ACE1 = New-Object System.DirectoryServices.ActiveDirectoryAccessRule ...
    + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodException
    + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
 

Laut Microsoft-Doku gibt es diesen aber sehrwohl!
ActiveDirectoryAccessRule Konstruktoren

Was übersehe ich? Bäume?

E.

Content-Key: 3286379937

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

Printed on: May 11, 2024 at 01:05 o'clock

Member: emeriks
Solution emeriks Jul 08, 2022 at 07:50:10 (UTC)
Goto Top
Ach nö ...
Fehler gefunden.

Statt
$GroupSID = (Get-ADgroup $Groupname -Properties ObjectSID).ObjectSID.Value
muss es lauten
$GroupSID = (Get-ADgroup $Groupname -Properties ObjectSID).ObjectSID
Member: colinardo
colinardo Jul 08, 2022 updated at 08:15:59 (UTC)
Goto Top
Immer schön an die Types denken. Das nehmen die Konstruktoren einem gerne übel face-smile. Beim ersten sind das [System.Security.Principal.NTAccount] für AccountNamen oder [System.Security.Principal.SecurityIdentifier] für SIDs.

Grüße Uwe