トップ回答者
インターネットオプションのレジストリキー値をVBSで設定する方法

質問
-
インターネットオプションのレジストリキー値をスクリプトで設定しているのですが以下の方法ではうまく行かず困っております。
OS:windows7Pro 64bit
具体的な場所は
インターネットオプション > プライバシー タブ > 詳細設定
・自動Cookie処理を上書きする
・常にセッションCookieを許可する
※他はデフォルト(承諾する)
上記2つのチェックを入れた状態のレジストリ値はわかっているのですが、型が”REG_BINARY”のため設定する値の書き方が間違っていると思います。
VBSにあまりこだわりはなく、.bat .jsで解決できるならその方がよいです。
部分的な抜き出しですが、ソースコードはこちらです。
VBS
objShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\{AEBA21FA-782A-4A90-978D-B72164C80120}",1A 37 61 59 23 52 35 0C 7A 5F 20 17 2F 1E 1A 19 0E 2B 01 73 13 37 13 12 14 1A 15 2A 4E 2C 08 0D 20 1B 28 18 36 32,"REG_BINARY"
何卒よろしくお願いいたします。
- 編集済み Domyoten 2018年1月24日 0:52
回答
-
以下によると、REG_BINARYには2進数の整数を与えるようです。
RegWrite メソッド
https://msdn.microsoft.com/ja-jp/library/cc364417.aspxまた、以下によると、RegWriteメソッドではREG_BINARY値はLong型の最大値までしか書き込めないようで、それを超える場合はWMIを使う必要があり、SetBinaryValueメソッドを使えば良いとのことです。
詳しくは、
・Hey, Scripting Guy!「バイナリ データをレジストリに書き込む方法はありますか」(マイクロソフトTechNet)
に載っているとのことですが、リンクが切れていましたので、以下にご紹介しておきます。
Hey, Scripting Guy! : バイナリ データをレジストリに書き込む方法はありますか
https://gallery.technet.microsoft.com/scriptcenter/0bc532df-9e02-4400-bc08-0613bdd6fc60
★良い回答には質問者は回答済みマークを、閲覧者は投票を!
-
解決済みのようですが、
> VBSにあまりこだわりはなく、.bat .jsで解決できるならその方がよいです。
コマンドプロンプトから、
> reg IMPORT [ファイル名]
でできるようなので、そのまま、 .bat を作成すれば、良いかと。ファイルは、 レジストリエディタから、 Export したファイル。
もっと簡単には、このファイルをダブルクリックする事で、(標準設定の .reg の場合)Importできます。
# 今、設定を戻すためのファイルを自分のディスクトップに置いています。ご存知ないようでしたら、参考までに。
- 編集済み pepperleaf01 2018年1月25日 14:01
- 回答としてマーク Domyoten 2018年1月26日 2:20
すべての返信
-
試したわけではありませんが、RegWriteのドキュメントには
RegWrite は最大で 1 つの DWORD を REG_BINARY 値に書き込みます。DWORD より大きい値はこのメソッドではサポートされていません。
とあります。DWORDつまり4バイトより大きいデータは扱えないかもしれません。PowerShell等、他のスクリプト言語を検討されてみてはどうでしょうか。
-
以下によると、REG_BINARYには2進数の整数を与えるようです。
RegWrite メソッド
https://msdn.microsoft.com/ja-jp/library/cc364417.aspxまた、以下によると、RegWriteメソッドではREG_BINARY値はLong型の最大値までしか書き込めないようで、それを超える場合はWMIを使う必要があり、SetBinaryValueメソッドを使えば良いとのことです。
詳しくは、
・Hey, Scripting Guy!「バイナリ データをレジストリに書き込む方法はありますか」(マイクロソフトTechNet)
に載っているとのことですが、リンクが切れていましたので、以下にご紹介しておきます。
Hey, Scripting Guy! : バイナリ データをレジストリに書き込む方法はありますか
https://gallery.technet.microsoft.com/scriptcenter/0bc532df-9e02-4400-bc08-0613bdd6fc60
★良い回答には質問者は回答済みマークを、閲覧者は投票を!
-
解決済みのようですが、
> VBSにあまりこだわりはなく、.bat .jsで解決できるならその方がよいです。
コマンドプロンプトから、
> reg IMPORT [ファイル名]
でできるようなので、そのまま、 .bat を作成すれば、良いかと。ファイルは、 レジストリエディタから、 Export したファイル。
もっと簡単には、このファイルをダブルクリックする事で、(標準設定の .reg の場合)Importできます。
# 今、設定を戻すためのファイルを自分のディスクトップに置いています。ご存知ないようでしたら、参考までに。
- 編集済み pepperleaf01 2018年1月25日 14:01
- 回答としてマーク Domyoten 2018年1月26日 2:20
-
回答ありがとうございます。
おっしゃる通りすべて設定した後に.batで.regのインポートするというのが最も簡単であると思います。
まだまだ調査中でして、新規の他のPCに設定するため、OSのバージョンやbit数・メーカーによって変更できる箇所できない箇所があると見たことがあるため.regインポートではない設定方法を考えておりました。
新規PCセットアップ後に初期状態(セットアップ後)のレジストリをバックアップしておけば、不具合が起きた際にわざわざ復元だとかせず済みそうですね!
その後インストールされたソフトのレジストリ設定は飛びますが、初期状態になっていれば故障状態なども把握し易いので有効活用致します。