nemesis
Goto Top

Microsoft DFS Namespace explizite Rechte verwaiste ACLs löschen via cmd o. Powershell

Hallo zusammen,

Ich habe ein Microsoft DFS Namespace. In dem Namespace sind auf die veröffentlichten Ordner ACLs gesetzt.

aufnahme10

Wie man in dem Screenshot sehen kann, ist hier eine "tote SID" enthalten.

Nun die Frage, wie bekomme ich diese am besten via Powershell oder CMD Command gelöscht.

Über die Befhele:

dfsutil property sd grant \\contoso.office\public\training ”CONTOSO\Domain Admins”:R CONTOSO\Trainers:R Protect Replace 

Revoke-DFSNAccess und Remove-DFSNAccess mit gelöchtem Namen bzw der SID keinen Erfolg.

Kann die Tote SID nicht finden und entsprechend löschen.
Über die GUI ist es möglich.

Jemand eine Idee.

Vielen Dank.

Mfg Nemesis

Content-Key: 2436141964

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

Printed on: April 19, 2024 at 14:04 o'clock

Mitglied: 1915348599
1915348599 Apr 07, 2022 updated at 12:20:36 (UTC)
Goto Top
Und wenn du mit Get-DFSNAccess die ACL mit where-object filterst und an das CMDLet Remove-DFSNAccess pipest?
Member: nEmEsIs
nEmEsIs Apr 07, 2022 at 12:45:01 (UTC)
Goto Top
Hi Pretty

danke für die Antwort. Leider nicht der gewünschte Erfolg, siehe die Ausgabe

aufnahme15

MfG Nemesis
Member: DerWoWusste
DerWoWusste Apr 07, 2022 at 13:51:45 (UTC)
Goto Top
Member: colinardo
colinardo Apr 07, 2022 updated at 15:24:52 (UTC)
Goto Top
Servus @nEmEsIs,
habe mal gerade nachgesehen. Die "explizit zugewiesenen Anzeige-Berechtgungen" stehen im AD aber nicht im normalen SecurityDescriptor des AD-Objektes sondern in einer separaten Eigenschaft namens msDFS-LinkSecurityDescriptorv2.

Habe dir auf die Schnelle mal was zusammengelötet was verwaiste SIDs aus der ACL eines Links in einem Namespace entfernt (hier schnell getestet auf einem Server 2022):
Import-Module ActiveDirectory
# namespace to work on
$namespace = 'MyNamespace'  
# link path
$linkpath = '/EXCH'  
# get link from namespace
Get-ChildItem "AD:CN=$namespace,CN=$namespace,CN=DFS-Configuration,CN=System,$((Get-ADDomain).DistinguishedName)" | ?{$_.ObjectClass -eq 'msDFS-Linkv2' -and (Get-ADObject $_.distinguishedName -Properties 'msDFS-LinkPathv2').'msDFS-LinkPathv2' -eq $linkpath} | %{  
    # get link object properties
    $link = Get-ADObject $_.distinguishedName -Properties 'msDFS-LinkSecurityDescriptorv2'  
    # remove access rules with abandoned accounts from access list
    $link.'msDFS-LinkSecurityDescriptorv2'.Access | ?{try{[void]$_.IdentityReference.Translate([System.Security.Principal.NTAccount])}catch{$true}} | %{[void]$link.'msDFS-LinkSecurityDescriptorv2'.RemoveAccessRule($_)}  
    # replace security descriptor in property of link
    Set-ADObject $_.DistinguishedName -Replace @{'msDFS-LinkSecurityDescriptorv2'=$link.'msDFS-LinkSecurityDescriptorv2'} -Verbose  
}
Das lässt sich natürlich auch auf alle Links ausdehnen indem man im Where-Object den Vergleich mit einem einzelnen Link-Pfad entfernt.

screenshot

screenshot

Hoffe das hilft dir weiter.

Grüße Uwe
Member: nEmEsIs
nEmEsIs Apr 07, 2022 at 15:36:35 (UTC)
Goto Top
Hallo Uwe,

Puh okay das ist ne Nummer für sich die im ADSI Edit zu entfernen.
Schade das es hierfür keinen direkten Befehl gibt.

Werd es mal in ner Umgebung austesten und Feedback geben.

Mit freundlichen Grüßen Nemesis
Member: DerWoWusste
DerWoWusste Apr 07, 2022 at 16:35:41 (UTC)
Goto Top
Warum nicht über die GUI?
Geht es um viele solcher?
Member: nEmEsIs
nEmEsIs Apr 07, 2022 at 16:49:43 (UTC)
Goto Top
Hi

Geht um Automatisierung, sprich wenn Admin die AD Gruppe löscht, aber das DFS ABE bzw ACL vergisst, soll das dann durch ein Skript gelöscht werden.

Mit freundlichen Grüßen Nemesis
Member: DerWoWusste
DerWoWusste Apr 07, 2022 at 17:28:54 (UTC)
Goto Top
Warum setzt du die Rechte eigentlich dort? Die andere Option (siehe dein Screenshot) wäre hierbei einfacher, nämlich die Rechte von der Freigabe zu übernehmen. Da würde schon ein subinacl Einzeiler genügen, um das zu berichtigen.
Member: nEmEsIs
nEmEsIs Apr 07, 2022 at 18:53:37 (UTC)
Goto Top
Hi

Naja die lokalen Rechte des Namespace Servers also auf den Domain Controllern sind das jeder alle Ordner im Namespace sieht.
Er nimmt diese ja nicht von der Freigabe des Servers das ist ein Trugschluss!
Ich will hier ja ABE haben sprich du siehst nur wozu du berechtigt bist.

Mit freundlichen Grüßen Nemesis