當您重新啟動計算機時,可能無法重新建立 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 啟動器服務。 For information about how to do this, see the "Make the Server service dependent on the iSCSI Initiator service" section.

  2. 設定目標的持續性登入。 若要執行這項操作,請使用下列其中一種方法。

    注意事項

    如果您在 [ 持續 性目標] 索引標籤上看到目標,則不需要執行下列步驟。

    方法 1:在 控制台 中使用 iSCSI 啟動器

    1. 在 控制台 中,按兩下 [iSCSI 啟動器]
    2. 選取 [ 目標] 索引標籤
    3. 在 [ 選取目標 ] 列表中選取目標,然後選取 [ 登入]
    4. 選取 [系統 開機時自動還原此連線 ] 複選框,然後選取 [ 確定]

    方法 2:使用命令提示字元視窗

    1. 取 [開始>執行],輸入 cmd,然後選取 [ 確定]
    2. 在命令提示字元中輸入下列命令,然後按 Enter: iscsicli persistentlogintarget **target_iqn** T * * * * * * * * * * * * * * * 0

    注意事項

    target_iqn 是目標的 IQN 名稱。

  3. 設定 iSCSI 啟動器服務的 BindPersistentVolumes 選項。 若要執行這項操作,請使用下列其中一種方法。

    方法 1:在 控制台 中使用 iSCSI 啟動器

    1. 在 控制台 中,按兩下 [iSCSI 啟動器]
    2. 選取 [ 系結磁碟區/裝置] 索引 標籤。
    3. 取 [全部系結 ] 以系結所有持續性目標。 或者,選取 [新增],然後輸入驅動器號或裝入點以系結特定目標。
    4. 選取 [確定]

    方法 2:使用命令提示字元視窗

    1. 取 [開始>執行],輸入 cmd,然後按 Enter。

    2. 輸入iscsicli BindPersistentVolumes,然後按下 Enter。

      注意事項

      這與在方法 1 中選取 [ 全部系結 ] 選項相同。

注意事項

只有當您遇到 iSCSI 啟動器服務 2.x 版的這個特定問題時,才使用此解決方案。

讓伺服器服務相依於 iSCSI 啟動器服務

使用下列其中一種方法,讓伺服器服務相依於 iSCSI 啟動器服務。

方法 1:使用 Microsoft 服務控制公用程式 (Sc.exe)

注意事項

當您使用此方法時,不需要修改登錄。 因此,這個方法是設定服務相依性的慣用方法。

  1. 取 [開始>執行],輸入 cmd,然後按 Enter。

  2. 輸入sc config LanManServer depend= Samss/Srv2/MSiSCSI,然後按下 Enter。

    如果您有伺服器的系統管理存取權,您可以從網路電腦執行此命令。 輸入下列命令,然後按 Enter:

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

方法 2:使用登錄 編輯器

重要事項

這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 為了有多一層保護,請先備份登錄再進行修改。 如此一來,您就可以在發生問題時還原登錄。 如需有關如何備份和還原登錄的詳細資訊,請按一下下列文章編號,檢視「Microsoft 知識庫」中的文章:
322756 如何在 Windows 中備份及還原登錄

Microsoft Windows 2000

  1. 啟動 [登錄編輯程式]。

  2. 找出並選取下列登錄子機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer

  3. 在 [ 編輯] 功能表上,選取 [ 新增值]

  4. 在 [值名稱] 方塊中輸入 DependOnService,在 [數據類型] 方塊中選取 [REG_MULTI_SZ],然後按 Enter 鍵。

  5. 在 [多字串 編輯器] 視窗的 [數據] 方塊中輸入 MSiSCSI,然後選取 [確定]

  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. 將批處理檔新增至啟動腳本。