コマンドラインでレジストリのアクセス権を設定するには、subinacl.exe を使用します。
以下でダウンロードできます(2007/05/28 現在)
https://www.microsoft.com/downloads/details.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&DisplayLang=en
インストーラとありますが、subinacl.exeは単体で動きますので、subinacl.exeを取り出せば他のマシンでも使用できます(XPで検証済み)。
使用方法は、
subinacl.exe /?にて参照。
さらに詳細は、
subinacl.exe /help /fullにて参照。
権限の追加・削除
レジストリHKEY_CURRENT_USER\Software に対し、Everyone のフルコントロール権限を与える場合。
例:
subinacl.exe /nostatistic /keyreg "HKEY_CURRENT_USER\Software" /grant=Everyone=F
レジストリHKEY_CURRENT_USER\Software に対し、Everyone の読み取り権限を拒否にする場合。
例:
subinacl.exe /nostatistic /keyreg "HKEY_CURRENT_USER\Software" /deny=Everyone=R
レジストリHKEY_CURRENT_USER\Software に対し、権限保有者(ACE) Everyone 自体を削除する場合。
例:
subinacl.exe /nostatistic /keyreg "HKEY_CURRENT_USER\Software" /revoke=Everyone
subinacl.exeについて補足
subinacl.exeは、レジストリ・サービス・プリンター・プロセス等のアクセス権を変更する特殊な場合に活用できます。
ファイル・サブフォルダ等にもできますが(何故かフォルダ単体の変更はサポートされていません)、
ファイル・フォルダのアクセス権の変更はCACLS・XCACLSに任せて、それ以外をsubinaclで行うのが良いと思います。