現在オフラインです。再接続するためにインターネットの接続を待っています

低速なネットワークを経由してホーム フォルダに接続している場合にプログラムの起動やログインに時間がかかる

この記事は、以前は次の ID で公開されていました: JP306850
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
プログラムを起動するときに、実行に非常に時間がかかることがあります。この問題は、次の条件に該当する場合に発生します。
  • 起動するプログラムのショートカットに [作業フォルダ] プロパティが設定されていません。
  • ホーム フォルダが格納されているネットワーク共有に、非常に低速なネットワークを経由して接続しています。
また、コンピュータにログオンするときに、予想以上にログオン処理に時間がかかることがあります。この問題は、次の条件に該当する場合に発生します。
  • クライアント コンピュータは、ホーム フォルダでシステム (.dll) ファイルを検索する必要があります。
  • ホーム フォルダが格納されているネットワーク共有に、非常に低速なネットワークを経由して接続しています。
原因
"作業フォルダ" プロパティが設定されていないプログラムは、現在の作業フォルダから起動されます。これが原因でこの問題が発生することがあります。現在の作業フォルダは、通常、ユーザーのホーム フォルダです。ダイナミック リンク ライブラリ (DLL) の検索は、最初に現在の作業フォルダ、次にシステム パスで指定されているフォルダの順で行われます。このため、広域ネットワーク (WAN) や仮想プライベート ネットワーク (VPN) 接続など、遅延の大きい接続を使用している場合、プログラムの応答が遅くなります。
解決方法
この問題を解決するには、Windows 2000 の最新の Service Pack を入手します。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
260910 最新の Windows 2000 Service Pack の入手方法
修正プログラム (日本語版) の属性は次のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。
   日付           時刻    バージョン        サイズ    ファイル名   --------------------------------------------------------   2001/09/10  13:26  5.0.2195.4272  902,416  Kernel32.dll				
Microsoft Windows 2000 Service Pack 3 (SP3) またはそれ以降を使用していて、この資料に記載されている修正プログラムを SP3 またはそれ以降に更新する前にインストールしていなかった場合は、以下の手順を実行して、プリエンプティブ パス検索が有効となるようにレジストリを手動で構成する必要があります。
  1. レジストリ エディタを起動します。
  2. 次のレジストリ キーを見つけて、クリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
  3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックします。
  4. [New Value #1] ボックスに SafeDllSearchMode と入力し、Enter キーを押します。
  5. 手順 4. で作成した新しい値をダブルクリックし、この値を 1 に設定してから、[OK] をクリックします。
  6. レジストリ エディタを終了します。
  7. 変更を有効にするため、Windows を再起動します。
: このキーは、この資料に記載されている問題が発生している場合にのみ設定してください。
回避策
この問題を回避するには、プログラムのショートカットにある "作業フォルダ" プロパティに、ローカル ドライブにあるフォルダ、または遅延の小さい接続を経由してアクセスできるコンピュータにあるフォルダを設定します。
状況
マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。 この問題は、Windows 2000 Service Pack 3 で修正済みです。
詳細
この修正プログラムにより、以下のレジストリ値が追加されます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDllSearchMode
このレジストリ値は 1 に設定されています。この値が 1 に設定されている場合、最初にシステム パスで指定されているフォルダが検索され、次に現在の作業フォルダが検索されます。この値が 0 に設定されている場合、最初に現在の作業フォルダが検索され、次にシステム パスで指定されているフォルダが検索されます。

SearchPath() 関数では、指定されたパスで指定されたファイルが検索されます。この関数では、ディレクトリ内のファイルが次の順序で検索されます。
  • アプリケーションが読み込まれたディレクトリ
  • 現在のディレクトリ
  • システム ディレクトリ

    : GetSystemDirectory 関数を使用して、このディレクトリのパスを取得します。
  • 16 ビット システム ディレクトリ

    : このディレクトリのパスを取得する関数はありませんが、検索は可能です。
  • Windows ディレクトリ

    : GetWindowsDirectory 関数を使用して、このディレクトリのパスを取得します。
  • PATH 環境変数に指定されているディレクトリ。[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックすることによりプログラムを実行しようとすると、Windows では、パスが検索される前にホーム フォルダが検索されます。
次のレジストリ キーにレジストリ値を追加することにより、この動作を変更できます。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
このキーの下に DWORD 値を作成し、StartRunNoHOMEPATH という名前を付け、値のデータとして 1 を設定します。
この動作の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
264061 プログラムを実行しようとするとホーム フォルダが最初に検索される
Windows 2000 Datacenter Server 用の修正プログラムの入手方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
265173 Windows Datacenter プログラムおよび Windows 2000 Datacenter Server
複数の修正プログラムのインストールを 1 回の再起動のみで行う方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
296861 複数の Windows 更新プログラムまたは修正プログラムを同時にインストールし、再起動を 1 回で済ませる方法
Windows 2000 と Windows 2000 の修正プログラムを同時にインストールする方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
249149 Microsoft Windows 2000 および Windows 2000 ホットフィックスのインストール
kbShell links kbbillprodsweep SafeDllSearchMode, StartRunNoHOMEPATH, SafeProcessSearchMode KB905890
プロパティ

文書番号:306850 - 最終更新日: 12/06/2015 05:09:47 - リビジョン: 6.3

Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server

  • kbnosurvey kbarchive kbhotfixserver kbqfe kbbug kbenv kbfix kbshell kbui kbwin2000presp3fix kbwin2000sp3fix KB306850
フィードバック