2015年1月7日水曜日

◆明示的に追加されたPermissionを表示する

明示的に追加された(継承されたものでは無いって事かな)Permissionを表示するサンプル。
この例では「C:\Windows」配下のフォルダを再帰してGridViewに表示している。
Creating NTFS Security Report - Power Tips - PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017

$Path = 'C:\windows'
Get-ChildItem -Path $Path -Recurse  -ErrorAction SilentlyContinue |
?{$_.PSIsContainer} |
ForEach-Object
 {
   
$result = $_ |
 
   
Select -Property FullName, ExplicitePermissions, Count, Preview
    $result.ExplicitePermissions =
 
        (
Get-Acl -Path $_.FullName -ErrorAction SilentlyContinue).Access |
 
       
Where-Object { $_.isInherited -eq $false
 }
   
$result.Count = $result.ExplicitePermissions.
Count
   
$result.Preview =
 
   
$result.ExplicitePermissions.IdentityReference -join ','
    if ($result.ExplicitePermissions.Count -gt 0
)
    {
       
$result | Select fullname,count,preview
    }
} 
| Out-GridView