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

  • 質問

  • インターネットオプションのレジストリキー値をスクリプトで設定しているのですが以下の方法ではうまく行かず困っております。

    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
    2018年1月24日 0:47

回答

  • 以下によると、REG_BINARYには2進数の整数を与えるようです。

    また、以下によると、RegWriteメソッドではREG_BINARY値はLong型の最大値までしか書き込めないようで、それを超える場合はWMIを使う必要があり、SetBinaryValueメソッドを使えば良いとのことです。
    詳しくは、
    ・Hey, Scripting Guy!「バイナリ データをレジストリに書き込む方法はありますか」(マイクロソフトTechNet)
    に載っているとのことですが、リンクが切れていましたので、以下にご紹介しておきます。

    第13回 WshShellオブジェクトを利用する
    http://www.atmarkit.co.jp/ait/articles/0711/28/news140_2.html

    Hey, Scripting Guy! : バイナリ データをレジストリに書き込む方法はありますか
    https://gallery.technet.microsoft.com/scriptcenter/0bc532df-9e02-4400-bc08-0613bdd6fc60

    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!


    • 編集済み trapemiya 2018年1月24日 1:12 整形
    • 回答としてマーク Domyoten 2018年1月24日 2:03
    2018年1月24日 1:11
  • 解決済みのようですが、

    > VBSにあまりこだわりはなく、.bat .jsで解決できるならその方がよいです。

    コマンドプロンプトから、
    > reg IMPORT [ファイル名]
    でできるようなので、そのまま、 .bat を作成すれば、良いかと。

    ファイルは、 レジストリエディタから、 Export したファイル。

    もっと簡単には、このファイルをダブルクリックする事で、(標準設定の .reg の場合)Importできます。
    # 今、設定を戻すためのファイルを自分のディスクトップに置いています。

    ご存知ないようでしたら、参考までに。


    • 編集済み pepperleaf01 2018年1月25日 14:01
    • 回答としてマーク Domyoten 2018年1月26日 2:20
    2018年1月24日 10:54
  • ちょっと気になったのですが、

    Windows Updateでレジストリ設定が初期化される場合がありますが、ご存知でしょうか?

    どの程度の頻度かは分かりませんが、インターネットオプションの場合、結構、ありそうな予感。

    個人的には、キーマップ設定が時々、戻される事があり、遭遇すると焦ります。
     (一時、多発し、その結果、reg ファイルを用意するようになりました)

    ご存知かも知れませんが、参考までに。

    • 回答としてマーク Domyoten 2018年1月29日 2:20
    2018年1月27日 11:43

すべての返信

  • 試したわけではありませんが、RegWriteのドキュメントには

    RegWrite は最大で 1 つの DWORD を REG_BINARY 値に書き込みます。DWORD より大きい値はこのメソッドではサポートされていません。

    とあります。DWORDつまり4バイトより大きいデータは扱えないかもしれません。PowerShell等、他のスクリプト言語を検討されてみてはどうでしょうか。

    2018年1月24日 1:01
  • 以下によると、REG_BINARYには2進数の整数を与えるようです。

    また、以下によると、RegWriteメソッドではREG_BINARY値はLong型の最大値までしか書き込めないようで、それを超える場合はWMIを使う必要があり、SetBinaryValueメソッドを使えば良いとのことです。
    詳しくは、
    ・Hey, Scripting Guy!「バイナリ データをレジストリに書き込む方法はありますか」(マイクロソフトTechNet)
    に載っているとのことですが、リンクが切れていましたので、以下にご紹介しておきます。

    第13回 WshShellオブジェクトを利用する
    http://www.atmarkit.co.jp/ait/articles/0711/28/news140_2.html

    Hey, Scripting Guy! : バイナリ データをレジストリに書き込む方法はありますか
    https://gallery.technet.microsoft.com/scriptcenter/0bc532df-9e02-4400-bc08-0613bdd6fc60

    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!


    • 編集済み trapemiya 2018年1月24日 1:12 整形
    • 回答としてマーク Domyoten 2018年1月24日 2:03
    2018年1月24日 1:11
  • 最下部のURLを参考にテスト用のキーを作り思い通りの結果を得ることができました。

    感謝致します!ありがとうございました!

    2018年1月24日 2:07
  • 解決済みのようですが、

    > VBSにあまりこだわりはなく、.bat .jsで解決できるならその方がよいです。

    コマンドプロンプトから、
    > reg IMPORT [ファイル名]
    でできるようなので、そのまま、 .bat を作成すれば、良いかと。

    ファイルは、 レジストリエディタから、 Export したファイル。

    もっと簡単には、このファイルをダブルクリックする事で、(標準設定の .reg の場合)Importできます。
    # 今、設定を戻すためのファイルを自分のディスクトップに置いています。

    ご存知ないようでしたら、参考までに。


    • 編集済み pepperleaf01 2018年1月25日 14:01
    • 回答としてマーク Domyoten 2018年1月26日 2:20
    2018年1月24日 10:54
  • 回答ありがとうございます。

    おっしゃる通りすべて設定した後に.batで.regのインポートするというのが最も簡単であると思います。

    まだまだ調査中でして、新規の他のPCに設定するため、OSのバージョンやbit数・メーカーによって変更できる箇所できない箇所があると見たことがあるため.regインポートではない設定方法を考えておりました。

    新規PCセットアップ後に初期状態(セットアップ後)のレジストリをバックアップしておけば、不具合が起きた際にわざわざ復元だとかせず済みそうですね!

    その後インストールされたソフトのレジストリ設定は飛びますが、初期状態になっていれば故障状態なども把握し易いので有効活用致します。



    2018年1月26日 2:37
  • ちょっと気になったのですが、

    Windows Updateでレジストリ設定が初期化される場合がありますが、ご存知でしょうか?

    どの程度の頻度かは分かりませんが、インターネットオプションの場合、結構、ありそうな予感。

    個人的には、キーマップ設定が時々、戻される事があり、遭遇すると焦ります。
     (一時、多発し、その結果、reg ファイルを用意するようになりました)

    ご存知かも知れませんが、参考までに。

    • 回答としてマーク Domyoten 2018年1月29日 2:20
    2018年1月27日 11:43
  • ご回答ありがとうございます。

    WindowsUpdateで初期化されることもあるんですね、もし問題が起きた際には疑ってみます。

    2018年1月29日 2:20