コンピューターを再起動すると、iSCSI デバイス上のファイル共有が再作成されない場合があります

この記事では、コンピューターを再起動したときにファイル共有が再作成されない可能性がある問題の解決策について説明します。

適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 870964

現象

Microsoft iSCSI イニシエーター サービスを使用して、インターネット SCSI (iSCSI) ディスク デバイスに接続します。 iSCSI デバイス上にあるフォルダー用に作成したファイル共有は、共有が作成されているコンピューターを再起動したときに再作成されない場合があります。

原因

この問題は、サーバー サービスの初期化時に iSCSI イニシエーター サービスが初期化されない場合に発生する可能性があります。 サーバー サービスは、ファイル共有を作成します。 ただし、iSCSI ディスク デバイスは使用できないため、iSCSI サービスが初期化されるまで、サーバー サービスは iSCSI デバイスのファイル共有を作成できません。

解決方法

iSCSI イニシエーター 2.x

iSCSI イニシエーター 2.x の問題を解決するには、影響を受けるサーバーで次の手順を実行します。

  1. サーバー サービスを iSCSI イニシエーター サービスに依存させます。 これを行う方法については、「iSCSI イニシエーター サービスに依存するサーバー サービスを作成する」セクションを参照してください。

  2. ターゲットへの永続的なログオンを構成します。 それには、以下のいずれかの方法を使用します。

    注:

    [ 永続的なターゲット ] タブにターゲットが表示される場合は、次の手順は必要ありません。

    方法 1: コントロール パネルで iSCSI イニシエーターを使用する

    1. コントロール パネルで、[iSCSI イニシエーター] をダブルクリックします。
    2. [ ターゲット ] タブを選択します。
    3. [ターゲットの選択] ボックスの一覧 でターゲットを選択 し、[ ログオン] を選択します。
    4. [システムの起動時にこの接続を自動的に復元する] ボックスチェック選択し、[OK] を選択します

    方法 2: コマンド プロンプト ウィンドウを使用する

    1. [Start Run]\(実行の開始\)> を選択し、「cmd」と入力し、[OK] を選択します
    2. コマンド プロンプトで、次のコマンドを入力し、Enter キーを押します。 iscsicli persistentlogintarget **target_iqn** T * * * * * * * * * * * * * * * 0

    注:

    target_iqn はターゲットの IQN 名です。

  3. iSCSI イニシエーター サービスの BindPersistentVolumes オプションを構成します。 それには、以下のいずれかの方法を使用します。

    方法 1: コントロール パネルで iSCSI イニシエーターを使用する

    1. コントロール パネルで、[iSCSI イニシエーター] をダブルクリックします。
    2. [ バインドされたボリューム/デバイス ] タブを選択します。
    3. [ すべてバインド] を選択して、すべての永続的なターゲットをバインドします。 または、[ 追加] を選択し、ドライブ文字またはマウント ポイントを入力して特定のターゲットをバインドします。
    4. [OK] を選択します。

    方法 2: コマンド プロンプト ウィンドウを使用する

    1. [Start Run]\(実行の開始\>) を選択し、「cmd」と入力し、Enter キーを押します。

    2. [iscsicli BindPersistentVolumes]と入力して、Enter キーを押します。

      注:

      これは、方法 1 で [すべてバインド ] オプションを選択した場合と同じです。

注:

この解決策は、iSCSI イニシエーター サービスのバージョン 2.x でこの特定の問題が発生した場合にのみ使用してください。

サーバー サービスを iSCSI イニシエーター サービスに依存させる

次のいずれかの方法を使用して、サーバー サービスを iSCSI イニシエーター サービスに依存させます。

方法 1: Microsoft Service Control ユーティリティを使用する (Sc.exe)

注:

このメソッドを使用するときにレジストリを変更する必要はありません。 したがって、このメソッドは、サービスの依存関係を設定する推奨される方法です。

  1. [Start Run]\(実行の開始\>) を選択し、「cmd」と入力し、Enter キーを押します。

  2. [sc config LanManServer depend= Samss/Srv2/MSiSCSI]と入力して、Enter キーを押します。

    サーバーへの管理アクセス権がある場合は、ネットワーク コンピューターからこのコマンドを実行できます。 次のコマンドを入力し、Enter キーを押します。

     sc \\computer_name config LanManServer depend= Samss/Srv2/MSiSCSI
    

方法 2: レジストリ エディターを使用する

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。
322756 Windows でレジストリをバックアップおよび復元する方法

Microsoft Windows 2000

  1. レジストリ エディターを起動します。

  2. 次のレジストリ サブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer

  3. [ 編集 ] メニューの [ 値の追加] を選択します。

  4. [値の名前] ボックスに「DependOnService」と入力し、[データ型] ボックスで [REG_MULTI_SZ] を選択し、Enter キーを押します。

  5. [複数文字列エディター] ウィンドウで、データ ボックスに「MSiSCSI」と入力し、[OK] を選択します

  6. レジストリ エディターを終了します。

詳細

Sc.exe ユーティリティと Iscsicli.exe ユーティリティを使用して、「解決」セクションで説明されているプロシージャをスクリプト化できます。 これを行うには、これらのコマンドを使用するバッチ ファイルを作成し、バッチ ファイルを直接実行するか、別の方法でバッチ ファイルを実行します。 たとえば、グループ ポリシーを使用してバッチ ファイルを実行します。

Microsoft は、例示のみを目的としてプログラミング例を提供しており、明示または黙示にかかわらず、いかなる責任も負わないものとします。 これには、市販性または特定目的との適合性についての黙示の保証も含まれますが、これに限定はされません。 この記事は、説明されているプログラミング言語、手順を作成およびデバッグするために使用されているツールに読者が精通していることを前提にしています。 Microsoft のサポート エンジニアが、特定の手順の機能をわかりやすく説明します。 ただし、これらの例を変更して、追加の機能を提供したり、特定の要件を満たすプロシージャを構築したりすることはありません。

「解決」セクションで説明されている操作全体をスクリプト化するには、次のテキストを含むバッチ ファイルを作成します。

sc config LanManServer depend= Samss/Srv2/MSiSCSI  
iscsicli BindPersistentVolumes

この問題は、ストレージが初期化される前にサーバー サービスが開始された場合、iscsi 以外のストレージにも発生する可能性があります。 その場合は、G が監視するドライブ文字であると仮定して、次の回避策を使用できます。

  1. スクリプトをファイルとして *.bat 保存します。

     :Start  
      dir G: /AH  
      if %errorlevel% equ 0 goto :OK  
      ping 127.0.0.1 /n 5  
      goto :Start  
      :OK  
      net stop browser  
      net stop netlogon  
      net stop dfs  
      net stop lanmanserver /y  
      net start lanmanserver  
      net start dfs  
      net start netlogon  
      net start browser  
    
  2. bat ファイルを "スクリプトの開始" に追加できます。

    1. バッチ ファイルを に配置する %systemroot%\System32\GroupPolicy\Machine\Scripts\Startup
    2. を実行 gpedit してローカル コンピューター ポリシーを開く
    3. スタートアップ スクリプトにバッチ ファイルを追加します。