How-To: Properly Migrate IIS6 Default Site Directory (inetpub) to Another Partition

iis-6windows-server-2003

Question pretty much says it all. I didn't have control of the installation and configuration of the web server. Inetpub was deployed to the C: drive on the machine…I need it to live on D:.

Sharepoint is going to live on this machine…so IIS needs to be koser when I'm done. Otherwise, Sharepoint won't know where to deploy Central Admin or any new Site Collections.

Help! I'm just a lowely developer…I come to ye server gods on bended knee.

Best Answer

Unfortunately, I didn't get any solid answers here.

Fortunately, I did find one of the MS MVPs who posted a VBScript to do this for me. I'm re-posting the script as I could only find it in Google's archives (and even then, the page took forever to re-load):

' -----------------------------------------------------------------------------
' RENAME THIS FILE TO MOVEIIS.VBS BEFORE USING!!!
' -----------------------------------------------------------------------------
' Modify IIS Metabase Properties for new data location
' Change the params and params2 value depending on which components are 
' installed
' set params to 10 if NNTP and FTP are installed and running otherwise
' set params to 9 and comment out msftpsvc line if FTP is not installed
' set params2 to 4 if FTP and NNTP are installed and runnning otherwise
' set params2 to 1 and comment out cisvc, msftpsvc and nntpsvc line if the 
' Indexing service, FTP service, and Network News Transport Service are 
' not installed
' References to the Indexing service have been commented out, check comments 
' on line 75 to change Indexing Service settings


'Stop IIS services before continuing

Set WSHShell = Wscript.CreateObject("Wscript.Shell")
WSHShell.PopUp "Stopping all Internet Services..."

ret = WshShell.Run ("net stop iisadmin /y", 1, TRUE)

If ret = 0 then
 WSHShell.PopUp "IISADMIN service was stopped successfully, continuing"
 'restart()
else
 WSHShell.PopUp "IISADMIN failed to stop successfully. The error code is " & ret
 Wscript.Quit 1
end if 

Dim params(6)
Dim x, ret
Dim params2(2)

Params(0) = "w3svc/1/root/path d:\inetpub\wwwroot"
Params(1) = "w3svc/1/root/scripts/path d:\inetpub\scripts "
Params(2) = "w3svc/1/root/iissamples/path d:\inetpub\iissamples"
Params(3) = "smtpsvc/1/BadMailDirectory d:\inetpub\mailroot\BadMail"
Params(4) = "smtpsvc/1/PickupDirectory d:\inetpub\mailroot\Pickup"
Params(5) = "smtpsvc/1/QueueDirectory d:\inetpub\mailroot\Queue"
Params(6) = "smtpsvc/1/DropDirectory d:\inetpub\mailroot\Drop"
'Params(7) = "nntpsvc/1/NewsPickupDirectory d:\inetpub\nntpfile\pickup"
'Params(8) = "nntpsvc/1/NewsFailedPickupDirectory d:\inetpub\nntpfile\failedpickup"
'Params(9) = "nntpsvc/1/NewsDropDirectory d:\inetpub\nntpfile\drop"
'Params(10) = "msftpsvc/1/root/path d:\inetpub\ftproot"

Set WshSysEnv = WshShell.Environment("PROCESS")

For Each x In Params
ret = WSHShell.Run ("cscript.exe " & "c:\inetpub\adminscripts\adsutil.vbs SET " & x, 1, TRUE)
Next

' Verify Settings were successfully applied
If ret = 0 then

 WSHShell.PopUp "The new metabase settings have been successfully updated. The new Web Data path is d:\inetpub"
else
 WSHShell.PopUp "The Configuration changes failed. The error code is " & ret
 Wscript.Quit 1
end if
wscript.Sleep 5000

' Move Data to new location (D:\Inetpub) using xcopy.exe (this can be changed 
' from xcopy to move so the data is actually moved from current locale)

ret = WSHShell.Run ("xcopy c:\inetpub D:\Inetpub\ /s /e /q /i /h /r /k /o /x" , 1, TRUE)
If ret = 0 then
 WSHShell.PopUp "The data has been successfully moved to D:\Inetpub"
else
 WSHShell.PopUp "The data move failed. The error code is " & ret
 Wscript.Quit 1
end if

' INDEX SERVICE CONFIGURATION
' Remove comments from the next 29 lines to configure cisvc through this script
'
'' Update Web Catalog to be for D:\Inetpub
' 
''Stop Content Index Service
' 
'Set WSHShell = Wscript.CreateObject("Wscript.Shell")
' WSHShell.PopUp "Stopping Index Service..."
' 
'ret = WshShell.Run ("net stop cisvc", 1, TRUE)

'If ret = 0 then
' chgeCat()
'else
' WSHShell.PopUp "Content Index service failed to stop successfully. The error code is " & ret
' Wscript.Quit 1
'end if 
' 
'Function chgeCat()
'Set WshShell = WScript.CreateObject("WScript.Shell")
' 
''Delete Catalogs
'WshShell.RegDelete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex\Catalogs\Web\"  

' Delete Web Catalog.
'WshShell.RegDelete "HKLM\SYSTEM\CurrentControlSet\Control\ContentIndex\Catalogs\System\"  

' Delete System Catalog.
' 
''Modify existing Web catalog entry
'WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\ContentIndex\Catalogs\Web\Location", "D:\Inetpub"
'WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\ContentIndex\Catalogs\Web\IsIndexingW3Svc", 1, "REG_DWORD"
' 
'end function

'Start Services (WWW, SMTP, CISVC, NNTP, MSFTPSVC)

Set WSHShell = Wscript.CreateObject("Wscript.Shell")
 WSHShell.PopUp "Attempting to restart stopped Services..."

Params2(0) = "w3svc"
Params2(1) = "smtpsvc"
'Params2(2) = "cisvc"
'Params2(3) = "nntpsvc"
'Params2(4) = "msftpsvc"

For Each x In Params2
 ret = WshShell.Run ("net start " & x, 1, TRUE)
 wscript.Sleep 5000
Next

If ret = 0 then
 WSHShell.PopUp "Services were started successfully, modifications complete"
else
 WSHShell.PopUp "One or more services fail to start successfully. The error code is " & ret
 Wscript.Quit 1
end if