2016-10-10 20 views
0

私の目標は、ドライブのフォルダのユーザー権限を読み込んでファイルに保存することです。親フォルダに現在のアクセス権と同じアクセス権がない場合にACLを保存する

スクリプトは、親フォルダのアクセス許可をチェックし、現在のフォルダと比較する必要があります。権限が現在のフォルダと等しい場合は、保存しないでください。

ls -r | Where-Object { $_.mode -notmatch "a" } | %{ 
    $path = Get-Location 
    if(((Get-Location | Get-Acl).AccessToString) -ne (((Get-Item $path).parent.FullName) | Get-Acl).AccessToString){ 
     Get-Location | Get-Acl | Export-Csv -Delimiter ";" c:\ACL1.csv 
    } 
} 

残念ながら私はlsGet-Childitem)コマンドの実行過程を知らないと私はlsの「実行リスト」を扱うことができますどのように...と試してみてください。

は私の試みは、次のことをしました

Get-ChildItem -Recurse ` 
    | Where-Object{ $_.PSIsContainer -eq $true } ` 
    | ForEach-Object { 
     $currentACL = Get-Acl $_.FullName 
     $parentACL = Get-Acl ($_.FullName | Split-Path -Parent) 
     if($currentACL.AccessToString -ne $parentACL.AccessToString){ 
      $currentACL | Export-Csv -Delimiter ";" c:\ACL1.csv -Append 
     } 
    } 

これは、Cのアクセス許可を確認するディレクトリ内を忌避します:$パスは、次のことを試してみてください欠陥ノートで

+0

これがあなたの質問を助けたり、答えたりした場合は、以下の回答をご覧ください。答えがあなたの質問に答えなかったなら、理由についてのコメントを書いてください。 – Richard

答えて

0

を失敗しました自分の親フォルダ(1レベル上)に対する親フォルダ権限が一致しない場合、現在のフォルダのACLCSVファイルc:\ACL1.csvに追加されます。