【Script】AD/File/Reg のアクセス権リストは Get-ACL にお任せ~その1

ヒトはパンのみに生きるに非ず…とか言うようですが、わたしは PowerShell のみに生きてもよいとさえ思っています。もうたまりません。いま、可愛いヤツ ランキングをつけたら、間違いなく Windows PowerShell が1位です。2番目が 赤ちょうちん の頃の秋吉久美子。3番目に偕楽園の梅娘と写真を撮ってくれと泣いてせがんだ5歳の頃の自分です。 アクセス権の一覧を作りたいけど、うまい方法が無くて困っている方はいらっしゃいませんか?これまで、CACLSコマンドとかを使ってきて、うーんどうも…じゃVBSで作るか!と思い立ったものの、以外に難しくて断念したり…(VBSを使う方法は知っておく価値アリなので、時間のあるときに解説しようかとも思っています)。 いい方法があるんです。Windows PowerShell の Get-ACL コマンドレットです。 このコマンドレット1つで、ファイルシステムも、レジストリも、はてはActive Directory のオブジェクトに関してもアクセス権を参照することができるのです!現場のSEさんにとって、これほど便利なコマンドがいままであったでしょうか?いや無いです。 ■ファイルシステム編 まずはPowerShell のコンソールを開いてください。 以下は、C:\ に設定されているアクセス権を取得しています。 PS C:\> Get-ACL c:\ | Out-GridView 出力結果は以下の通りです。パイプ(|)を通して、Out-GridView に結果を渡しています。 うーん。見やすい…。ちなみに、おなじみCACLSコマンドを使用した結果は以下の通りです。 PS C:\> cacls C:\ | Out-GridView うむむ、いまいちですよね。やっぱり、Get-ACL の結果のほうが美しいです。 では、Get-ACLの結果を CSVファイルに保存するにはどうするかといえば、以下のようにします。ちょっと長いですが、1行で書けてしまいます。 PS C:\> Get-Acl C:\ |Select-object @{Label="Path";Expression={Convert-Path $_.Path}}, Owner, AccessToString |Export-Csv C:\tmp\accesslist.csv CSVファイルに保存するには、Export-CSV コマンドレットを使うのが簡単です。ここでは、C:\tmp\accesslist.txt…

1