A PowerShell biztonsági moduljának (Microsoft.PowerShell.Security) Get-Acl cmdletje kiválóan alkalmas a fájl- vagy mappaengedélyek (azaz az Access Control List vagy ACL) lekérésére. De a hasznos információk kinyerése az alapértelmezett kimenetből némi megszokást igényel.
Ehelyett jó lenne egyszerűen megnézni, hogy mit mutat egy fájl, mappa vagy más erőforrás biztonsági lapja, de anélkül, hogy a File Explorer felhasználói felületén és több kattintáson kellene végigmenni.
1. ábra: Egy mappa biztonsági lapja a Windows Explorerben
Egysoros: Fájl- vagy mappaengedélyek lekérdezése
Itt egy egysoros, amely pontosan ezt teszi:
(get-acl <mappa neve>).access | ft IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags -auto
A kimenet:
A Get-Permissions függvény
Kívánja olvashatóbbá tenni a kimenetet? Íme egy PowerShell-funkció, amely egyéni címkéket (címeket a táblázat egyes oszlopaiban) használ.
Elmentheti PowerShell szkriptként, vagy hozzáadhatja a PowerShell profiljához, hogy mindig elérhető legyen.
123456789 |
function Get-Permissions ($folder) { (get-acl $folder).access | select `@@{Label="Identity";Expression={$_.IdentityReference}}, `@{Label="Right";Expression={$_.FileSystemRights}}, `@{Label="Access";Expression={$_.AccessControlType}}, `@{Label="Inherited";Expression={$_.IsInherited}}, `@{Label="Inheritance Flags";Expression={$_.InheritanceFlags}}, `@{Label="Propagation Flags";Expression={$_.PropagationFlags}} | ft -auto} |
Az örökléssel kapcsolatos két tulajdonságot elhagyhatja, ha nincs szüksége ezekre az információkra.
Most használhatja a Get-Permissions parancsot a mappa nevével:
Get-Permissions c:\myfolder
A kimenet:
A dir, ls vagy gci parancsok kimenetét is továbbíthatja, amelyek mind a Get-ChildItem cmdlet PowerShell aliasai.
dir <path> | % {Get-Permissions -path $_.fullname}
A fájl vagy mappa tulajdonságainak megnyitása az Explorerben
Ha nagyon szeretné látni az engedélyeket a File Explorer felhasználói felületén, akkor ezzel a funkcióval megnyithatja a fájl vagy mappa Properties > General oldalát. (Nem találtam módot a Biztonság lap közvetlen megnyitására. Ha tudod, hogyan lehet ezt megtenni, kérlek, oszd meg a hozzászólásokban.).
12345678910111213141516171819202122 |
function Get-Properties ($path) {#exit if path not foundif (-not ($path | Test-Path)) { Write-Host "$path not found. Kérjük, adjon meg egy érvényes fájl vagy mappa elérési útvonalát." -foregroundcolor red return } $o = new-object -com Shell.Application$item = get-item $path if ($item.gettype() -eq ) {write-host "Found folder $path... Getting properties"$fso = $o.Namespace("$path")$fso.self.InvokeVerb("properties") } if ($item.gettype() -eq ){write-host "Found file $path... Getting properties"$fso = $o.Namespace($item.directoryname)$file = $fso.parsename($item.pschildname)$file.InvokeVerb("properties")}}} |
Most már csak a Get-Properties <Folder of file name> segítségével gyorsan megnyithatjuk a fájl vagy mappa tulajdonságoldalát a shellből.
2. ábra: A Get-Properties funkció használata a fájl vagy mappa tulajdonságainak gyors megnyitásához a PowerShellből
File System Security PowerShell Module
Microsoft PFE Raimund Andrée nemrég publikálta a File System Security PowerShell modult. Ez néhány hasznos cmdletet ad hozzá a fájlrendszeri jogosultságok PowerShell segítségével történő kezeléséhez. Nézd meg a megfelelő blogbejegyzéseit is Weekend Scripter: PowerShell használata az NTFS-jogosultságok megszerzéséhez, hozzáadásához és eltávolításához és NTFSSecurity Tutorial 2 – Az NTFS öröklődés kezelése és a jogosultságok használata.
Tags
PowerShell Scripts Security Windows