Microsoft KB Archive/194916

= Restarting Web Services and Scheduled Tasks with a Batch File =

Article ID: 194916

Article Last Modified on 3/30/2004

-

APPLIES TO


 * Microsoft Internet Information Server 1.0
 * Microsoft Internet Information Server 2.0
 * Microsoft Internet Information Server 3.0
 * Microsoft Internet Information Server 4.0

-



This article was previously published under Q194916



SUMMARY
This article describes how to shut down the Internet Information Server (IIS) services while other scheduled tasks are running.



MORE INFORMATION
The following instructions and batch file allow you to schedule IIS to restart on a daily basis at 1:00A.M. It will also keep a log to show when the services were stopped and started in your %SystemRoot% folder. By modifying the remark (REM) sections of the batch file you can specify other commands to run while IIS is stopped.

 Log on to the Windows NT computer as an administrator. Make sure that the Task Scheduler service is set to automatically run by performing the following steps:

 Click the Start button, point to Settings, click Control Panel, and then double-click Services. Scroll to "Task Scheduler." If the status does not say running, then click the Start button. Click the Startup button. Make sure the Startup Type is set to Automatic, and then click OK.</li> Click Close to exit the Services dialog box.</li></ol> </li> Open a command prompt session and type the following command:

at 1:00am /every:M,T,W,Th,F,S,Su "restart.bat"

</li>  Save the following text as a batch file named Restart.bat in your path: @echo off cls echo RESTART - A restart utility for IIS web services. echo June 1998, Microsoft Corporation. echo ****************************************>>%SystemRoot%\restart.log echo Stop Date/Time:>>%SystemRoot%\restart.log echo. | date | find /i "current">>%SystemRoot%\restart.log echo. | time | find /i "current">>%SystemRoot%\restart.log echo.>>%SystemRoot%\restart.log echo Stopping Web Services...  echo.

set MSFTPSVC=0 set NNTPSVC=0 set SMTPSVC=0 set W3SVC=0 set BROKSVC=0 set LDAPSVC=0 set MSGBLDSVC=0 set IISERROR=0

net start | find /i "FTP Publishing Service">NUL if errorlevel==1 goto NNTPSVC set MSFTPSVC=1

net start | find /i "Microsoft NNTP Service">NUL if errorlevel==1 goto SMTPSVC set NNTPSVC=1

net start | find /i "Microsoft SMTP Service">NUL if errorlevel==1 goto W3SVC set SMTPSVC=1

net start | find /i "World Wide Web Publishing Service">NUL if errorlevel==1 goto BROKSVC set W3SVC=1

net start | find /i "Site Server Authentication Service">NUL if errorlevel==1 goto LDAPSVC set BROKSVC=1

net start | find /i "Site Server LDAP Service">NUL if errorlevel==1 goto MSGBLDSVC set LDAPSVC=1

net start | find /i "Site Server Message Builder Service">NUL if errorlevel==1 goto STOPIIS set MSGBLDSVC=1

net stop iisadmin /y>>%SystemRoot%\restart.log if errorlevel==1 goto STOPERROR goto STOPPED

REM ******************** REM * Put any desired error-handling commands here. REM * For example, if you have the NT Resource Kit, REM * you could use the following command to stop REM * IIS down the hard way: REM *    KILL.EXE INETINFO.EXE REM ******************** set IISERROR=1

REM ******************** REM * Put any desired commands to run while IIS is stopped here. REM * For example, if you have the Windows NT Resource Kit, REM * you could use the following command to pause REM * the restart for one minute: REM *    SLEEP.EXE 60 REM ********************

echo >>%SystemRoot%\restart.log echo Start Date/Time:>>%SystemRoot%\restart.log echo. | date | find /i "current">>%SystemRoot%\restart.log echo. | time | find /i "current">>%SystemRoot%\restart.log echo.>>%SystemRoot%\restart.log echo Starting web services...  echo.

if %W3SVC%==0 goto NOW3SVC net start W3SVC>>%SystemRoot%\restart.log if errorlevel==1 set IISERROR=1

if %MSFTPSVC%==0 goto NOMSFTPSVC net start MSFTPSVC>>%SystemRoot%\restart.log if errorlevel==1 set IISERROR=1

if %NNTPSVC%==0 goto NONNTPSVC net start NNTPSVC>>%SystemRoot%\restart.log if errorlevel==1 set IISERROR=1

if %SMTPSVC%==0 goto NOSMTPSVC net start SMTPSVC>>%SystemRoot%\restart.log if errorlevel==1 set IISERROR=1

if %BROKSVC%==0 goto NOBROKSVC net start BROKSVC>>%SystemRoot%\restart.log if errorlevel==1 set IISERROR=1

if %LDAPSVC%==0 goto NOLDAPSVC net start LDAPSVC>>%SystemRoot%\restart.log if errorlevel==1 set IISERROR=1

if %LDAPSVC%==0 goto NOMSGBLDSVC net start MSGBLDSVC>>%SystemRoot%\restart.log if errorlevel==1 set IISERROR=1

if %IISERROR%==0 goto EXIT

echo RESTART ERROR...>>%SystemRoot%\restart.log echo One or more of the services could not be  restarted.>>%SystemRoot%\restart.log echo Please check the Event Viewer logs for more information.>>%SystemRoot%\restart.log

REM ******************** REM * Put any desired error-handling commands here. REM * For example, if you have the Windows NT Resource Kit, REM * you could use the following command to restart REM * the server in two minutes: REM *    SHUTDOWN.EXE /L /R /T:120 /Y REM ********************

set MSFTPSVC= set NNTPSVC= set SMTPSVC= set W3SVC= set BROKSVC= set LDAPSVC= set MSGBLDSVC= set IISERROR= </li></ol>

Keywords: kbhowto KB194916

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.