Jump to content

Convert .bat to .VBS - Move the Windows 7 IIS7 InetPub folder to alternate location.


Recommended Posts

Posted

I've been using this for some time and it works but I'd like to get this converted to a vbs script. I think it might be usefule to a lot of people?

 

The IIS 7 mover file:

 

@echo off
setlocal
set MOVETO=d:\winids\

echo.
echo.
echo ===============================================================================
echo Starting the move of the IIS7 32bit root directory from %systemdrive%\ to %MOVETO%.
echo ===============================================================================
echo.
echo.

REM Stop all IIS services
iisreset /stop

REM Copy all content 
REM /O - copy ACLs
REM /E - copy sub directories including empty ones
REM /I - assume destination is a directory
REM /Q - quiet

REM echo on, because user will be prompted if content already exists.
echo on
xcopy %systemdrive%\inetpub %MOVETO%inetpub /O /E /I /Q
@echo off
REM Move AppPool isolation directory 
reg add HKLM\System\CurrentControlSet\Services\WAS\Parameters /v ConfigIsolationPath /t REG_SZ /d %MOVETO%inetpub\temp\appPools /f

REM Move logfile directories
%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/sites -siteDefaults.traceFailedRequestsLogging.directory:"%MOVETO%inetpub\logs\FailedReqLogFiles"
%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/sites -siteDefaults.logfile.directory:"%MOVETO%inetpub\logs\logfiles"
%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/log -centralBinaryLogFile.directory:"%MOVETO%inetpub\logs\logfiles"
%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/log -centralW3CLogFile.directory:"%MOVETO%inetpub\logs\logfiles"

REM Move config history location, temporary files, the path for the Default Web Site and the custom error locations
%windir%\system32\inetsrv\appcmd set config -section:system.applicationhost/configHistory -path:%MOVETO%inetpub\history
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/asp -cache.disktemplateCacheDirectory:"%MOVETO%inetpub\temp\ASP Compiled Templates"
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/httpCompression -directory:"%MOVETO%inetpub\temp\IIS Temporary Compressed Files"
%windir%\system32\inetsrv\appcmd set vdir "Default Web Site/" -physicalPath:%MOVETO%inetpub\wwwroot
%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode='401'].prefixLanguageFilePath:%MOVETO%inetpub\custerr
%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode='403'].prefixLanguageFilePath:%MOVETO%inetpub\custerr
%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode='404'].prefixLanguageFilePath:%MOVETO%inetpub\custerr
%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode='405'].prefixLanguageFilePath:%MOVETO%inetpub\custerr
%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode='406'].prefixLanguageFilePath:%MOVETO%inetpub\custerr
%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode='412'].prefixLanguageFilePath:%MOVETO%inetpub\custerr
%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode='500'].prefixLanguageFilePath:%MOVETO%inetpub\custerr
%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode='501'].prefixLanguageFilePath:%MOVETO%inetpub\custerr
%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode='502'].prefixLanguageFilePath:%MOVETO%inetpub\custerr

REM Changes the length of the query string is too long error 404.15 from 2048 to 4096
%windir%\system32\inetsrv\appcmd set config /section:requestFiltering /requestLimits.maxQueryString:4096

REM Make sure Service Pack and Hotfix Installers know where the IIS root directories are
reg add HKLM\Software\Microsoft\inetstp /v PathWWWRoot /t REG_SZ /d %mOVETO%\inetpub\wwwroot /f 
reg add HKLM\Software\Microsoft\inetstp /v PathFTPRoot /t REG_SZ /d %MOVETO%\inetpub\ftproot /f

REM Restart all IIS services
iisreset /start
echo.
echo.
echo ===============================================================================
echo Finished Moving the IIS7 32bit root directory from %systemdrive%\ to %MOVETO%.
echo ===============================================================================
echo.
echo.
endlocal

 

The only thing I've been unable to do is have the script remove the original INetPub folder becuse it's a system folder and requires a bit more processing to get it removed.

 

Here is what i've been doing to remove the original Windows 7 INetPub folder after it has been moved to an alternate location:

 

Open an Explorer window and navigate to the root of the 'C:' drive, right-click on the 'inetpub' folder, in the drop down highlight and left-click 'Properties', left-click the 'Securities' tab, left-click 'Advanced', left-click the 'Owner' tab, left-click 'Edit', in the 'Change owner to:' selection box left-click and highlight the account that is being used to install the WinIDS (account MUST have administrative privileges), in the 'Replace owner on subcontainers and objects' radio box left-click and check, left-click 'OK', a 'Windows Security' warning appears left-click 'OK', left-click 'OK', and left-click 'OK'.

 

At the file and folder listings right-click on the 'inetpub' folder, left-click 'Properties', left-click the 'Security' tab, left-click 'Advanced', left-click 'Change Permissions...', left-click and check the 'Replace all child object permissions with inheritable permissions from this object' radio box, left-click 'OK', a 'Windows Security' warning appears left-click 'Yes', left-click 'OK', left-click 'OK', in the file and folder listings right-click the 'inetpub' folder, in the drop down highlight and left-click 'Delete', and a 'Delete Folder' warning message appears left-click 'Yes'.

 

Would it be possible to add this routine to the VBS script as the last process, or add it to the batch file?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...