Windows 7のPowerShellでファイルのアクセス権を一括変更する
海上忍
2009-06-04 14:57:01
面倒だったWindowsの「ファイル/フォルダのアクセス権一括変更」。Windows 7のPowerShellで一括変更の方法を探る前に、Windows VistaやServer 2003 SP2で追加されたコマンドを確認しておこう。
以前からWindowsで面倒を感じていた処理の1つに「ファイル/フォルダのアクセス権一括変更」がある。Admin権限は有していてもアクセス権がないという理由で、削除不能なファイルやフォルダが生じてしまうことがあり、その始末に悩まされた覚えがある。
同じ悩みを持つユーザーが多かったのか、その後Windows Server 2003 SP2で「takeown」と「icacls」コマンドが追加された。前者はUNIXでいうところのchownに相当するコマンドで、後者はファイルのアクセス制御リスト(ACL)をCUIから制御するコマンドだ。Windows Vistaにも収録されていたので、利用経験のある向きも多いことだろう。
早い話が、この2つのコマンドを順に実行すれば(takeown /f * /r、icacls
新しく加わったPowerShellにも、ファイルのアクセス権を設定するコマンドレットが用意されている。「Set-Acl」がそれで、Get-Aclコマンドレットで雛型となるファイルのACLを取得し、Set-Aclで他のファイルに一律適用する、という流れが典型的な活用事例となる。
次回は、そのSet-Aclを利用してアクセス権を一括変更する方法を考えてみよう。
- ホワイトペーパー

