USRLOGON.CMD Ниже приведен измененный USRLOGON.CMD, использующий возможности Win2K отображать домашний каталог в папку пользователя. Удаления выделены ЗАЧЕРКИВАНИЕМ, а добавления - ЖИРНЫМ шрифтом. Для использования скрипта вы должны установить значение ROOTDRIVE на букву, используемую для домашних каталогов пользователей.
@Echo Off
Call "%SystemRoot%Application Compatibility ScriptsSetPaths.Cmd"
If "%_SETPATHS%" == "FAIL" Goto Done
Rem
Rem This is for those scripts that don`t need the RootDrive.
Rem
If Not Exist "%SystemRoot%System32Usrlogn1.cmd" Goto cont0
Cd /d "%SystemRoot%Application Compatibility ScriptsLogon"
Call "%SystemRoot%System32Usrlogn1.cmd"
:cont0
Rem
Rem Determine the user`s home directory drive letter. If this isn`t
Rem set, exit.
Rem
Cd /d %SystemRoot%"Application Compatibility Scripts"
Call RootDrv.Cmd
If "A%RootDrive%A" == "AA" End.Cmd
Rem
Rem Map the User`s Home Directory to a Drive Letter
Rem
Rem
Rem Subst the user’s profile directory onto the ROOTDRIVE
Rem if it is not already mapped as the Home Directory
Rem
if /I "%rootdrive%" == "%homedrive%" goto NoSubst
:DoSubst
Net Use %RootDrive% /D >NUL: 2>&1
Subst %RootDrive% "%HomeDrive%%HomePath%"
if ERRORLEVEL 1 goto SubstErr
goto AfterSubst
:SubstErr
Subst %RootDrive% /d >NUL: 2>&1
Subst %RootDrive% "%HomeDrive%%HomePath%"
:AfterSubst
:NoSubst
Rem
Rem Invoke each Application Script. Application Scripts are automatically
Rem added to UsrLogn2.Cmd when the Installation script is run.
Rem
If Not Exist %SystemRoot%System32UsrLogn2.Cmd Goto Cont1
Cd Logon
Call %SystemRoot%System32UsrLogn2.Cmd
:Cont1
:Done
TSSHUTDN Wrapper
TSSHUTDN.EXE - это утилита, используемая для выключения или перезагрузки терминального сервера. Эта утилита предупреждает пользователей о выключении сервера, давая им возможность сохранить работу. Затем она запускает для каждого сеанса команду logoff и выключает сервер. К сожалению, эта утилита выключает, а не перезагружает сервер.
Я написал обертку для предотвращения случайных выключений. Скопируйте этот код и сохраните в формате VBS в каталоге SYSTEM32. Для запуска скрипта введите с командной строки имя файла VBS (например, я назвал этот файл TSSHUTDOWN.VBS):
` AUTHOR: Greyson Mitchem, The Definitive Guide to WS2K3 TS
` This VBS file is a safety wrapper for the native
` TSSHUTDN.EXE that shuts down or reboots a TS.
` This script will collect the parameters for
` the tsshutdn command.
set oShell=CreateObject("Wscript.Shell")
set oNet=CreateObject("Wscript.Network")
returnkey=msgbox("This script collects the parameters needed to"&VBCRLF&"correctly shutdown or reboot a Terminal Server."&VBCRLF&"You may abort the process at any time by hitting CANCEL."&VBCRLF&VBCRLF&"Do you wish to continue?", VBOKCancel + VBInforamtion, "TS Shutdown")
IF returnkey=VBCancel THEN Wscript.Quit(1)
Server=InputBox("Enter the name of the server you wish to Reboot/Shudown:", "Server Name", oNet.ComputerName)
if trim(Server)="" then Wscript.Quit(1)
bRestart=MSGBox("Do you wish to have the server reboot?"&VBCRLF&VBCRLF&"Clicking NO will PowerDown the system without rebooting.", VBYesNoCancel + vbQuestion, "Reboot or PowerDown")
Select Case bRestart
Case vbYes
sOption="/REBOOT"
Case vbNo
sOption="/POWERDOWN"
Case vbCancel
Wscript.Quit(1)
End Select
Wait=InputBox("Please enter the number of seconds to give users to finish working before forcibly logging them off:", "Wait Time", "60")
if trim(Wait)="" then Wscript.Quit(1)
Delay=InputBox("Please enter the number of seconds to wait after all users have logged off before shutting down the system:", "Wait Time", "30")
if trim(Delay)="" then Wscript.Quit(1)
` All Parameters have been collected. Now we build the comand line.
ShutdnCMD="tsshutdn.exe "&wait&" /server:"&Server&" "&sOption&" /Delay:"&Delay&" /v"
oShell.RUN(ShutdnCMD)
Wscript.Quit(0)
Если вы хотите создать ссылку, то используйте команду
wscript %systemroot%system32
Скрипт перезагрузки
Далее приведен скрипт регулярной перезагрузки сервера. Частота перезагрузки сервера зависит от ваших особенностей - числа пользователей, среды перемещаемых профилей, установленных приложений и т.п. Для правильного запуска скрипта вам необходимы два дополнительных файла - Sleep.EXE и текстовый файл yes.txt, содержащий букву Y.
REM
REM Sending a message to any currently logged-on users
REM warning them that a maintenance reboot will occur
REM in 10 minutes.
REM
change logon /disable
msg * Please save your work and log off. Maintenance reboot in 10 minutes.
REM Pausing for 5 minutes
sleep 300
REM 5 minute warning
msg * Save your work now and log off. Maintenance reboot in 5 minutes
REM Pausing for 5 minutes
sleep 300
REM 30 second warning
msg * Maintenance reboot in progress. You will be logged off in 30 seconds
REM Pausing for 30 seconds
sleep 30
REM Logging all users off
logoff rdp-tcp < yes.txt
REM Stopping the Print Spooler service and deleting any
REM orphaned files.
net stop spooler
del %systemroot%system32spoolprinters*.* /q
REM Rebooting the TS
tsshutdn /REBOOT