Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...

Приложение D: Скрипты

Текущий рейтинг: 2.57 (проголосовало 7)
 Посетителей: 3633 | Просмотров: 4950 (сегодня 0)  Шрифт: - +
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

Опубликована: 17.01.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.