Приложения
Приложение A: Клиенты Terminal Services
Remote
Desktop Connection for Windows Server 2003
https://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
https://www.microsoft.com/downloads/details.aspx?FamilyID=c669fcf7-c868-4d45-95f3-f75ddd969232&DisplayLang=en
Remote
Desktop Web Connection
https://www.microsoft.com/downloads/details.aspx?FamilyID=e2ff8fb5-97ff-47bc-bacc-92283b52b310&DisplayLang=en
Terminal
Services Client for PocketPC (2000 and 2002)
https://www.microsoft.com/windowsmobile/resources/downloads/pocketpc/tsc.mspx
Приложение B: Важные ссылки
Windows
Server 2003 Terminal Services Technology Center
https://www.microsoft.com/windowsserver2003/technologies/terminalservices/default.mspx
Microsoft
TechNet: Terminal Services
https://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/windowsserver2003/technologies/terminal/default.asp
Terminal
Server Sizing Sample Scripts
https://www.microsoft.com/windows2000/techinfo/administration/terminal/loadscripts.asp
Windows
Server 2003 Terminal Server Licensing
https://www.microsoft.com/windowsserver2003/techinfo/overview/termservlic.mspx
Terminal
Services Client Access License Activation Web site
https://activate.microsoft.com/
Software
Update Services (SUS)
https://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]
где:
-
servername - имя запрашиваемого сервера
-
/domain:domain - имя домена (по умолчанию текущий домен)
-
/address
- включить в вывод адреса IP каждого сервера
-
/continue
- не делать пауз между экранами
Query
Session
Выводит
список всех текущих сеансов на указанном терминалном сервере
QUERY
SESSION [sessionname | username | sessionid]
[/server:servername] [/mode] [/flow] [/connect] [/counter]
где:
-
sessionname - имя запрашиваемого сеанса
-
username - имя пользователя
-
sessionid - идентификатор сеанса
-
/server:servername - имя сервера. По умолчанию - сервер, на котором вы
зарегистрировались.
-
/mode
- вывод текущих настроек
-
/flow
- вывод текщих настроек управления потоком
-
/connect
- вывод текущих настроек соединения
-
/counter
- вывод информации о счетчиках для сервера
Query
User
Выводит
список всех текущих пользователей на терминальном сервере
QUERY
USER [username | sessionname | sessionid]
[/server:servername]
где:
-
sessionname - имя запрашиваемого сеанса
-
username - имя пользователя
-
sessionid - идентификатор сеанса
-
/server:servername - имя сервера. По умолчанию - сервер, на котором вы
зарегистрировались.
Вы
можете сократить команду QUERY USER до QUSER
Query
Process
Выводит
список процессов, выполняющихся на терминальном сервере (можно
отфильтровать для сеанса).
QUERY
PROCESS [* | processid | username | sessionname |
/id:nn | programname] [/server:servername]
[/system]
где:
-
*
- все процессы
-
processed - информаци только о процессе с указаным ID
-
username - все процессы, выполняемые в контексте указанного пользователя
-
sessionname - процессы, выполняемые в контексте указанного сеанса
-
/ID:nn - процессы, выполняемые в сеансе с указанным номером ID
-
programname - процессы, порожденные указанной исполяемой программой
-
/server:servername - имя запрашиваемого сервера
-
/system
- список системных процессов
Logoff
Выход
пользователя и удаление его сеанса. Без аргументов команда закроет
сеанс текущего пользователя.
LOGOFF
[sessionid | sessionname] [/server:servername]
[/v]
где:
-
sessionid - идентификатор закрываемого сеанса
-
sessionname - имя закрываемого сеанса
-
/server:servername - севрер, на котором надо завершить сеанс. По умолчанию сервер, к
которому вы подключены.
-
/v
- вывод подробной информации о выполняемых действиях
MSG
Посылает
сообщение полюзователю или пользователям на терминальном сервере
MSG
[username | sessionname | sessionid | @filename | *] [/server:servername] [/time:seconds] [/v] [/w] message
где:
-
username - имя пользователя, которому надо отправить сообщение
-
sessionname - имя сеанса, которому надо отправить сообщение
-
sessionid - ID сеанса
-
@filename имя текстового файла, содержащего имена пользователей, сеансов или
идентификаторов сеансов, которым надо послать сообщение.
-
* - отправка сообщения всем пользователям текущего или укаазнного
сервера
-
/server:servername - указывает сервер, к которому подключены получатели сообщения
-
/time:seconds - число секунд отображения сообщения во всплывающем окне перед тем,
как оно закроет само себя
-
/v
- вывод информации во время отправки сообщения
-
/w
- окно с сообщением должно ждать, пока пользователь не щелкнет OK
-
message - текст самого сообщения
Reset
Session
Завершение
сеанса без предупреждения пользователя и без аккуратного выхода.
Может использоваться для завершения зависших сеансов.
RESET
SESSION [sessionname | sessionid] [/server:servername]
[/v]
где:
-
sessionname - имя сеанса
-
sessionid - ID сеанса
-
/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
где:
-
/update
- заполняет профиль пользователя domainname\username с
маршрутом path
-
/copy
копирует профиль Terminal Services из src_user в dest_user и, если указано, обновляет путь к профилю для пользователя dest_user маршрутом path
-
/q
вывод маршрута Terminal Services Profile для указанного пользователя
Terminal
Server Shutdown
Выключает
или перезагружает сервер, давая пользователям возможность сохранить
работу и выйти.
TSSHUTDN
[wait_time] [/server:servername] [/reboot] [/powerdown]
[/delay:logoffdelay] [/v]
где:
-
wait_time - число секунд ожидания после предупреждения пользователя до
принудительного закрытия из сеансов (по умолчанию 30 секунд).
-
/server:servername - имя выключаемого/перезагружаемого сервера
-
/reboot
- перезагрузить сервер
-
/powerdown
- выключить сервер после остановки Windows; эту функцию должен
поддерживать BIOS
-
/delay:logoffdelay - число секунд ожидания после выхода всех пользователей до
отключения (по умолчанию 30 секунд)
-
/v
- вывод подробной информации об осуществляемых дейтсвиях
Параметры
командной строки клиента Remote Desktop Client
MSTSC
[<Connection File>][/v:<server[:port]>] [/console]
[[/f[ullscreen]|[/w:<width> /h:<height>]]|[/Edit”connection
file”][/Migrate]
где:
-
<Connection
File> - файл RDP для соединения
-
/v:<server[:port]> - имя сервера или его адрес IP, а также номер порта
-
/console - подключение к консольному сеансу WS2K3
-
/f[ullscreen] - запуск клиента в полноэкранном режиме
-
/w:<width>
/h:<height> - задает высоту и ширину окна соединения
-
/edit - открывает файл RDP для редактирования
-
/Migrate - миграция старых соединений Client Connection Manager из
реестра в файлы RDP
|