文章編號: 250267 - 上次校閱: 2007年11月6日 - 版次: 4.0

當您遷移檔案之間的不同網域的成員伺服器,無法解析本機群組

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

結論

] 當您將複製的檔案或資料夾從伺服器到不同網域的成員伺服器第二個伺服器可能不會識別本機群組的第一部伺服器。第二部伺服器無法識別的第一個伺服器的本機群組的安全性識別碼 (SID),就會發生這個問題。本文將告訴您方法來解決 這個行為。

徵狀

當您的檔案或資料夾從某個伺服器複製到另一部伺服器是不同網域的成員,一個伺服器第一部伺服器的本機群組的存取控制項目顯示成 未知 第二個伺服器上。這些存取控制項目屬於的判別存取控制清單 (DACL) 的檔案和資料夾中。

當兩個伺服器正在執行 Microsoft Windows NT Server 4.0 或 Microsoft Windows 2000 伺服器時,就會發生這種行為。

發生的原因

第一個伺服器上本機群組的安全性識別元 (SID) 值都是有效只能在該伺服器上,就會發生這個問題。 (第一部伺服器上的其他使用者帳戶的 SID 值是也只能在該伺服器上有效。這些 SID 值並不位於不同網域的伺服器上有效的。第二個伺服器無法辨識第一個伺服器的本機群組和使用者帳戶的 SID 值。

解決方案

如果要解決這個問題,請依照下列步驟執行:
  1. 將第一個伺服器的本機群組的資訊儲存到檔案:
    1. 系統管理員群組成員的登入第一部伺服器。
    2. 在命令提示字元輸入下列命令,,然後按下 ENTER:
      addusers \\ServerName \\ServerName/d Filename.txt
      這個命令中 ServerName 是第一個伺服器的名稱,以及 Filename.txt 是會儲存本機群組資訊檔案。
    3. 編輯 Filename.txt 檔,以刪除使用者帳戶資訊和通用群組資訊,然後將檔案儲存以不同的名稱。比方說 Renfile.txt 儲存修改過的檔案。

      重要保留本機群組資訊檔案中。
    4. 將修改過的檔案複製到第二個伺服器的網域。
  2. 將第一個伺服器的本機群組複製到第二個伺服器的網域為本機網域群組:
    1. 系統管理員 群組成員的登入第二個伺服器的網域。
    2. 在命令提示字元輸入下列命令,,然後按下 ENTER:
      addusers \\DomainName \\DomainName/c renfile.txt
      在這個命令 DomainName 是在網域的名稱,以及 Renfile.txt 是檔案,其中包含的第一部伺服器的本機群組資訊。如果群組不存在於網域,將會建立它們。如果群組存在網域中,群組成員將被新增到對應的群組。
  3. 從第一部伺服器將資料複製到第二個伺服器:
    1. 系統管理員 群組的成員擁有資料的存取第一個伺服器上登入第二部伺服器。
    2. 第二個伺服器上建立共用的資料夾。
    3. 登入第一部伺服器,並將資料複製到第二個伺服器上新的共用資料夾。如果要執行此動作使用其中一個下列方法:
      • 使用 Xcopy 命令列工具,在命令提示字元下輸入下列命令,然後按下 ENTER:
        xcopy \\source\*.* \\destination \\source\*.* \\destination/O/X/E/H/K
        在這個命令 source 是版面配置區的第一個的伺服器檔案的位置,且 destination 是在第二個伺服器中新的共用資料夾的位置的預留位置。
      • 使用 Robocopy 命令列工具,在命令提示字元下輸入下列命令,然後按下 ENTER:
        robocopy sourcedestination /secfix /xo /xn /xc K
        在這個命令 source 是版面配置區的第一個的伺服器檔案的位置,且 destination 是在第二個伺服器中新的共用資料夾的位置的預留位置。

        附註視目的地資料夾是來源資料夾的一個確切的鏡像必須藉由使用參數來更新只檔案安全性資訊,執行 Robocopy,然後再執行 [不使用 /xo/xn/xc 參數的 [Robocopy 命令。
    4. 將 Renfile.txt 檔案複製到第二部伺服器。
  4. 擷取 SID 值為第一個伺服器的本機群組及網域,並再將其儲存到檔案:
    1. 將本機群組從 Renfile.txt 檔案複製到第二個伺服器上的新檔案。例如 Listmemberlocal.txt 指定名稱給新的檔案。這個檔案必須包含第一個伺服器的本機群組的名稱。必須只有一個顯示在每個資料列中的名稱。Listmemberlocal.txt 檔案的內容必須出現類似下列文字其中 LocalA"和 LocalB"是本機群組的名稱:
      LocalA
      LocalB
    2. 建立第二個伺服器上的三個批次檔。這些批次檔案擷取並儲存 SID 值到一個文字檔案。您必須在一個資料夾中建立這些檔案。批次檔的內容必須是類似下列的範例程式碼。

      附註這段程式碼中 groupssid.txt 是預留位置 SID 值的儲存位置的檔案。 將下列儲存到名為 Listsid.bat 的檔案。
      • echo off
        cls
        if exist groupssid.txt del groupssid.txt
        for /F "tokens=1" %%a in (listmemberlocal.txt) do call listsid1.bat %%a
        
        將下列儲存到名為 Listsid1.bat 的檔案。
      • getsid \\2b21d %1 \\w2kdomain1.loc %1 >sid1.txt
        for /F "skip=1 tokens=5,7" %%a in (sid1.txt) do call listsid2.bat %%a %%b
        
        附註此處,2b21d 是第一個伺服器的 NetBIOS 名稱的預留位置,而 w2kdomain1.loc 是第二個伺服器的網域名稱的預留位置。將下列儲存到名為 Listsid2.bat 的檔案。
      • echo %1 %2 >>groupssid.txt
    3. 在命令提示字元下找不到],然後再執行 Listsid.bat 檔案]。
    4. 若要欲 SID 值開啟 Groupssid.txt 檔案。 Groupssid.txt 檔案的內容會類似下列:
      2B21D\LocalA S-1-5-21-90593156-579754539-1338337383-1002 
      W2KDOMAIN1\LocalA S-1-5-21-1844237615-261478967-839522115-1126 
      2B21D\LocalB S-1-5-21-90593156-579754539-1338337383-1003 
      W2KDOMAIN1\LocalB S-1-5-21-1844237615-261478967-839522115-1127 
      2B21D\LocDom1 S-1-5-21-90593156-579754539-1338337383-1004 
      W2KDOMAIN1\LocDom1 S-1-5-21-1844237615-261478967-839522115-1125
      
    5. 編輯 Groupssid.txt 檔案的內容,讓它很類似下列: 在此的內容為第一個本機群組 SID
      S-1-5-21-90593156-579754539-1338337383-1002   S-1-5-21-1844237615-261478967-839522115-1126
      S-1-5-21-90593156-579754539-1338337383-1003   S-1-5-21-1844237615-261478967-839522115-1127
      S-1-5-21-90593156-579754539-1338337383-1004   S-1-5-21-1844237615- 261478967-839522115-1125
      
      後面本機群組在網域中的第二個伺服器 SID。
  5. 使用第二個伺服器的網域本機群組的 SID 值取代所有第一個伺服器的本機群組的 SID 值:
    1. 建立第二個伺服器上的兩個批次檔。批次檔的內容必須是類似下列:
      • for /F "tokens=1,2" %%a in (groupssid.txt) do subin.bat %%a %%b
        附註這裡,groupssid.txt 是預留位置 SID 值為第一部伺服器和網域本機群組所在的檔案。
      • subinacl /subdirectories e:\root\*.* /replace=%1=%2
        附註這裡,e:\root 是新的資料夾,第二個伺服器複製第一個伺服器資料的位置中的預留位置。
    2. 在命令提示字元下找不到],然後再執行 [Sub.bat 檔案。

其他相關資訊

Addusers、 Robocopy、 Getsid 及 Subinacl 公用程式可用於 Microsoft Windows 2000 資源套件。如需有關 Microsoft Windows 2000 資源套件的詳細資訊,請造訪下列 Microsoft 網站]:
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/default.mspx?mfr=true (http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/default.mspx?mfr=true)

?考

如需有關如何保留的檔案及資料夾的權限,當您將檔案和資料夾複製到另一台電腦的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件]:
296865? (http://support.microsoft.com/kb/296865/ ) Subinacl 公用程式將不正確地排列存取控制項目
323007? (http://support.microsoft.com/kb/323007/ ) 如何將資料夾複製到另一個資料夾,並保留它的權限
323275 ? (http://support.microsoft.com/kb/323275/ ) 如何使用 Robocopy 複製而不複製任何檔案資料的安全性資訊

這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Server
  • Microsoft Windows NT Server 3.51
關鍵字:?
kbmt kbprb KB250267 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:250267? (http://support.microsoft.com/kb/250267/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。