Získání oprávnění k souborům nebo složkám pomocí prostředí PowerShell

Kurzívu Get-Acl v modulu Zabezpečení prostředí PowerShell (Microsoft.PowerShell.Security) lze skvěle použít k získání oprávnění k souborům nebo složkám (neboli seznamu řízení přístupu neboli ACL). Na získání užitečných informací z výchozího výstupu je však třeba si zvyknout.

Bylo by skvělé mít možnost jednoduše zjistit, co zobrazuje karta Zabezpečení souboru, složky nebo jiného prostředku, ale bez nutnosti procházet uživatelským rozhraním Průzkumníka souborů a několikanásobného klikání.


Obrázek 1: Karta Zabezpečení složky v Průzkumníku Windows

Jednoduché: Získat oprávnění k souboru nebo složce

Přesně k tomu slouží tento jednořádkový příkaz:

(get-acl <název složky>).access | ft IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags -auto

Výstup:

Funkce Get-Permissions

Chcete, aby byl výstup čitelnější? Zde je funkce PowerShell, která používá vlastní popisky (nadpisy v jednotlivých sloupcích tabulky).

Můžete ji uložit jako skript prostředí PowerShell nebo ji přidat do svého profilu prostředí PowerShell, aby byla vždy k dispozici.

123456789
 funkce Get-Permissions ($folder) { (get-acl $folder).access | select `@{Label="Identita";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}

Dvě vlastnosti související s dědičností můžete vynechat, pokud tyto informace nepotřebujete.

Nyní můžete použít příkaz Get-Permissions s názvem složky:

Get-Permissions c:\myfolder

Výstup:

Můžete také propojit výstup z příkazů dir, ls nebo gci, což jsou aliasy prostředí PowerShell pro rutinu Get-ChildItem.

dir <cesta> | % {Get-Permissions -path $_.fullname}

Funkce pro otevření souboru nebo složky Vlastnosti v Průzkumníku

Pokud opravdu rádi vidíte oprávnění v grafickém rozhraní Průzkumníka souborů, můžete pomocí této funkce otevřít stránku Vlastnosti > Obecné souboru nebo složky. (Nenašel jsem způsob, jak přímo otevřít kartu Zabezpečení. Pokud víte, jak to udělat, podělte se o to v komentářích k příspěvku).

12345678910111213141516171819202122
funkce Get-Properties ($path) {#exit if path not foundif (-not ($path | Test-Path)) { Write-Host "$path not found. Zadejte prosím platnou cestu k souboru nebo složce." -foregroundcolor red return } $o = new-object -com Shell.Application$item = get-item $path if ($item.gettype() -eq ) {write-host "Found folder $path.... Získání vlastností"$fso = $o.Namespace("$path")$fso.self.InvokeVerb("properties") } if ($item.gettype() -eq ){write-host "Nalezen soubor $path.... Získání vlastností"$fso = $o.Namespace($item.directoryname)$file = $fso.parsename($item.pschildname)$file.InvokeVerb("properties")}}

Nyní stačí použít Get-Properties <Složka názvu souboru> pro rychlé otevření stránky vlastností souboru nebo složky z prostředí shellu.


Obrázek 2: Použití funkce Get-Properties k rychlému otevření stránky vlastností souboru nebo složky z prostředí PowerShell

Modul PowerShell pro zabezpečení souborového systému

Microsoft PFE Raimund Andrée před časem zveřejnil modul PowerShell pro zabezpečení souborového systému. Přidává několik užitečných rutin pro správu oprávnění souborového systému pomocí prostředí PowerShell. Podívejte se také na jeho odpovídající příspěvky na blogu Weekend Scripter: Pomocí prostředí PowerShell získáte, přidáte a odeberete oprávnění systému NTFS a NTFSSecurity Tutorial 2 – Správa dědičnosti systému NTFS a používání oprávnění.

Tags
Skripty prostředí PowerShell Zabezpečení Windows

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.