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