[windows2000] Re: Replacing DC with another DC

  • From: Dave stevens <london31uk@xxxxxxxxx>
  • To: windows2000@xxxxxxxxxxxxx
  • Date: Mon, 14 Nov 2005 09:15:50 -0800 (PST)

Sure thing Glenn.
1:It is possible to move dhcp between same OS servers, I think you just need to 
copy the Database from old to new.
2: With regards to printers, yes you can migrate them over with PrintMigrator 3 
from Microsoft. It would be a lot easier if the servername would remain the 
same. However if it doesn't, I have included a little script that should change 
the client-side for you. just rename the extension from .txt to .vbs, then 
probably implement like I did through script. I had this running for about 1 
week, then disabled it.

"Sullivan, Glenn" <GSullivan@xxxxxxxxxxxxxx> wrote:
"Can I test the new DC by just shutting down the old DC prior to demoting?"
Yes, but I would move the FSMO roles first.
"Can I use robocopy.exe to move all the folders with permissions to the new 
Yes, that is what I do.  Use the /sec option, or the /mir option if you prefer.
"Is there a way to move my DHCP settings?"
Same OS on the old and new server?  If so, yes.  But I have never had much luck 
with this.
Unless you have a huge number of reservations, I would manually create the new 
scope.  But first, I would set the old scope to have a ridiculously low lease 
time, and wait until everyone has refreshed their lease.
I.e., if you currently have a three day lease time, then 1.5 days before you 
intend to activate the new DHCP server (give yourself AT LEAST 50% of the old 
lease time, if not more) change the lease time to something like an hour or two.
I usually use this as an opportunity to re-do my reservations anyway, so that 
printers are all contiguous, etc...
"Is there a way to move print server printers?"
Not sure what you mean... unless the server is going to have the same name 
(which is impossible given your steps to upgrade) you are going to have to 
re-map your clients printers anyway.

Glenn Sullivan, MCSE+I MCDBA
David Clark Company Inc. 

From: windows2000-bounce@xxxxxxxxxxxxx 
[mailto:windows2000-bounce@xxxxxxxxxxxxx] On Behalf Of Herchenbach, Jim
Posted At: Monday, November 14, 2005 11:30 AM
Posted To: Windows 2000
Conversation: Replacing DC with another DC
Subject: [windows2000] Replacing DC with another DC

We are a small school with only one server.  I just want to make sure I do this 
correctly.  I'm replacing my DC with a new machine.
1) Configure new server
2) join domain and promote to a DC
3) Demote old DC
Can I test the new DC by just shutting down the old DC prior to demoting?  I 
would hate to lose all the student login information.
Can I use robocopy.exe to move all the folders with permissions to the new box?
Is there a way to move my DHCP settings?
Is there a way to move print server printers?
Any help would be appreciated.  



 Yahoo! FareChase - Search multiple travel sites in one click.  
Option Explicit
Dim from_sv, to_sv, PrinterPath, PrinterName, DefaultPrinterName, DefaultPrinter
Dim DefaultPrinterServer, SetDefault, key
Dim spoint, Loop_Counter
Dim WshNet, WshShell
Dim WS_Printers
DefaultPrinterName = ""
spoint = 0
SetDefault = 0
set WshShell = CreateObject("WScript.shell")

from_sv = "\\Oldserver" 'This should be the name of the old server.
to_sv = "\\Newserver" 'This should be the name of your new server.

'Just incase their are no printers and therefore no defauld printer set
' this will prevent the script form erroring out.
On Error Resume Next
key = "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device"
DefaultPrinter = LCase(WshShell.RegRead (key))
If Err.Number <> 0 Then
DefaultPrinterName = ""
'If the registry read was successful then parse out the printer name so we can 
' compare it with each printer later and reset the correct default printer
' if one of them matches this one read from the registry.
spoint = instr(3,DefaultPrinter,"\")+1
DefaultPrinterServer = left(DefaultPrinter,spoint-2)
if DefaultPrinterServer = from_sv then
DefaultPrinterName = mid(DefaultPrinter,spoint,len(DefaultPrinter)-spoint+1)
end if
end if
Set WshNet = CreateObject("WScript.Network")
Set WS_Printers = WshNet.EnumPrinterConnections
'You have to step by 2 because only the even numbers will be the print queue's
' server and share name. The odd numbers are the printer names.
For Loop_Counter = 0 To WS_Printers.Count - 1 Step 2
'Remember the + 1 is to get the full path ie.. \\your_server\your_printer.
PrinterPath = lcase(WS_Printers(Loop_Counter + 1))
'We only want to work with the network printers that are mapped to the original
' server, so we check for "\\Your_server".
if LEFT(PrinterPath,len(from_sv)) = from_sv then
'Now we need to parse the PrinterPath to get rhe Printer Name.
spoint = instr(3,PrinterPath,"\")+1
PrinterName = mid(PrinterPath,spoint,len(PrinterPath)-spoint+1)
'Now remove the old printer connection.
WshNet.RemovePrinterConnection from_sv+"\"+PrinterName
'and then create the new connection.
WshNet.AddWindowsPrinterConnection to_sv+"\"+PrinterName
'If this printer matches the default printer that we got from the registry then
' set it to be the default printer.
if DefaultPrinterName = PrinterName then
WshNet.SetDefaultPrinter to_sv+"\"+PrinterName
end if
end if
Set WS_Printers = Nothing
Set WshNet = Nothing
Set WshShell = Nothing

Other related posts: