Powershell, anfrage zu format-table / -list, Filtermöglichkeit.

Nemac

Enthusiast
Thread Starter
Mitglied seit
03.04.2010
Beiträge
1.537
Ort
17033
Huhu ;)

Ich möchte mir NTFS Berechtigungen anzeigen lassen, und sehén, für welche Order ein bestimtmer User Rechte an.
meine Idee, war nun sowas wie:

get-acl D:\Files\* -audit |fl -Property Path,Access

Die Ausgabe ist aber "kaputt"

Code:
Path   : Microsoft.PowerShell.Core\FileSystem::D:\Files\A-0014-01_P.doc
Access : {System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule, System.Securi
         ty.AccessControl.FileSystemAccessRule}

Ohne den |FL Part funktioniert es noch:

Code:
Path   : Microsoft.PowerShell.Core\FileSystem::D:\Files\A-0014-01_P.doc
Owner  : VORDEFINIERT\Administratoren
Group  : ABC\Domain Users
Access : VORDEFINIERT\Administratoren Allow  FullControl
         NT-AUTORITÄT\SYSTEM Allow  FullControl
         NT-AUTORITÄT\Authentifizierte Benutzer Allow  Modify, Synchronize
         VORDEFINIERT\Benutzer Allow  ReadAndExecute, Synchronize
.
.

Könnte ich die Ausgabe noch weiter Filtern, um nur eine Aufstellung Pfad+1_Bestimtmer_User zu erhalten?

danke euch :)
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Hallo Nemac,

es gibt folgende Möglichkeit um die Ausgabe mittels Select-Object lesbar hinzubekommen:

Code:
PS C:\Users\xyz> Get-Acl | select @{Name='Path';Expression={$_.Path.Substring(38)}},@{Name='Access';Expression={$_.AccessToString}}

Path                                                        Access
----                                                        ------
C:\Users\xyz		                                        NT-AUTORITÄT\SYSTEM Allow  FullControl...

Damit sollte es funktionieren.

Mit der .Net-Methode Substring werden nur die Zeichen ab dem übergebenen Index angezeigt. In diesem Fall beginnt der interessante Teil des Path-Strings ab dem 38. Zeichen.
Im Falle von Access wird hier auf die Eigenschaft AccessToString zugegriffen. Normalerweise handelt es sich Bei Access um eine sog. Collection, welche mehrere Access-Objekte enthält. Auf die einzelnen Object lässt sich auch, ähnlich wie bei einem Array, indexiert zugreifen. Dies würde dann z.B. über $_.Access[0] funktionieren.

Mit Hilfe der "Select-Expressions" kann man sich einige nette Ausgaben erstellen lassen. Siehe hierzu auch: Windows PowerShell Tip: Using Calculated Properties

Gruß
mhrpcler
 
Zuletzt bearbeitet:
Danke dir ;)

Inzwischen hatten wir die Ausgabe in eine Datei gepackt und per Excel gefiltert :rofl: aber dein Tipp hilft mir, das ganze beim nächsten mal einfacher zu haben ;)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh