У Jane Doe нет сетевого
У Jane Doe нет сетевого домашнего каталога, поэтому ее шаблоны должны храниться в ее профиле. В сеансе Джейн, переменная %HOMEDRIVE% указывает на C, а %HOMEPATH% указывает на \WTSRV\Profiles\Jane.Doe. Опять, мы не можем использовать переменные окружения в ключах реестра, поэтому у нас нет легкого способа сылаться на каталог профиля Джейн.
Администратор установил в скрипте ROOTDRIVE=W:, поэтому USRLOGON.CMD подключает W напрямую к каталогу профиля Jane, и мы можеи использовать в реестре W:\.
В примере с Джо пришлось использовать обходной путь, поскольку NT 4.0 не может отображать сетевой драйв на подкаталог папки общего доступа, поэтому
Net Use H: \\Server01\Share\Directory
подключит H к \\Server01\Share. Но WS2K3 может отображать подкаталог, что позволяет использовать домашний каталог в ROOTDRIVE.
Однако, без модификации USRLOGON.CMD всегда сбрасывает текущее значение ROOTDRIVE перед выполнением команды SUBST, поэтому он не получает преимущества от расширенных возможностей переназначения драйвов в WS2K3. Зачем нужны оба драйва, которые указывают на один и тот же каталог? Лучше изменить USRLOGON.CMD так, чтобы он использовал преимущества WS2K3.
Подробнее о ROOTDRIVE см. статью Microsoft “How and why ROOTDRIVE is used on Windows Terminal Server”
Допустим, вы используете сетевые домашние каталоги и назначили их на драйв H. Если вы установили ROOTDRIVE тоже на H, то вы можете избежать назначения двух драйвов. Ниже показаны изменения, которые вы можете сделать в USRLOGON.CMD (изменения выделены красным)
Cd /d %SystemRoot%\"Application Compatibility Scripts"Call RootDrv.CmdIf "A%RootDrive%A" == "AA" goto doneREM If the user has a network Home Directory already mapped REM on the ROOTDRIVE, we do not need to do anything.if /I "%rootdrive%" == "%homedrive%" goto NoSubst:DoSubstNet Use %RootDrive% /D >NUL: 2>&1Subst %RootDrive% "%HomeDrive%%HomePath%"if ERRORLEVEL 1 goto SubstErrgoto AfterSubst:SubstErrSubst %RootDrive% /d >NUL: 2>&1Subst %RootDrive% "%HomeDrive%%HomePath%":AfterSubst
:NoSubst
Если вы не инсталлируете приложения, требующие скриптов совместимости, то ROOTDRIVE никогда не будет создан, а процесс входа существенно упростится.
После установки ROOTDRIVE, скрипт USRLOGON.CMD вызывает любые установленные скрипты совместимости:
Rem Invoke each Application Script. Application Scripts are automaticallyRem added to UsrLogn2.Cmd when the Installation script is run.Rem If Not Exist %SystemRoot%\System32\UsrLogn2.Cmd Goto Cont1Cd LogonCall %SystemRoot%\System32\UsrLogn2.Cmd:Cont1:Done
При установке скрипта совместимости, его вызов добавляется в USRLOGN2.CMD, чтобы все скрипты совместимости могли вызываться без модификации USRLOGON.CMD.