Tiedoston tai kansion käyttöoikeuksien hakeminen PowerShellin avulla

PowerShellin Security-moduulin (Microsoft.PowerShell.Security) Get-Acl-komentokomennolla voi hakea hienosti tiedostojen tai kansioiden käyttöoikeudet (eli käytönvalvontaluettelon eli ACL:n). Hyödyllisten tietojen saaminen oletustulosteesta voi kuitenkin vaatia totuttelua.

Sen sijaan olisi hienoa, jos voisi yksinkertaisesti nähdä, mitä tiedoston, kansion tai muun resurssin Security-välilehti näyttää, mutta ilman File Explorerin käyttöliittymää ja useita napsautuksia.


Kuva 1: Kansion Security-välilehti Windows Explorerissa

Yksiluku: Hae tiedostojen tai kansioiden käyttöoikeudet

Tässä on kertakirjain, jolla voit tehdä juuri näin:

(get-acl <kansion nimi>).access | ft IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags -auto

Tulosteet:

Hanki käyttöoikeudet -funktio

Tahdotko tehdä tulosteesta luettavamman? Tässä on PowerShell-funktio, joka käyttää mukautettuja merkintöjä (otsikoita taulukon jokaisessa sarakkeessa).

Voit joko tallentaa sen PowerShell-skriptinä tai lisätä sen PowerShell-profiiliisi, jotta se on aina käytettävissä.

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}

Voit jättää kaksi periytymiseen liittyvää ominaisuutta pois, jos et tarvitse näitä tietoja.

Nyt voit käyttää Get-Permissions-komentoa kansion nimellä:

Get-Permissions c:\myfolder

Tulosteet:

Voit myös putkittaa tulosteet dir-, ls- tai gci-komennoista, jotka kaikki ovat PowerShellin aliaksia Get-ChildItem-cmdletille.

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

Toiminto tiedoston tai kansion ominaisuuksien avaamiseen Explorerissa

Jos todella haluat nähdä oikeudet File Explorerin graafisessa käyttöliittymässä, voit käyttää tätä funktiota avataksesi tiedoston tai kansion Ominaisuudet > yleissivun. (En ole löytänyt tapaa avata Suojaus-välilehteä suoraan. Jos tiedät, miten tämä onnistuu, kerro se viestin kommenteissa.).

12345678910111213141516171819202122
function Get-Properties ($path) {#exit if path not foundif (-not ($path | Test-Path)) { Write-Host "$path not found. Anna kelvollinen tiedosto- tai kansiopolku." -foregroundcolor red return } $o = new-object -com Shell.Application$item = get-item $path if ($item.gettype() -eq ) {write-host "Löytyi kansio $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")}}}

Nyt riittää, että käytät komentotulkin avulla Get-Properties <Tiedoston nimen kansiota> avataksesi tiedoston tai kansion ominaisuussivun nopeasti komentotulkista.


Kuva 2: Käytä Get-Properties-toimintoa tiedoston tai kansion ominaisuuksien nopeaan avaamiseen PowerShellistä

File System Security PowerShell Module

Microsoftin PFE Raimund Andrée julkaisi jokin aika sitten File System Security PowerShell Modulen. Se lisää muutamia hyödyllisiä cmdletteja tiedostojärjestelmän käyttöoikeuksien hallintaan PowerShellin avulla. Tutustu myös hänen vastaaviin blogikirjoituksiinsa Weekend Scripter: Use PowerShell to Get, Add, and Remove NTFS Permissions ja NTFSSecurity Tutorial 2 – Managing NTFS Inheritance and Using Privileges.

Tags
PowerShell Scripts Security Windows

Vastaa

Sähköpostiosoitettasi ei julkaista.