Прложение A: Клиенты Terminal Services

Remote Desktop Connection for Windows Server 2003

http://www.microsoft.com/downloads/details.aspx?FamilyID=a8255ffc-4b4a-40e7-a706-cde7e9b57e79&DisplayLang=en

Если вам необходим клиент в формате MSI (для распространения через GPO), запустите с комадной строки:

msrdpcli.exe /c

Remote Desktop Connection Client for Mac

http://www.microsoft.com/downloads/details.aspx?FamilyID=c669fcf7-c868-4d45-95f3-f75ddd969232&DisplayLang=en

Remote Desktop Web Connection

http://www.microsoft.com/downloads/details.aspx?FamilyID=e2ff8fb5-97ff-47bc-bacc-92283b52b310&DisplayLang=en

Terminal Services Client for PocketPC (2000 and 2002)

http://www.microsoft.com/windowsmobile/resources/downloads/pocketpc/tsc.mspx



Приложение B: Важные ссылки

Windows Server 2003 Terminal Services Technology Center

http://www.microsoft.com/windowsserver2003/technologies/terminalservices/default.mspx

Microsoft TechNet: Terminal Services

http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/windowsserver2003/technologies/terminal/default.asp

Terminal Server Sizing Sample Scripts

http://www.microsoft.com/windows2000/techinfo/administration/terminal/loadscripts.asp

Windows Server 2003 Terminal Server Licensing

http://www.microsoft.com/windowsserver2003/techinfo/overview/termservlic.mspx

Terminal Services Client Access License Activation Web site

https://activate.microsoft.com

Software Update Services (SUS)

http://www.microsoft.com/windows2000/windowsupdate/sus/default.asp


Приложение С: Изменения в реестре

Список изменений в реестре из главы 2.

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ Policies\Explorer]
"LinkResolveIgnoreLinkInfo"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"IdleWinStationPoolCount"=dword:00000005

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\UserOverride\Control Panel\Desktop]
"AutoEndTasks"="1"
"CursorBlinkRate"="-1"
"DragFullWindows"="0"
"MenuShowDelay"="10"
"WaitToKillAppTimeout"="20000"
"SmoothScroll"=dword:00000000
"Wallpaper"="(none)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\UserOverride\Control Panel\Desktop\WindowMetrics]
"MinAnimate"="0"


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

USRLOGON.CMD

Ниже приведен измененный USRLOGON.CMD, использующий возможности Win2K отображать домашний каталог в папку пользователя. Удаления выделены ЗАЧЕРКИВАНИЕМ, а добавления - ЖИРНЫМ шрифтом. Для использования скрипта вы должны установить значение ROOTDRIVE на букву, исползуемую для домашних каталогов пользователей.

@Echo Off
Call "%SystemRoot%\Application Compatibility Scripts\SetPaths.Cmd"
If "%_SETPATHS%" == "FAIL" Goto Done

Rem
Rem This is for those scripts that don't need the RootDrive.
Rem

If Not Exist "%SystemRoot%\System32\Usrlogn1.cmd" Goto cont0
Cd /d "%SystemRoot%\Application Compatibility Scripts\Logon"
Call "%SystemRoot%\System32\Usrlogn1.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%\System32\UsrLogn2.Cmd Goto Cont1
Cd Logon
Call %SystemRoot%\System32\UsrLogn2.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\<scriptname.vbs>

Скрипт перезагрузки

Далее приведен скрипт регулярной перезагрузки сервера. Частота перезагрузки сервера зависит от ваших особенностей - числа пользователей, среды перемещаемых профилей, установленных приложений и т.п. Для правильного запуска скрипта вам нуобходимы два дополнительных файла - 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%\system32\spool\printers\*.* /q

REM Rebooting the TS
tsshutdn /REBOOT


Приложние E: Командные утилиты Terminal Services

Change User

Для переключения системы между режимами инсталляции и исполнения, используйте следующие команды.
Для переключения терминального сервера в режим инсталляции:

CHANGE USER /install

Для переключения сервера в режим исполнения:

CHANGE USER /execute

Change Logon

Разрешает или запрещает новые регистрации на терминальном сервере. Не затрагивает существующих зарегистрированных пользователей.
Для разрешения регистрации:

CHANGE LOGON /enable

Для запрещения новых регистраций:

CHANGE LOGON /disable

При перезагрузке сервера регистрация на нем разрешается автоматически, даже если перед выключением она была запрещена.

Query

Выводит список всех терминальных серверов в текущем или указанном домене:

QUERY TERMSERVER [servername] [/domain:domain] [/address] [/continue]

где:

Query Session

Выводит список всех текущих сеансов на указанном терминалном сервере

QUERY SESSION [sessionname | username | sessionid] [/server:servername] [/mode] [/flow] [/connect] [/counter]

где:

Query User

Выводит список всех текущих пользователей на терминальном сервере

QUERY USER [username | sessionname | sessionid] [/server:servername]

где:

Вы можете сократить команду QUERY USER до QUSER

Query Process

Выводит список процессов, выполняющихся на терминальном сервере (можно отфильтровать для сеанса).

QUERY PROCESS [* | processid | username | sessionname | /id:nn |  programname] [/server:servername] [/system]

где:

Logoff

Выход пользователя и удаление его сеанса. Без аргументов команда закроет сеанс текущего пользователя.

LOGOFF [sessionid | sessionname] [/server:servername] [/v]

где:

MSG

Посылает сообщение полюзователю или пользователям на терминальном сервере

MSG [username | sessionname | sessionid | @filename | *] [/server:servername] [/time:seconds] [/v] [/w] message

где:

Reset Session

Завершение сеанса без предупреждения пользователя и без аккуратного выхода. Может использоваться для завершения зависших сеансов.

RESET SESSION [sessionname | sessionid] [/server:servername] [/v]

где:

Shadow

Созает теневой сеанс для удаленного упарвления:

SHADOW [sessionname | sessionid] [/server:servername] [/v]

где:

Terminal Services Profile

Заполняет профиль Terminal Services указанного пользователя. Может использоваться для копирования содержимого профиля Terminal Services от одного пользователя к другому. Эта команда требует привилегий администратра.

TSPROF /update [/domian:domainname | /local] /profile:path username

TSPROF /copy [/domian:domainname | /local] [/profile:path] src_user dest_user

TSPROF /q [/domian:domainname | /local] username

где:

Terminal Server Shutdown

Выключает или перезагружает сервер, давая пользователям возможность сохранить работу и выйти.

TSSHUTDN [wait_time] [/server:servername] [/reboot] [/powerdown] [/delay:logoffdelay] [/v]

где:

Параметры командной строки клиента Remote Desktop Client

MSTSC [<Connection File>][/v:<server[:port]>] [/console] [[/f[ullscreen]|[/w:<width> /h:<height>]]|[/Edit”connection file”][/Migrate]

где: