Первая часть USRLOGON.CMD вызывает скрипт SETPATHS.CMD
REM USRLOGON.CMD@Echo OffCall "%SystemRoot%\Application Compatibility Scripts\SetPaths.Cmd"If "%_SETPATHS%" == "FAIL" Goto Done
Скрипт SETPATHS.CMD проверяет, что ключи реестра для пользовательского окружения находятся на месте. Ключи реестра для текущего пользователя находятся в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders, а ключи для всех пользовательских переменных находятся в таком же подключе в HKEY_LOCAL_MACHINE. Если ни одна из этих переменных не определена, появляется предупреждающее сообщение и выполнение USRLOGON.CMD прекращается. В следующей таблице показаны переменные окружения:
Компонент среды |
Значение реестра |
All Users: Startup |
COMMON_STARTUP |
All Users: Start Menu |
COMMON_START_MENU |
All Users: Start Menu\Programs |
COMMON_PROGRAMS |
Current User: Start Menu |
USER_START_MENU |
Current User: Startup |
USER_STARTUP |
Current User: Start Menu\Programs |
USER_PROGRAMS |
Current User: My Documents |
MY_DOCUMENTS |
Current User: Templates |
TEMPLATES |
Current User: Application Data |
APP_DATA |
Затем скрипт проверяет существование скрипта USRLOGN1.CMD и если он есть, то выполняет его. По умолчанию этого скрипта нет, и он нужен лишь в том случае, если у вас есть приложение, которое требует скрипт совместимости, не использующий ROOTDRIVE. Этот тип скрипта может вносить изменения в HKEY_CURRENT_USER безотносительно к размещению файлов, специфичных для пользователя.
If Not Exist "%SystemRoot%\System32\Usrlogn1.cmd" Goto cont0Cd /d "%SystemRoot%\Application Compatibility Scripts\Logon"Call "%SystemRoot%\System32\Usrlogn1.cmd":cont0
ROOTDRIVE - это буква драйва, которую администратор зарезервировал в качестве абсолютного пути к домашнему каталогу пользователя - сетевому или локальному - который одинаков для всех пользователей..
Следующий раздел скрипта создает ROOTDRIVE. Концепция ROOTDRIVE создана потому, что большинство ключей реестра не могут ссылаться на переменные окружения. Например, MyApplication.EXE может иметь в реестре значение UserTemplates, которое определяет путь для хранения модифицируемых пользователем шаблонов. Лучшей опцией для такого маршрута было бы указание %HOMEDRIVE%%HOMEPATH%\MyTemplates, чтобы каждый пользователь мог быть направлен на свой сетевой домашний каталог (если он есть) или в профиль на терминальном сервере. Поскольку вы не можете использовать переменные окружения в значениях реестра, вам необходимо указать абсолютный маршрут, который можно было бы разрешить для всех пользователей. Поэтому на терминальном сервере вы определяете ROOTDRIVE.