Jump to content

PS - Script um Ordner Ebenen u. ACL auslesen?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

kenne mich leider in PS noch nicht so gut aus. Hat evtl. jmd ein Script, dass folgendes erledigt:

 

- Ich gebe in dem Script einen Ordner im Netzwerk an (z.B. \\erver\pfad\)

- Ab diesen Ordner sollen bis zu 3 Ebenen die Ordnernamen ausgelesen und in eine Text Datei gespeichert werden

- Zusätzlich soll dann in dieser Textdatei zu dem Ordnernamen die ACL ausgelesen werden, also die Folder Permissions, nicht die Share Permissions.

 

z.B. soll es so in der TXT stehen (kein Muss):

 

\\server\folder1\          DOMAIN\Administrator
\\server\folder1\          DOMAIN\SYSTEM
\\server\folder1\          DOMAIN\Mustermann
\\server\folder1\Sub1    DOMAIN\Administrator
\\server\folder1\Sub1    DOMAIN\SYSTEM
\\server\folder1\Sub1    DOMAIN\Musterfrau

 

Habe in der MS Script Gallery leider nichts gefunden :-( Kann mir wer helfen?

 

Grüße

Link zu diesem Kommentar

Like this:

$TestPath = "\\server\share\"
$Out = "C:\Folders-ACL.txt"

$date = Get-Date 
"Berechtigungen $TestPath - Stand: $date" | Out-File $Out

function RecDirs{
$d = $Args[0]
$AktRec++
$dirs = dir $d | where {$_.PsIsContainer}
if ($AktRec -lt 3) {
  foreach($di in $dirs) {
    if ($di.Fullname -ne $null) {
      $di.Fullname | Out-File $Out -Append
      $di | Get-Acl | format-list owner,accesstostring | Out-File $Out -append
   }
   RecDirs($di.Fullname)
  }
 }
}

RecDirs($TestPath)

Link zu diesem Kommentar

Wäre z.B. dadurch möglich, statt "Format-List" nen "Select-Object" und statt "Out-File" nen "Export-CSV" zu nehmen.

Wenn ausserdém die Rekursionstiefe nicht eingeschränkt werden soll (also das "bis zur 3. Verzeichnisebene"), könnte das Ganze auch z.B. in einer Zeile abgefackelt werden ;)

 

$FilePath = "C:"
$TestPath = "\\server\share\"

dir $TestPath -recurse | where {$_.PsIsContainer} | Get-Acl | Select-Object  path,owner,accesstostring | Export-csv "$FilePath\Folder-ACL.csv"

Link zu diesem Kommentar

Nein, klappt leider auch nicht, immer wenn Namen (von Usern oder Pfade etc.) "zu lang" sind, beginnt er mit einer neuen Zeile und dann kommt in der CSV nur ****sinn raus. Habe jetzt auch mal im export-csv und out-file rumexperementiert, aber ich bekomme keine Ausgabe in eine Datei die brauchbar wäre.

 

Kann man in PS die Ausgabe in eine Datei nicht besser steuern, wie es z.B. mit VBS möglich ist? :-(

Link zu diesem Kommentar
Nein, klappt leider auch nicht, immer wenn Namen (von Usern oder Pfade etc.) "zu lang" sind, beginnt er mit einer neuen Zeile und dann kommt in der CSV nur ****sinn raus. Habe jetzt auch mal im export-csv und out-file rumexperementiert, aber ich bekomme keine Ausgabe in eine Datei die brauchbar wäre.

 

Kann man in PS die Ausgabe in eine Datei nicht besser steuern, wie es z.B. mit VBS möglich ist? :-(

 

out-file "$var1´t$var2" datei.csv

 

(Tab deswegen, da beiu Excel Tab der Default trenner ist, sonst per "Text in Spalten").

 

Was willst du genau steuern? Man kann genug bei PS steuern, was in eine Datei gschrieben werden soll.

Link zu diesem Kommentar

Wenn ich natürlich hunderte Ordner habe, möchte ich in Excel nicht noch an der Formatierung arbeiten. Sprich er generiert mir ein Textfile, wo die erste Zeile mit dem Ordnernamen gefüllt wird, dann eine Leerzeile, dann untereinander die einzelnen Berechtigungen... da kann ich in Excel schlecht nach Namen sortieren.

 

Ich möchte einfach beim Import einer Textfile (oder öffnen des CSV Files) anhand von Tabs oder Kommas oder Leerzeichen oder oder oder gleich die richtigen Spalten füllen, wie z.B.:

 

Ordnerpfad Owner Berechtigte Recht1 Recht2 Recht3 ....

 

Wie oben im ersten Post schon angegeben:

 

 

\\server\folder1\           DOMAIN\Administrators    DOMAIN\Administrator    FullAccess
\\server\folder1\           DOMAIN\Administrators    DOMAIN\SYSTEM          FullAccess
\\server\folder1\           DOMAIN\Administrators    DOMAIN\Mustermann     Read&Execute
\\server\folder1\Sub1    DOMAIN\Musterfrau         DOMAIN\Administrator    FullAccess
\\server\folder1\Sub1    DOMAIN\Musterfrau         DOMAIN\SYSTEM          FullAccess
\\server\folder1\Sub1    DOMAIN\Musterfrau         DOMAIN\Musterfrau       FullAccess

 

Also es muss nicht haargenau so aussehen, aber für eine Excel typische Formatierung sollte schon existieren, damit man filtern und ordnen kann.

Link zu diesem Kommentar

DU kannst natürlich auch das "Get-Acl" in eine Variable schreiben und dir dort dann die Infos so rausziehen, wie Du es willst.

Bsp:

foreach ($folder in $(Get-ChildItem $TestPath -recurse | where {$_.PsIsContainer})) {
 $acl=get-acl $file.FullName
$Path = $acl.Path
$Acc = $acl.AccessToString
...

Das Ergbnis in $Acc kann dann ja etspr. umgebogen werden...

Link zu diesem Kommentar
  • 8 Monate später...

Hallo !

Um diesen älteren Post nochmal aufzugreifen.

 

Hat jemand vielleicht schon ein PS Script fertig gestellt, bei dem ich eine Übergabe hätte und danach suchen könnte.

 

Also z.b -> ZeigACL <User>

 

und dann käme als Ausgabe nur die Berechtigungen auf einen ServerShare bzw. die Freigaben nur für den einen User ???!

 

Wäre klasse wenn mir da jemand helfen könnte....

 

LG

Diablo

Link zu diesem Kommentar

Hallo und Willkommen,

 

Deine Anforderung ist quasi umgedreht zu der im Thread!

Mach bitte einen eigenen Thread hierzu auf!

 

Da ACLs an Verzeichnissen hängen, ist es nicht so einfach, für einen User die ACLs auszugeben. Hierzu müssten quasi sämtliche Laufwerke, Freigaben, Verzeichnisse durchsucht werden nach dem User.

Ich persönlich hab hierzu noch kein fertiges Script...

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...