To keep your operating system completely separate from all the web stuff, it is advisable to move inetpub directory off the root of a
%SystemDrive% to a completly different drive.
In these sample I am moving IIS from C:\inetpub to x:\inetpub. Adjust this to your needs.
Steps described here were tested on Windows 7 IIS 7.5 and Windows 2008 Server R2 IIS 7.5.
Check if your http://localhost/ is working before proceeding.
-01- Stop all IIS-related services
Stop services related to IIS:
– FTP (if installed)
– IIS Admin
– SMTP (if installed)
– Windows Process Activation (will stop all other IIS services)
– WWW (will be stopped by stopping previous service)
-02- Move the Entire inetpub Directory
You would need to take ownership for couple of files away from from NT Service\TrustedInstaller.
On Windows 7 I even had to reboot into a parallel install and take ownership for two files to be able to move the folder. On Windows 2008 Server R2 no restart was necessary.
-03- Make Required Registry Modifications
For x32 machines you only need these two:
REG ADD HKLM\SOFTWARE\Microsoft\InetStp /v PathWWWRoot /t REG_EXPAND_SZ /d X:\inetpub\wwwroot /f
REG ADD HKLM\System\CurrentControlSet\Services\WAS\Parameters /v ConfigIsolationPath /t REG_SZ /d X:\inetpub\temp\appPools /f
For x64 systems one additional modification is needed:
REG ADD HKLM\SOFTWARE\Wow6432Node\Microsoft\InetStp /v PathWWWRoot /t REG_EXPAND_SZ /d X:\inetpub\wwwroot /f
-04- Make Modifications to IIS Configuration File
First backup file applicationHost.config in %WinDir%\System32\inetsrv\config\ directory, and only then proceed.
Open file in Notepad:
in Notepad. Here you search for %SystemDrive%\inetpub and replace with your new inetpub location string.
This method allows you to make changes to existing settings. But now we need to add a new setting, because default values are no longer valid. To do that, we will use a different approach:
%windir%\system32\inetsrv\appcmd set config -section:system.applicationhost/configHistory -path:X:\inetpub\history
-05- Restart IIS Services and Test
Note that Windows Process Activation service must start for WWW Service to start.
Test and see, if http://localhost/ is still works.
You are done. Please ignore old sections bellow this point.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
-0X- Modify IIS Meta Database (Please ignore – no longer required)
Make meta-database modifications from admin elevated command prompt. This step relies on a script file adsutil.vbs that is only installed, if you add IIS 6 Compatibility Feature.
Values in IIS meta-database are arranged in a series of sub-folders. Command adsutil.vbs ENUM allows to list all sub-folders and all the values at a given level.
List all the values that you might need to update in each directory before updating:
cscript X:\inetpub\adminscripts\adsutil.vbs ENUM
cscript X:\inetpub\adminscripts\adsutil.vbs ENUM /W3SVC
cscript X:\inetpub\adminscripts\adsutil.vbs ENUM /W3SVC/1/ROOT
Start updating found values. On my system 3 entries require an update : -01- AspDiskTemplateCacheDirectory, -02- LogFileDirectory and -03- path.
cscript X:\inetpub\adminscripts\adsutil.vbs set w3svc/AspDiskTemplateCacheDirectory “X:\inetpub\temp\ASP Compiled Templates”
cscript X:\inetpub\adminscripts\adsutil.vbs set w3svc/LogFileDirectory “X:\inetpub\logs\LogFiles”
cscript X:\inetpub\adminscripts\adsutil.vbs set w3svc/1/root/path “X:\inetpub\wwwroot”
Note that your entries could be different, if you renamed your default site or assigned it a different ID. You will have more entries to update, if you have several sites defined prior to inetpub movement.
I am sorry, I am new in this forum. I am IT manager. In all previous version I have always moved website folder c:\inetpub\wwwroot to a NOT default path. I did it with no problems till to W2K12.
now I am setting up W2K16 and it looks it is impossible.
I found a “MoveIIS.bat” provided by MS but it is not tested on 2K16: I tried it but it doesn’t work
Have you got any suggestions?
Works with Server 2016 IIS 10.
Great article….this worked fine on Server 2012 R2 IIS 8 also thx
This article is also helpful:
How to specify a custom location for the isolated configuration file in Internet Information Services 7.0
You mean I don’t have to pay for expert adivce like this anymore?!