テクニカルノート036  


Windows環境変数の優先順位

概要

PERFORCE環境変数の設定にはいくつかの手法があり、一部の設定が他の設定に優先されます。 この記事では、どのPERFORCE環境変数がWindows環境で優先されるのか、という基本的な質問にお答えします。

この記事はWindows NT 4.0、Windows 2000、Windows XP、およびWindows 2003に適用されます。 Windows32ビット版およびWindows64ビット版の両方が対象となります。

詳細

PERFORCEクライアント(P4、P4VまたはP4Winなど)、PERFORCEプラグイン(P4SCCまたはP4 For Office)またはPERFORCEサーバのWindowsサービス(p4s.exe)が起動すると、それらは構成パラメータをPERFORCE Windows環境から読み込みます。 設定が見つかるまで、PERFORCE環境における優先順位が探索されます。 優先順位は以下のとおりです。
  1. PERFORCEコマンドライン・オプション
  2. PERFORCE P4CONFIGファイル(P4CONFIGが設定されている場合)
  3. Windowsシステム環境変数およびユーザ環境変数
  4. PERFORCEユーザ環境レジストリ(p4 set)
  5. PERFORCEシステム環境レジストリ(p4 set -s)


リリース 99.1/10994以降、PERFORCE Windowsサービスが起動すると、別の場所から構成を読み込みます。 p4s.exe、p4ps.exe、p4webs.exe、およびp4ftps.exeを含むすべてのPERFORCEサービスにおいて、この別の場所が使用されています。 PERFORCE Windowsサービスの優先順位は以下のとおりです。
  1. PERFORCE Windowsサービス・パラメータ (p4 set -S サービス名)
  2. Windowsシステム環境変数
  3. PERFORCEシステム環境レジストリ


Windows 64ビット環境でのレジストリ リフレクション

32ビットのアプリケーションがWindows 64ビットOSで実行されると、レジストリアクセスが反映されます。 この領域でのレジストリの読み取りまたは書き込みは、下に示す2番目のレジストリ領域に反映されます。 (これはMicrosoftによる動作の描写です。現実には、むしろレジストリ リダイレクションであり、両方ではなく一方または他方の領域がアクセスされます。)
HKEY_LOCAL_MACHINE/Software -->> HKEY_LOCAL_MACHINE/Software/Wow6432Node
              


このレジストリ リダイレクションのために、2005.2のPERFORCE Windows 64ビットのサーバ(NTX64)は、他の2005.2 PERFORCE Windows 32ビット(NTX86)のクライアントおよびサーバとは互換性がありません。PERFORCEでは、Microsoftのレジストリ リフレクションの結果を永続的にするパッチを適用することを選択しました。 PERFORCE Windows 64ビットサーバであるNTX64では、それが32ビットのアプリケーションであるかのように反映されたレジストリ領域を使用するようになりました。この解決策を採用したのは、すべてのPERFORCEクライアントは当分の間32ビットのアプリケーションとして残存するからです。

すべての2006.n のPERFORCEサーバ・バージョン、および"NTX86/2005.2/94595"より後の2005.2のPERFORCEサーバ・バージョンではこの動作に従います。 P4コマンドライン・クライアントおよびその他のPERFORCEクライアントでは、必要に応じて自動的に環境設定を反映されたレジストリ領域に書き込むため、ユーザが特にアクションを取る必要はありません。
戻る