maxgans
Goto Top

NTFS Berechtigung Auslesen mit lokalen File Server Gruppen

Hey,

ich bin noch relativ neu in Powershell und habe folgendes Problem.

Ich muss via Powershell die NTFS-Berechtigungen von Ordnern auslesen. Wir haben mehrere Domänen und mehrere File Server.
Die Fileserver basieren auf Linux Ebene.

Wenn ich jetzt die Berechtigung eines Bestimmten Ordners auslesen möchte , bekomme ich nur die SID der Gruppe.
Das Konstrukt ist wie folgt aufgebaut.

File Server lokale Gruppen - diese liegen auf den Verzeichnis mit den jeweiligen Rechten
Globale Domänen Gruppen - diese sind Mitglied der lokalen File Server Gruppe ( damit User aus verschiedenen Domänen auf die selben Datein zugreifen können)

Jetzt muss ich die lokalen Gruppen austauschen - also ich möchte neue lokale Gruppen mit den selben Rechten auf die selben Verzeichnisse legen wie bisher und die alten Gruppen löschen.
Leider bekomme ich aber Ständig nur die SID der Gruppe angezeigt und kann mit dieser nicht weiter arbeiten.

Habt Ihr eine Idee ?

Content-Key: 368574

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

Printed on: April 26, 2024 at 04:04 o'clock

Member: Kraemer
Kraemer Mar 19, 2018 at 14:54:48 (UTC)
Goto Top
Moin,

die Frage, die offen bleibt ist: Wie liest du die Berechtigungen aus?

Gruß
Member: colinardo
colinardo Mar 19, 2018 updated at 15:25:32 (UTC)
Goto Top
Servus.
Zitat von @maxgans:
Wenn ich jetzt die Berechtigung eines Bestimmten Ordners auslesen möchte , bekomme ich nur die SID der Gruppe.
Wo ist das Problem? Eine SID lässt sich bei Bedarf (für dein Vorhaben aber eigentlich nicht nötig) problemlos vor und zurück "rechnen" face-smile
# Username to SID
(New-Object System.Security.Principal.NTAccount("Gruppenname")).Translate([System.Security.Principal.SecurityIdentifier]).Value  
# SID to Username
(New-Object System.Security.Principal.SecurityIdentifier("S-1-5-21-2377501304-837261869-3559950714-1001")).Translate([System.Security.Principal.NTAccount]).Value  
Jetzt muss ich die lokalen Gruppen austauschen - also ich möchte neue lokale Gruppen mit den selben Rechten auf die selben Verzeichnisse legen wie bisher und die alten Gruppen löschen.
Leider bekomme ich aber Ständig nur die SID der Gruppe angezeigt und kann mit dieser nicht weiter arbeiten.
Meine Glaskugel ist im Urlaub... Btw. für das Setzen von Berechtigungen reicht die SID völlig aus damit lässt sich eine ACL problemlos erstellen.

Zur Info, für solche Arbeiten bist du meist schneller fertig mit SetACL. Ansonsten findest du alles nötige in meinen Beiträgen.

Grüße Uwe
Member: maxgans
maxgans Mar 19, 2018 at 15:24:43 (UTC)
Goto Top
Sorry, das habe ich vergessen.

Also ich habe bisher folgende Sachen probiert:
Powershell

icalcs -
File System Security PowerShell Module 4.2.3 -
get-acl -
subinacl - zeigt mir wenigstens die "globalen Gruppen der Domäne an die Mitglied in der lokalen Fileserver Gruppe sind" aber auch nicht den Namen der Fileserver Gruppe.

Alle Programme zeigen mir nur die SID der File Server "lokalen Gruppe" an und die Gruppen aus der Domäne
Ich benötige allerdings den Namen der lokalen Gruppe auf den Fileserver

Aber ich bin gerne für ein anderes Programm offen.
Member: colinardo
colinardo Mar 19, 2018 updated at 15:26:56 (UTC)
Goto Top
Ich benötige allerdings den Namen der lokalen Gruppe auf den Fileserver
S. zur Umwandlung obige Codebeispiele.
Aber für das reine kopieren von ACLs brauchst du keine Klartextnamen, da sind SIDs sogar noch besser.
Member: maxgans
maxgans Mar 19, 2018 at 15:30:13 (UTC)
Goto Top
Auf die ID diese SID "umzurechnen" bin ich bereits gekommen. Allerdings komme ich da nicht weiter, da dies in einen Fehler läuft.
Aber was funktionieren könnte die SID´s der neuen Gruppe zu nehmen.

Allerdings müssen nicht alle Gruppen ersetzt werden, daher brauche ich nur Bestimmte Gruppen, was sich auf Grund der SID sehr schlecht filtern lässt. Somit wäre der Name der jeweiligen Gruppe nicht schlecht gewesen.

Und kein Problem, habe noch eine Glaskugel für dich... face-wink
Member: colinardo
colinardo Mar 19, 2018 updated at 15:33:53 (UTC)
Goto Top
Zitat von @maxgans:

Auf die ID diese SID "umzurechnen" bin ich bereits gekommen. Allerdings komme ich da nicht weiter, da dies in einen Fehler läuft.
Aha, sehr aufschlussreich, ich geh jetzt mal Kacken bis hier was vernünftiges kommt.

Einfach mal die Suche bemühen
500 Ordner - NTFS Berechtigungen mit wenigen Klicks ändern
Member: SlainteMhath
SlainteMhath Mar 19, 2018 at 15:46:39 (UTC)
Goto Top
Moin,

Dein Problem ist wohl das
Die Fileserver basieren auf Linux Ebene.

Die SIDs der lokalen Gruppen kennt nur der/die Fileserver selbst. Also bleibt dir nichts anders übrig als sie dort auszulesen und zusammen mit den Displaynames in eine CSV zu schreiben, damit du dir dann beim Auslesen der "gemischten" Rechte wieder in umwandeln kannst.

Wenn du Probleme mit dem Scripts hast, poste bitte deinen Code hier.

lg,
Slainte
Member: maxgans
maxgans Mar 19, 2018 at 15:49:20 (UTC)
Goto Top
Die Suche wurde bereits bemüht und über diesen Betrag bin ich bereits gestolpert, leider ohne gewünschtes Ergebnis.
Wahrscheinlich bin ich zu blöd mich ordentlich auszudrücken:

File Server - Linux
AD - Windows Server 2012
Rechner auf den die Powershell ausgeführt wird - Win10

Ich möchte jetzt von bestimmten "FileServer lokalen Gruppen" die Berechtigungen exakt auslesen und neue "Domänenlokale Gruppen" sollen mit den selben Berechtigungen auf das Verzeichnis gelegt werden. Da ich nur bestimmte Gruppen austauschen möchte, müsste ich erstmal wissen, was hinter jeder SID für ein Gruppenname steht(die Umwandlung wie oben angeben hat nicht funktioniert)
Da die Gruppen teilweise vererebt sind aber auch zwischendurch die Vererbung entfernt wurde und ein paar ebene tiefer die Gruppe wieder auf den Verzeichnis liegt, benötige ich eine exakte Kopie der Berechtigung.
Eine SID mit einer anderen SID auszutauschen, sollte nicht das Problem sein, allerdings weiß ich dann immer noch nicht, welche Gruppe das ist.

Vielleicht kannst du mir dennoch mal einen Ansatz geben oder sagst welche Informationen noch fehlen.

Vielen Dank
Member: AndreasHoster
AndreasHoster Mar 19, 2018 updated at 15:53:09 (UTC)
Goto Top
Bekommst Du bei allen lokalen Gruppen nur die SID, oder nur bei einer bestimmten?

Wenn nur bei einer, kommt das zu 99% daher, das die Gruppe nicht mehr existiert, also gelöscht wurde.
Dann kann die SID natürlich nicht mehr zu einem Namen aufgelöst werden.

Die SID Umrechnungen die schon angemerkt wurden, gehen bei lokalen Gruppen auch nur dann, wenn man es auf dem Server selber ausführt, nicht remote. Woher soll die Win10 Station auch wissen, wie andere Rechner die SIDs benennen.
Member: colinardo
colinardo Mar 19, 2018 updated at 15:54:06 (UTC)
Goto Top
Schau dir wie oben geschrieben SetACL an das wurde genau für solche Arbeiten wie du sie hier schilderst geschaffen und du bist ruck zuck fertig. Dir als Powershell-Neuling jetzt alle Feinheiten die dabei zu beachten sind beizubringen das würde ehrlich gesagt dauern wenn du nicht nur copy n' Paste machen willst.
Member: maxgans
maxgans Mar 19, 2018 at 15:52:27 (UTC)
Goto Top
Vielen Dank, sowas ähnliches habe ich mir gedacht. Kann ich den Fileserver irgendwie über die Powershell auslesen? Oder muss ich dies direkt über die Console machen ?

An sonsten werde ich eine Übersetzungstabelle anlegen.
Member: maxgans
maxgans Mar 19, 2018 at 15:54:01 (UTC)
Goto Top
Bei allen FileServer lokalen Gruppen. Bei den Domänengruppen ist dies nicht der Fall
Member: erikro
erikro Mar 19, 2018 at 16:23:50 (UTC)
Goto Top