2017-08-09 1 views
0

継承されていないユーザーまたはグループを含むすべてのフォルダに対して結果を返すPowerShellスクリプトを作成する方法を探しています。私は継承されていないフォルダのスクリプトを実行しようとしましたが、そのうちのいくつかは継承されています...フォルダの継承を無効にせずに後で追加されたユーザー/グループを持ちます。Powershellは、上記のフォルダから継承されていないユーザーまたはグループを対象にします。

これは私が見つけたスクリプトです。このスクリプトで

DIR "\\path\abc" -directory -recurse | GET-ACL | where {$_.Access.IsInherited -eq $false}|Select-Object PSPATH |Export-Csv "c:\export.csv" -NoTypeInformation 

問題は、それがユーザ/グループフォルダ継承を読み込み、ではありません。継承のないユーザー/グループを対象とするpowershellコマンドレットとは何ですか?以下は

は、問題のフォルダの例です:

http://imgur.com/ng58DDi

答えて

0

私はあなたACLロジックが実際に正しいことだと思います。私はselect-object PSPATH...によって、データをエクスポートする前に誤ってデータを変更している可能性があると推測しています。

私が行う場合は、この:

(get-acl FolderName).Access

私はこのACLで直接設定されたすべての項目がfalseに設定されているIsInheritedの性質を持っていることをはっきりと見ることができます。

パイプラインの課題の1つは、以前のスコープのデータを持たないスコープ内にいることが多いということです。そのトリックは、パイプを深く引き下げるのではなく、いつforeachに出てくるかを知ることです。これを試してみてください:

$NonInheritedPermissions = @() 
dir -directory -recurse | % { 
    $staticACLEntry = (get-acl $_).access | where {$_.IsInherited -eq $false} 
    $NonInheritedPermissions += "Path:$($_.fullname);Identity:$(staticACLEntry.IdentityReference);FileSystemRights:$(staticACLEntry.FileSystemRights)" 
} 
$NonInheritedPermissions | export-csv some.csv 

これは、迅速かつ汚れていますが、個々のプロパティを抜け出す方法を見ることができるはずです、あなたがより良い仕事のフォーマットをしたいはずです。私は通常、このようなデータをPSオブジェクトに投げるだろうが、私は戸口に向かっている。

関連する問題