tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルレジストリ書き込みについて
記事No7406
投稿日: 2008/04/25(Fri) 15:39
投稿者やまさん
こんにちは。
少し特殊なことをしたいのですが、質問させてください。
        Dim test as string  ="testAll"
        Dim key As RegistryKey = Registry.LocalMachine
        key = key.OpenSubKey("SOFTWARE\test\test")
        key.SetValue("test", test)
        key.Close()

でtestキーの値を修正しようとしています。
修正書き込み時に、アクセス権限で書き込めないのですが
書き込む直前にアクセス権限を付与して、書き込んだ後に
戻す方法はありますか?
お願いします。

[ツリー表示へ]
タイトルRe: レジストリ書き込みについて
記事No7409
投稿日: 2008/04/26(Sat) 04:19
投稿者YuO
> 修正書き込み時に、アクセス権限で書き込めないのですが
> 書き込む直前にアクセス権限を付与して、書き込んだ後に
> 戻す方法はありますか?

ないです。
できたらセキュリティホールになります。


それをふまえた上で……
RegistryKey.GetAccessControl + RegistryKey.SetAccessControlで,
できる可能性があります。
具体的に言うと,キーの所有者である必要があります。
# 各種ヘルプ情報のみを元にしているため,実際にはできないかもしれない。

キーの所有者は暗黙にWRITE_DAC特権を持っています。
これは,アクセス権限の修正権限であり,
これを使って自分へのアクセス許可をリストの先頭に追加してしまえば,
修正ができます。

ただし……やはり,レジストリエディタのような,
そのためのソフトウェア以外はやらない方がよいとは思います。

・Microsoft.Win32.RegistryKey.GetAccessControl
http://msdn2.microsoft.com/ja-jp/library/1w66447a.aspx
・Microsoft.Win32.RegistryKey.SetAccessControl
http://msdn2.microsoft.com/ja-jp/library/microsoft.win32.registrykey.setaccesscontrol.aspx
・Owner of a New Object (Win32 SDK)
http://msdn2.microsoft.com/en-us/library/aa379299.aspx
・Standard Access Rights (Win32 SDK)
http://msdn2.microsoft.com/en-us/library/aa379607.aspx

[ツリー表示へ]