ゆず日記

戦う Vimmer 兼 Dvorakユーザ 兼 Kinesisユーザ 兼 おぺらー が戦わないブログ

インターネットオプションの設定をエクスポートする方法等


手元の環境では正常に動作するけれども、ユーザ環境のIEでは動作しないという不具合発生。
何の設定が原因で動かないのか不明だったので、デフォルト設定と該当環境の設定を比較したかった。
 
そんな時の備忘録。

やりたいこと

  • インターネットオプションの設定をエクスポート
  • デフォルト設定と比較したりしなかったり
  • 差異がある部分の設定項目の特定

インターネットオプションの設定をエクスポート

Windowsのコマンドプロンプトから、reg コマンドでレジストリ関連のコマンドを実行することができます。
エクスポートしたい場合はそのままreg exportです。
@IT:Windows TIPS -- Tips:コマンド・プロンプトでレジストリを操作する


例:)

reg export <レジストリ・キーのパス> <出力先ファイル名>


インターネットオプションのレジストリ・キーのパスは、
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings です。

実際に実行するとこう。

reg export "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ./hoge.txt

パス文字列に半角スペースが入っている為、ダブルクォーテーションで括らないと意図通りには動作しません。
Linux感覚で \ で半角スペースをエスケープしても意図通りには動作しません。
きっと ./ もDOSでは正確では無いですが、動作するので趣味で入れました。

エクスポートするとサブキーも含まれてテキストファイルとして出力されます。
ファイルの文字コードはUTF-16、改行コードはCRLFです。



なお、

reg export "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ./hoge.reg

と、出力先の拡張子名を.regとして出力すると、ダブルクリックでレジストリに登録できる「レジストリ登録ファイル」としてエクスポートされます。
社内のPC設定を統一するなどの目的でレジストリ登録ファイルを作成し、「はいどうぞ」と配布するのもアリかも知れませんが、外部向けに配布するのはあまりオススメできません。


デフォルト設定と比較したりしなかったり

WindowsならWinMergeを使っておけば問題ないと思います。
今ある環境がMacしかないので、↓はvimdiffのスクリーンショットです。vimで展開する際、必要であれば文字コードを変換してください。
f:id:Yuzuemon:20110511000254p:image

差異がある部分の設定項目の特定

インターネットオプションの詳細設定タブの設定などは、設定名がそのまま記述されているので問題はないかと思いますが、主にセキュリティゾーン周りは

"1405"=dword:00000003

のような記述で行われています。このままでは何の設定なのかさっぱり分かりませんね。


こちらのページに各設定に対応する機能名が載っていました。
上級ユーザー向けの Internet Explorer セキュリティ ゾーン関連のレジストリ エントリ

注: 特に記述がない限り、各 DWORD 値は、0、1、または 3 です。
通常、0 の設定は特定の操作を許可し、1 の設定はダイアログ ボックスを表示し、3 の設定は特定の操作を禁止します。

と書いてある通り、dwordの値で

0 許可
1 ダイアログボックスを表示
3 禁止

を制御しているようですね。先程の"1405"=dword:00000003は何かの機能が「禁止」になっているようです。
それでは上記のリンク先に掲載されている一覧表から、該当の"1405"が何なのかを見てみましょう。





えっ、一覧表のようなものが見当たらない?
どこに載っているんだって?







ここです。
f:id:Yuzuemon:20110511000255p:image

横に長いスクロールバー。




・・・本当にやる気を削がれましたが、整形して引用しました。以下を参考にしてください。

値 設定 ----------------------------------------------------------------------------------
1001 ActiveX コントロールとプラグイン: 署名された ActiveX コントロールのダウンロード
1004 ActiveX コントロールとプラグイン:未署名の ActiveX コントロールのダウンロード
1200 ActiveX コントロールとプラグイン:ActiveX コントロールとプラグインの実行
1201 ActiveX コントロールとプラグイン:スクリプトを実行しても安全だとマークされていない ActiveX コントロールの初期化とスクリプトの実行
1206 その他:Internet Explorer WebBrowser コントロールのスクリプトの実行
1207 予約済み番号 #
1208 ActiveX コントロールとプラグイン:前回使用されなかった ActiveX コントロールを警告なしで実行するのを許可する
1209 ActiveX コントロールとプラグイン:スクリプトレットの許可
120A ActiveX コントロールとプラグイン:ActiveX コントロールとプラグイン:サイトごと (ドメインベース) の ActiveX 制限のオーバーライド
120B ActiveX コントロールとプラグイン:サイトごと (ドメインベース) の ActiveX 制限のオーバーライド
1400 スクリプトの実行:アクティブ スクリプト
1402 スクリプトの実行:Java アプレットのスクリプト
1405 ActiveX コントロールとプラグイン:スクリプトを実行しても安全だとマークされている ActiveX コントロールのスクリプトの実行
1406 その他:ドメイン間でのデータ ソースのアクセス
1407 スクリプトの実行:スクリプトによる貼り付け処理の許可
1408 予約済み #
1601 その他:暗号化されていないフォーム データの送信
1604 ダウンロード:フォント ダウンロード
1605 Java の実行 #
1606 その他:UserData の常設 ^
1607 その他:異なるドメイン間のサブフレームの移動
1608 その他:ページの自動読み込み * ^
1609 その他:混在したコンテンツを表示する *
160A その他:サーバーにファイルをアップロードするときにローカル ディレクトリーのパスを含める
1800 その他:デスクトップ項目のインストール
1802 その他:ファイルのドラッグ/ドロップ、またはコピー/貼り付け
1803 ダウンロード:ファイルのダウンロード
1804 その他:IFRAME のプログラムとファイルの起動
1805 WebView のプログラムとファイルの起動 #
1806 その他:アプリケーションと安全でないファイルの起動
1807 予約済み ** #
1808 予約済み ** #
1809 その他:ポップアップ ブロックの使用 ** ^
180A 予約済み #
180B 予約済み #
180C 予約済み #
180D 予約済み #
1A00 ユーザー認証:ログオン
1A02 コンピューターに保存されている永続的な Cookie の使用許可 #
1A03 セッションごとの Cookie の使用許可 (保存なし) #
1A04 その他:既存のクライアント証明書が 1 つ、または存在しない場合の証明書の選択 * ^
1A05 サード パーティの永続的 Cookie の使用許可 *
1A06 サード パーティのセッション Cookie の使用許可 *
1A10 プライバシーの設定 *
1C00 Java の権限 #
1E05 その他:ソフトウェア チャンネルのアクセス許可
1F00 予約済み ** #
2000 ActiveX コントロールとプラグイン:バイナリ ビヘイビアーとスクリプト ビヘイビアー
2001 .NET Framework 依存コンポーネント:Authenticode で署名したコンポーネントを実行する
2004 .NET Framework 依存コンポーネント:Authenticode で署名しないコンポーネントを実行する
2100 その他:拡張子ではなく、内容によってファイルを開く ** ^
2101 その他:より権限の少ない Web コンテンツ ゾーンの Web サイトにこのゾーンへの移動を許可 **
2102 その他:サイズや位置の制限なしにスクリプトでウィンドウを開くことを許可 ** ^
2103 スクリプトの実行:スクリプトでのステータス バーの更新を許可する ^
2104 その他:Web サイトがアドレス バーやステータス バーのないウィンドウを開くのを許可する ^
2105 スクリプトの実行:スクリプト化されたウィンドウを使って情報の入力を求めることを Web サイトに許可する ^
2200 ダウンロード:ファイルのダウンロード時に自動的にダイアログを表示 ** ^
2201 ActiveX コントロールとプラグイン:ActiveX コントロールに対して自動的にダイアログを表示 ** ^
2300 その他:Web ページが、制限されたプロトコルをアクティブ コンテンツに使用することを許可する **
2301 その他:フィッシング詐欺検出機能を使う ^
2400 .NET Framework:XAML ブラウザー アプリケーション
2401 .NET Framework:XPS ドキュメント
2402 .NET Framework:Loose XAML
2500 保護モードを有効にする [Vista のみの設定] #
2600 .NET Framework セットアップを有効にする ^

リンク先のページに注釈なども記載されているので、その他の部分はそちらをご参照してください。



まとめ

いろいろありましたが、こうして差異のある箇所を見つけ、原因と思われる箇所を推測し、
「〇〇は〇〇で、〇〇が〇〇にしてもう一度お試しくださいね!」
と出来るわけです。


最後に、Microsoftは「上級ユーザー向けの〜」とtitle付けてますが敷居を高くしているのは明らかにMicrosoftの所為じゃないかとぷんすか。


終わり。