2012年9月13日 星期四

使用 Windows Server 遷移工具,轉移 Windows Server 2003 DHCP 伺服器至 Windows Server 2008 R2

隨著 Windows Server 2012 RTM 後,許多企業紛紛將自家的系統開始做升級的動作,勢必是為了將來再升級到 Windows Server 2012 做準備,就現在來說,已經有不少人將 Windows Server 2003 或 Windows Server 2003 R2 升級至 Windows Server 2008 或 Windows Server 2008 R2 了。

除了基本的 Active Directory 網域服務 (ADDS,Active Directory Domain Services) 及 DNS 伺服器 ( Domain Name System ) 能直接升級上去之外,在來就屬 DHCP 伺服器 (Dynamic Host Configuration Protocol ) 了,怎麼將 Windows Server 2003 上的 DHCP 伺服器轉移到 Windows Server 2008 R2 上去服務呢?

官方 TechNet 的 Wiki 有一份 Step-By-Step 的文件,可以一步步的教您如何使用 Windows Server 遷移工具來將 Windows Server 2003 上的 DHCP 伺服器轉到 Windows Server 2008 R2 。接下來我們就照著官方文件來實際執行一次遷移的動作,本文也適用於 Windows Server 2003 R2 版上的 DHCP 伺服器。

本範例環境:
 IP位置:192.168.1.11
主機名稱:2003-DC.testlab.local
作業系統:Windows Server 2003 Enterprise Edition Service Pack 2
已安裝服務:Active Directory 網域控制站、DNS 伺服器、 DHCP 伺服器

 IP位置:192.168.1.12
主機名稱:2008R2-DC.testlab.local
作業系統:Windows Server 2008 R2 Standard Service Pack 1
已安裝服務:Active Directory 網域控制站、DNS 伺服器

移轉前的準備:
2003-DC 上必須安裝
1、Windows Server 2003 Service Pack 1 與 Windows XP Service Pack 2 的 Windows PowerShell 1.0 當地語系化安裝套件或 Windows PowerShell 2.0 and Windows Remote Management (WinRM) 2.0 (KB968930)
2、Microsoft .NET Framework 3.5 Service Pack 1

範例中,在我 Windows Server 2003 DC 上的 DHCP 伺服器有五個網段


在 Windows Server 2003 DC 上點選【開始】--【所有程式】--【附屬應用程式】--【Windows PowerShell】--【Windows PowerShell】。


開啟【Windows PowerShell】的命令提示字元視窗後,鍵入【net stop "DHCP Server"】並按鍵盤上的【Enter】來停用 DHCP 伺服器。


現在請將焦點轉到 Windows Server 2008 R2 DC 上,由於這一台主機將會準備接管由 Windows Server 2003 DC 所轉過來的 DHCP ,所以我們必須先在 Windows Server 2008 R2 DC 上面安裝 DHCP 伺服器。

請在 Windows Server 2008 R2 DC 主機上點選開始功能表旁的【伺服器管理員】,或從【系統管理工具】中來點選【伺服器管理員】。


開啟【伺服器管理員】後,我們點選一下【角色】在點選右邊視窗中的【新增角色】。


開啟【新增角色精靈】,請按【下一步】,勾選【DHCP 伺服器】後按【下一步】。


DHCP 伺服器簡介可以直接按【下一步】略過。(如果您想看完也可以 ^^ )


網路連線繫結部份,就使用預設的的網路連線,請直接按【下一步】。


IPv4 DNS 設定,也是保持預設值,請直接按【下一步】。


IPv4 WINS 設定,也是保持預設值,請直接按【下一步】。


DHCP 領域,請保持預設的空白,因為我們是要接手由 Windows Server 2003 DC 上所轉過來的 DHCP ,所以在此請勿設定,請直接按【下一步】。


DHCPv6 無狀態模式,請選擇【停用這部伺服器的 DHCPv6 無狀態模式,在按【下一步】。


DHCP 伺服器授權,請保持預設值 (使用目前的認證) ,按【下一步】。


確認所有的設定無誤後,請點選【安裝】。


DHCP 伺服器角色安裝中,請稍候。


確認 DHCP 伺服器角色安裝成功後 ,請按【關閉】。


接著我們在按一下【功能】,並點選【新增功能】。


當出現【新增功能精靈】後,請勾選【Windows Server 移轉工具】,並按【下一步】。


確認選擇【Windows Server 移轉工具】後,請按【安裝】。


Windows Server 移轉工具安裝中,請稍候。


確認Windows Server 移轉工具安裝成功後,請直接按【關閉】並關閉【伺服器管理員】視窗。


接下來,我們就開啟 Windows Server 2008 R2 DC 上的 Windows Server 移轉工具,請點選【開始】--【系統管理工具】--【Windows Server 移轉工具】--【Windows Server 移轉工具】。


開啟 Windows Server 移轉工具的命令提示字元視窗後,請將目錄切到 Servermigrationtools ,請鍵入【cd c:\windows\system32\servermigrationtools】並按鍵盤上的【Enter】。

接著鍵入【ls】並按鍵盤上的【Enter】,來看一下目錄下有哪些檔案,主要是要用【SmigDeploy.exe】來做後續的動作。


接下來,請鍵入指令【.\SmigDeploy.exe /package /architecture x86 /os ws03 /path c:\SMIGDeploy】並按鍵盤上的【Enter】。

這個指令的目地,主要是要解開我們所需要的部署工具包的檔案。


確認已經成功的將檔案解開到 【c:\SMIGDeploy\SMT_ws03_x86】後,我們就可以回到桌面,並開啟【電腦】或【檔案總管】。


開啟【電腦】或檔案總管後,我們檢查一下有沒有【SMIGDeploy】的資料夾,而在【SMIGDeploy】的資料夾下面,是否還有一個【SMT_ws03_x86】的資料夾,裡面就是部署工具包的檔案。


接下來,我們就要將這一個部署工具包的資料夾,完整的複製一份到 Windows Server 2003 DC 上,請在【SMIGDeploy】資料夾上點選滑鼠右鍵選【複製】。


本範例中是直接用 MAP 網路磁碟機的方式,新增 Windows Server 2003 DC 主機的 C 磁碟機,並在該網路磁碟機上按滑鼠右鍵選【貼上】。


接下來,我們將焦點轉回來 Windows Server 2003 DC 主機,我們開啟【我的電腦】或【檔案總管】,檢查一下是否有剛剛複製過來的【SMIGDeploy】資料夾。


確認【SMIGDeploy】資料夾已經成功複製過來後,接下來我們點進去【SMIGDeploy】資料夾裡的【SMT_ws03_x86】資料夾,並在【SMT_ws03_x86】資料夾裡找到檔案【SmigDeploy.exe】,請在檔案【SmigDeploy.exe】上按滑鼠右鍵選【開啟】。


接下來系統會自動開啟 Windows PowerShell ,請在 Windows PowerShell 命令提示字元視窗裡鍵入指令【Get-Command –PSSnapin Microsoft.windows.servermanager.migration】並按鍵盤上的【Enter】。

這個指令主要的目地是要讓我們查看有哪些遷移的指令。


接下來我們在鍵入指令【Get-SmigServerFeature】並按鍵盤上的【Enter】。

該指令的目地是要將本機 ( Windows Server 2003 DC) 的服務轉移到 Windows Server 2008 R2 DC 上。


收集數據資料中,請稍候。


當數據資料收集完畢後會列出,目前的 DHCP Server 是可以遷移的。


接下來在將焦點轉回 Windows Server 2008 R2 DC 主機。請開啟【電腦】或【檔案總管】,在本機磁碟機 C 建立一個新的資料夾,請在空白處點選滑鼠右鍵選【新增】--【資料夾】。


範例中所新增的資料夾名稱為【DHCPData】,資料夾新增完畢後,請在該資料夾上點選滑鼠右鍵選【共用對象】--【特定人員】。

新增這個資料夾的主要目地在於,稍後我們會從 Windows Server 2003 DC 上將 DHCP Server 的資料庫移轉到該資料夾中。


開啟【檔案分享權限設定】對話框後,請確認 Administrator 的權限是讀取與寫入、 Administrators 的權限是擁有者,確認無誤後,請按【共用】。


當要共用的資料夾設定後,請記下該 UNC 路徑,並按【完成】。

什麼是 UNC 路徑?


接下來,在將焦點轉回 Windows Server 2003 DC 上,請繼續在之前所開啟的 Windows PowerShell 命令提示字元視窗下鍵入指令【Export-SmigServerSetting -featureID DHCP -User All -Group -path \\2008R2-DC\DHCPData -Verbose】並按鍵盤上的【Enter】,出現要您輸入密碼的提示,請鍵入您的網域的系統管理員密碼,輸入完畢後再按鍵盤上的【Enter】。

切記,指令不要照 COPY,上面的 UNC 路徑是範例上的主機,請記得將 UNC 路徑改回您環境裡的路徑。


收集數據資料中,請稍候。


接下來我們可以看到,DHCP 的資料庫已經成功的轉出到 \\2008R2-DC\DHCPData 的資料夾中了。


確認一下 Windows Server 2003 DC 上的 DHCP 資料庫是否有轉到 Windows Server 2008 R2 DC 上的資料夾。

在將焦點轉回 Windows Server 2008 R2 DC 上,請開啟【電腦】或【檔案總管】,點選本機磁碟機 (C) 上的【DHCPData】資料夾,已經可以看到轉出來的檔了,其檔案名稱為【svrmig.mig】。


確認檔案有轉出來後,接下來就是要移除在 Windows Server 2003 DC 上的 DHCP 伺服器了。

請在將焦點轉回到 Windows Server 2003 DC 上,請繼續在之前所開啟的 Windows PowerShell 命令提示字元視窗下鍵入指令【Netsh DHCP delete server  2003-DC.testlab.local 192.168.1.11】並按鍵盤上的【Enter】。

切記,指令不要照 COPY,上面完整的主機名稱及 IP 是範例上的主機,請記得將主機名稱及 IP 改回您環境裡的主機名稱及 IP 。


接著我們可以看見已經成功刪除 Windows Server 2003 DC 上的 DHCP 伺服器了。好了,可以把 Windows PowerShell 的命令提示字元視窗關掉了。


接下來,我們在 Windows Server 2003 DC 主機上點選【開始】--【系統管理工具】--【DHCP】,恩,DHCP 伺服器的資料已經完全移除了。


最後將焦點轉回 Windows Server 2008 R2 DC 上吧!準備要在 Windows Server 2008 R2 DC 上啟用 DHCP 伺服器並匯入先前由 Windows Server 2003 DC 上所轉出來的 DHCP 資料庫了。

請在 Windows Server 2008 R2 DC 主機上點選【開啟】--【所有程式】--【附屬應用程式】--【Windows PowerShell】--【Windows PowerShell】。


開啟【Windows PowerShell】的命令提示字元視窗後,鍵入【net stop "DHCPServer"】並按鍵盤上的【Enter】來停用 DHCP 伺服器 。


確認 DHCP 伺服器服務已經成功停止。


接下來鍵入指令【Add-PSSnapin microsoft.windows.servermanager.migration】並按鍵盤上的【Enter】。

這個指令的目地主要是要進行遷移。


接著在鍵入指令【Import-SmigServerSetting -featureid DHCP -User All -Group -Force -path \\2008R2-DC\DHCPData -Verbose】,並按鍵盤上的【Enter】。

這個指令的目地主要是進行匯入 DHCP 資料庫的動作。

切記,指令不要照 COPY,上面的 UNC 路徑是範例上的主機,請記得將 UNC 路徑改回您環境裡的路徑。


接著請鍵入您的網域的系統管理員密碼,輸入完畢後再按鍵盤上的【Enter】‧


正在收集資料中,請稍候。


當所有的資料匯入完成後,請在鍵入指令【Set-service DHCPServer –startuptype automatic】,並按鍵盤上的【Enter】。

這個指令主要是將 DHCP 伺服器設為自動啟用。


在下指令【Start-Service DHCPServer】,並按鍵盤上的【Enter】。

這個指令主要的目地是要啟動 DHCP 伺服器。


接著我們可以看到, DHCP 伺服器服務完成啟動了。


最後,我們在鍵完整的主機名稱及 IP 授權 DHCP 伺服器吧!

請鍵入指令【Netsh DHCP add server 2008R2-DC.testlab.local 192.168.1.12】,並按鍵盤上的【Enter】。

切記,指令不要照 COPY,上面完整的主機名稱及 IP 是範例上的主機,請記得將主機名稱及 IP 改回您環境裡的主機名稱及 IP 。


現在就開啟 Windows Server 2008 R2 DC 上的 DHCP 伺服器來看一下吧!所有的設定通通都移轉過來囉!


未來若有時間的話,筆者會在寫一篇將 Windows Server 2008 R2 的 DHCP 伺服器移轉至 Windows Server 2012 。

Update:2103.06.03
Windows Server 2008 R2 DHCP 伺服器轉移至 Windows Server 2012

相關資源:
DHCP 伺服器移轉:準備移轉
Windows Server 2008 R2 的 Active Directory 網域服務
Steps to move a DHCP database from a Windows Server 2003 or 2008 to another Windows Server 2008 machine
Step-by-Step Migration DHCP from Windows Server 2003 to Windows Server 2008 R2 with Windows Server Migration Tools (en-US)

備註:
官方 TechNet 的 Wiki 裡 Step-By-Step 文件當中,有一段指令是錯誤的,文中使用 net 指令來停用 DHCP 伺服器,【net stop "DHCP Server"】或【net stop "DHCPServer】這兩種指令在 Windows Server 2003 / Windows Server 2003 R2 / Windows Server 2008 x86和x64 的作業系統是共用的,也就是說兩種指令系統都能接受,但對於 Windows Server 2008 R2 來說,只能使用指令【net stop "DHCPServer"】而不接受【net stop "DHCP Server"】。

所以該作者寫的是 to Windows Server 2008 R2 一文,這一個步驟的 LAB 卻是使用 Windows Server 2008 來做,難怪我試了會有問題。 ^^"

原文作者的指令

Windows Server 2008 R2 只接受 【net stop "DHCPServer"】

Windows Server 2008 【net stop "DHCPServer"】及【net stop "DHCP Server"】都能接受

Windows Server 2003 【net stop "DHCPServer"】及【net stop "DHCP Server"】都能接受

2 則留言:

  1. 請問一下,目前DHCP Server環境為Server 2003,需要移轉到Server 2012,可否直接2003移到2012,還是說也要先移到2008再到2012???

    因環境裡有dc01與dc02皆為Server 2003,將進行升級到Server 2012,此部分會參考blog文章內的方式,還有額外需注意的地方嗎???

    感謝您。

    回覆刪除
    回覆
    1. 您好!
      基本上是可以直接上到2012,您可以參考一下官方說明文件
      https://technet.microsoft.com/zh-tw/library/dn495425.aspx

      刪除