0

PowerShell で get-acl を使用してファイルにエクスポートする 1 つのスクリプトに問題があります。私がやろうとしているのは、isinherited フラグ Flase を持つファイル サーバーからすべてのアクセス許可をエクスポートすることです。この部分は完全に機能しますが、これらのフォルダーのタイプを許可または拒否するだけです。私が必要とするのは、特定のフォルダに対する正確なアクセス許可を知ることです。そのユーザーは読み取りまたは書き込み、実行などを許可していますか。これが私が行ったことのコード全体です。

$OutFile = "C:\install\powershell\Permissions.txt"
$Header = "Folder Path,IdentityReference,AccessControlType,IsInherited,InheritanceFlags,PropagationFlags"
Del $OutFile
Add-Content -Value $Header -Path $OutFile 

$RootPath = "C:\install\powershell\"

$Folders = dir $RootPath -recurse | where {$_.psiscontainer -eq $true}

foreach ($Folder in $Folders){ 
$ACLs = get-acl $Folder.fullname | ForEach-Object { $_.Access } 
Foreach ($ACL in $ACLs){ 
if ($ACL.IsInherited -eq $false){ 
$OutInfo = $Folder.Fullname + "," + $ACL.IdentityReference + "," + $ACL.AccessControlType + "," + $ACL.IsInherited + "," + $ACL.InheritanceFlags + "," + $ACL.PropagationFlags 
Add-Content -Value $OutInfo -Path $OutFile 
}}}

私の質問は次のとおりです。$ACL を追加するにはどうすればよいですか。正確な許可レベルを取得します。それは可能ですか?ACL の解析に使用できるオブジェクトのリストを取得するs? I方法.

よろしくお願いします。

UPD: $ACL.FileSystemRights を試してみることができるようです。必要なものが得られたら、この投稿を更新します。UPD2: はい、$Header に FileSystemRights を追加し、$OutInfo に " + $ACL.FileSystemRights + " を追加する必要があったようです。しかし、これは誰かが必要なものを手に入れるのに役立つかもしれません! :)

4

1 に答える 1

0

再帰を特定のレベルに深く設定しようとしていました。解決策を見つけました: -recurse を使用する代わりに、「*」を使用してください。2 レベルの深さの場合: "**" など。ソース: http://powershell.com/cs/forums/p/11663/25754.aspx

ありがとう。

于 2015-01-13T14:18:36.533 に答える