【コラム】

Windows XPスマートチューニング

127 UNCパスのチェック機能を無効にする

    阿久津良和  [2004/07/15]

    こんにちは、阿久津です。Microsoftが毎月発表しているセキュリティ情報で、今月は緊急2件、重要4件、警告1件と計7件が公開されました

    MS04-18からMS04-24までのなかでもWindows XPが関係するのは、「MS04-022 タスクスケジューラの脆弱性により、コードが実行される(841873)」「MS04-023 HTMLヘルプの脆弱性により、コードが実行される(840315)」「MS04-024 Windowsシェルの脆弱性により、リモートでコードが実行される(839645)」の3つ。

    これらのセキュリティホールは、Windows Update経由で各種修正プログラムを導入できますが、Windows XP Service Pack 2 RC2を導入したPCに適用しようとすると、「このシステムの Service Pack が、適用しようとしている更新より新しいバージョンであることが検出されました。」というメッセージが表示されてしまいます。

    この修正プログラムで導入される「shell32.dll」ですが、Windows XP Service Pack 2 RC2を導入したPCでのバージョンは「6.0.2900.2149」。一方、今回公開された修正プログラムを導入したService Pack 1適用済みPCでのバージョンは「6.0.2800.1556」。

    本来Service Pack 2は今回のようなHotfix(修正プログラム)をまとめて収録する目的で開発されていますので、来月公開予定のRTMには収録されると思いますが、現在Service Pack 2の動作テストを行っている方はご注意ください。

    閑話休題。筆者はよくネットワーク上の共有フォルダにあるファイルをコマンドプロンプトから編集しており、時には共有フォルダ自体をカレントディレクトリとして作業したいことがありますが、当然「cd」コマンドはUNCパスをカレントディレクトリにすることはできません。

    本来コマンドプロンプトを実現する「cmd.exe」は、UNC名をカレントディレクトリとして使用できるかチェックする機能が用意されています。cmd.exeから子プロセスを呼び出す際にこのチェック機能が影響し、時にはエラーメッセージが発生します。

    実際にこの仕様が影響することはほとんどありませんが、カレントディレクトリをUNC名として設定するアプリケーションへの対策として、今週はこの機能を設定するTipsを紹介します。

    1.<スタート>メニュー→<ファイル名を指定して実行>と選択。
    2.「名前」に半角で「regedit」と入力し、<OK>ボタンをクリック。
    3.レジストリエディタが起動したら、HKEY_CURRENT_USER → Software → Microsoft → Command Processorとキーをたどって開く。
    4.<編集>メニュー→<新規>→<DWORD値>と選択。
    5.名前を「DisableUNCCheck」に変更し、ダブルクリックで開く。
    6.値のデータを「1」に書き換えてから<OK>ボタンをクリック。
    7.レジストリエディタを終了し、Windows XPに再ログオンする。

    これで設定が完了し、カレントディレクトリをUNC名に設定する古いアプリケーションが正常に動作します。ちなみにコマンドプロンプト上でUNCパスをカレントディレクトリにする場合、「pushd \\{サーバPC名}\{共有フォルダ名}」と実行すると、適当なドライブ文字を使用し、一時的にマッピング処理が行われます。

    元のフォルダに戻る時は「popd」コマンドを使ってください。また、現在ログオン中のユーザーだけでなく、システム全体にこの設定を適用させるには、ステップ3で開くレジストリキーを「HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor」に変更します。

    それではまた次週お会いしましょう。

    阿久津良和 ( akutsu@cactus.ne.jp )

    新着記事

    特設サイトの情報

      人気記事

      一覧

      新着記事

      特別企画

      マイナビニュースマガジン