Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Neues Skript, neues Glück. ACL Powershell Skript und ein paar Fragen.

Mitglied: thorsten-rehm

thorsten-rehm (Level 1) - Jetzt verbinden

13.05.2008, aktualisiert 18.10.2012, 17567 Aufrufe, 15 Kommentare

Ziel: Von einem bestimmten Pfad die ACL auslesen, aber nur die Ordner (inkl. Unterordner) und nicht die Dateien.

Habe mir folgendes ausgedacht:

01.
$dir = dir c:\temp -recurse -exclude *.* 
02.
get-acl $dir | format-list 
03.
 
04.
Ergebnis: 
05.
 
06.
Path   : Microsoft.PowerShell.Core\FileSystem::C:\temp\acl-test 
07.
Owner  : ZAPP\Thorsten 
08.
Group  : ZAPP\Kein 
09.
Access : Jeder Allow  ReadAndExecute, Synchronize 
10.
         VORDEFINIERT\Administratoren Allow  FullControl 
11.
         VORDEFINIERT\Benutzer Allow  Modify, Synchronize 
12.
         ZAPP\Thorsten Allow  FullControl 
13.
Audit  : 
14.
Sddl   : O:S-1-5-21-436374069-... 
15.
 
16.
Path   : Microsoft.PowerShell.Core\FileSystem::C:\temp\acl-test\Neuer Ordner 
17.
Owner  : ZAPP\Thorsten 
18.
Group  : ZAPP\Kein 
19.
Access : VORDEFINIERT\Administratoren Allow  FullControl 
20.
         VORDEFINIERT\Benutzer Allow  Modify, Synchronize 
21.
         Jeder Allow  ReadAndExecute, Synchronize 
22.
         ZAPP\Thorsten Allow  FullControl 
23.
Audit  : 
24.
Sddl   : O:S-1-5-21-436374069-... 
25.
         )

Jetzt habe ich mir überlegt, dass ich das Ganze gerne gekürzt hätte auf Path, Owner, Group und Access.
Also:

01.
$dir = dir c:\temp -recurse -exclude *.* 
02.
get-acl $dir | format-list path,owner,group,access 
03.
 
04.
Ergebnis: 
05.
 
06.
Path   : Microsoft.PowerShell.Core\FileSystem::C:\temp\acl-test 
07.
Owner  : ZAPP\Thorsten 
08.
Group  : ZAPP\Kein 
09.
Access : {System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule, Syste 
10.
         m.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule} 
11.
 
12.
Path   : Microsoft.PowerShell.Core\FileSystem::C:\temp\acl-test\Neuer Ordner 
13.
Owner  : ZAPP\Thorsten 
14.
Group  : ZAPP\Kein 
15.
Access : {System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule, Syste 
16.
         m.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule}
Die Fragen:
- Was macht er denn aus Access? Wo sind meine ganzen Benutzer?
- Kann man von Path dieses "Microsoft.PowerShell.Core\FileSystem::" ausfiltern?

Ich habe noch ein paar Gedanken zu dem "ACL" Thema, aber erstmal das hier. Die Grundkenntnisse müssen einfach sitzen ;)

Danke an alle im Voraus.
Mitglied: thorsten-rehm
14.05.2008 um 18:54 Uhr
Hat niemand eine Idee? Meine Frage zu schwer oder unverständlich ;)
Bitte warten ..
Mitglied: TuXHunt3R
15.05.2008 um 09:00 Uhr
Hab leider gerade keine PowerShell zur Verfügung, aber was passiert bei folgendem Code:
01.
$dir = get-childitem c:\temp -recurse -exclude *.* 
02.
get-acl $dir | select-object path,owner,group,access | format-list path,owner,group,access 
?
Bitte warten ..
Mitglied: thorsten-rehm
15.05.2008 um 09:28 Uhr
Leider das Gleiche.
Als würde im das Recht fehlen die ACL auszulesen, wenn man die Formatierung ändert.

Ich habe hier noch etwas gefunden, was mir aber von der Darstellung her nicht gefällt, aber vielleicht ist es der richtige Ansatz:
(die 1. Zeile des Skripts ist identisch und steht nicht dabei)
01.
get-acl $dir | select Path -Expand Access | format-list IdentityReference,AccessControlType,FileSystemRights
Bitte warten ..
Mitglied: thorsten-rehm
15.05.2008 um 22:57 Uhr
Ich habe eine Lösung gefunden:

01.
dir -recurse -exclude *.* c:\temp | get-acl | format-list path,owner,group,accesstostring 
02.
 
03.
Ergebnis: 
04.
Path           : Microsoft.PowerShell.Core\FileSystem::C:\temp\acl-test 
05.
Owner          : ZAPP\Thorsten 
06.
Group          : ZAPP\Kein 
07.
AccessToString : VORDEFINIERT\Administratoren Allow  FullControl 
08.
                 NT-AUTORITÄT\SYSTEM Allow  FullControl 
09.
                 ZAPP\Thorsten Allow  FullControl 
10.
                 ERSTELLER-BESITZER Allow  268435456 
11.
                 VORDEFINIERT\Benutzer Allow  ReadAndExecute, Synchronize 
12.
                 VORDEFINIERT\Benutzer Allow  AppendData 
13.
                 VORDEFINIERT\Benutzer Allow  CreateFiles 
14.
 
15.
Path           : Microsoft.PowerShell.Core\FileSystem::C:\temp\acl-test\Neuer Ordner 
16.
Owner          : ZAPP\Thorsten 
17.
Group          : ZAPP\Kein 
18.
AccessToString : VORDEFINIERT\Administratoren Allow  FullControl 
19.
                 NT-AUTORITÄT\SYSTEM Allow  FullControl 
20.
                 ZAPP\Thorsten Allow  FullControl 
21.
                 ERSTELLER-BESITZER Allow  268435456 
22.
                 VORDEFINIERT\Benutzer Allow  ReadAndExecute, Synchronize 
23.
                 VORDEFINIERT\Benutzer Allow  AppendData 
24.
                 VORDEFINIERT\Benutzer Allow  CreateFiles 
25.
 
Auf dieses "accesstostring" muss man erstmal kommen!

Quelle: http://www.microsoft.com/technet/scriptcenter/csc/tips/ps/acl.mspx
Bitte warten ..
Mitglied: TuXHunt3R
16.05.2008 um 13:15 Uhr
Da muss man wirklich erst mal drauf kommen.

Muss ich mir merken....
Bitte warten ..
Mitglied: thorsten-rehm
16.05.2008 um 15:24 Uhr
Jetzt würde ich gerne noch einen drauf setzen:

Das Skript soll mir die Verzeichnisse anzeigen, bei denen die Berechtigung eingetragen ist, aber nicht die Unterordner bei denen die Vererbung greift. Also mich interessiert nur der, nennen wir es mal, Knotenpunkt.
Gibt es da eine Möglichkeit? Oder so etwas wie ein Optionsschalter wie z.B. exclude "Vererbung" ...
Bitte warten ..
Mitglied: TuXHunt3R
16.05.2008 um 20:53 Uhr
Schau mal hier:

http://www.dotnetframework.de/lserver/CodeSampleDetails.aspx?c=4923

Ist zwar nicht grade das, was du willst, aber es ist beschrieben, wie man herausliest, ob die ACL für ein Objekt vererbt ist oder nicht. ($ACE.IsInherited)
Bitte warten ..
Mitglied: TuXHunt3R
16.05.2008 um 21:16 Uhr
Frage: Wenn du das Script noch erweitern willst, kannst du dann den "Gelöst"-Haken wieder rausnehmen?
Bitte warten ..
Mitglied: thorsten-rehm
16.05.2008 um 21:36 Uhr
Gute Frage. Ich habe den nämlich nicht gesetzt.
Ist jetzt wieder raus.
Bitte warten ..
Mitglied: TuXHunt3R
17.05.2008 um 00:43 Uhr
Da war wohl ein Moderator etwas übereifrig.....


Naja, kann man verstehen, viele User hier muss man explizit darauf hinweisen, dass sie den Beitrag doch bitte als "Gelöst" flagen sollen, sobald sie die Lösung haben.
Bitte warten ..
Mitglied: thorsten-rehm
17.05.2008 um 14:11 Uhr
Puuhh. Ich sitze gerade dran, dass mit $ACE.IsInherited einzubauen. Nicht leicht.
Bitte warten ..
Mitglied: TuXHunt3R
17.05.2008 um 20:11 Uhr
Tja, kann dir in diesem spezifischen Fall auch nicht weiterhelfen, hab das so auch noch nie gebraucht.
Bitte warten ..
Mitglied: thorsten-rehm
28.05.2008 um 10:44 Uhr
Wie kann ich eigentlich eine 1:1 Kopie der ACL machen?
01.
$quelle01 = "C:\temp\test1" 
02.
$ziel01 = "C:\temp\hinein" 
03.
$acl = get-acl $quelle01 
04.
copy $quelle01 -destination $ziel01 -recurse 
05.
dir $ziel01 -recurse | set-acl -aclobject $acl
Ich hätte jetzt wie oben gedacht. Funktioniert.
Er kopiert den test1 Ordner in das Verz. "hinein" und ändert aber nicht von "hinein" die Berechtigung.
Jetzt möchte ich aber eine weitere Quelle angeben. Mit dem gleichen Ziel, also das bei "hinein" die Berechtigung nicht geändert wird, aber bei den Ordnern darunter. Die sollen aber die gleiche Berechtigung wie zuvor haben.
Da komme ich jetzt etwas ins schwanken.
Unter dem Strich möchte ich von ausgewählten Ordnern (Quellen) die Berechtigung beim Kopieren mitnehmen.

Vielleicht hier noch eine andere Darstellung, um das Ganze zu verdeutlichen:

Pfad -> Berechtigung

Quelle
temp\test1 -> User1,User2
temp\test2 -> User3,User4

Ziel
hinein\test1 -> User1,User2
hinein\test2 -> User3,User4

Eigentlich eine 1:1 Kopie. Oder sollte ich da eher mit robocopy ran?
Bitte warten ..
Mitglied: thorsten-rehm
31.05.2008, aktualisiert 18.10.2012
Hat sich erledigt. Habe einen anderen Weg gefunden:
https://www.administrator.de/forum/icacls-vererbungsproblem-88679.html
Bitte warten ..
Mitglied: DavidD
07.09.2010 um 14:12 Uhr
Hallo,

mir wurde durch den Tip "AccessToString" geholfen, daher möchte ich mich revanchieren:
ich habe eine Lösung für die Anzeige nur der "Knotenpunkte":

01.
dir M:\ -recurse | Where-Object {$_.psiscontainer} | where-Object {$_.System.Security.AccessControl.InheritanceFlags -ne 'ContainerInherit'} | Get-Acl | format-list path,owner,group,accesstostring > test.txt
Grüße, David
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
PowerShell: Fileserver ACLs auslesen
gelöst Frage von itsmetimBatch & Shell2 Kommentare

Hallo zusammen, ich habe mir ein kleines Script gebaut, um ACLs von Ordnern und deren Unterordnern auszulesen. Get-ChildItem \\Pfad\Freigabe ...

Batch & Shell

PowerShell Script ACL entfernen und setzen

gelöst Frage von smackeeBatch & Shell7 Kommentare

Hallo zusammen Ich brauche eure Hilfe bei meinem PowerShell Scriptchen. Ich möchte gerne einen Ordner (C:\Test) nach meinem Wunsch ...

Batch & Shell

PowerShell: ACL-Befehle als User ausführen

Frage von playmenBatch & Shell3 Kommentare

Guten Morgen allerseits Ich habe ein PowerShell Skript geschrieben welches unter anderem die Aufgabe hat Daten aus einem Ordner ...

Batch & Shell

Frage zu Powershell

gelöst Frage von Bommi1961Batch & Shell5 Kommentare

Hallo zusammen! Ich muss ein PS Skript erstellen mit dem ich eine EXE auf einem anderen PC aufführen kann ...

Neue Wissensbeiträge
Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 1 StundeWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 1 StundeMicrosoft1 Kommentar

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 2 TagenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 2 TagenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1017 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)13 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall11 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Server-Hardware
Server für Exchange 2016, Kaufberatung
Frage von MazenauerServer-Hardware10 Kommentare

Guten Tag werte Gemeinde, Vorab: Ich dachte es gab mal einen separaten Bereich für solche Anfragen, habe ich leider ...