Настройка Citrix Metaframe под Windows 2000 Termanal Services

Скрипты совместимости приложений


Скрипты совместимости приложений (Application Compatibility Scripts -ACS) помогают настроить окружение для приложений, не написанных специально для многопользовательской среды. Microsoft предлагает несколько готовых скриптов при установке Terminal Services. Эти скрипты выполняют необходимые изменения для большинства популярных приложений. Они перечислены в таблице.



cofc8ins.cmd Corel WordPerfect Suite 8
coffice7.cmdCorel Office 7
coffice8.cmdСкрипт установки Corel WordPerfect Suite 8 для администратора
diskpr20.cmdDiskKeeper 2.0
eudora4.cmdEudora Pro 4.0
msexcl97.cmdСамостоятельный Excel 97
msproj95.cmdMicrosoft Project 95 Multiuser Application Tuning
msproj98.cmdMicrosoft Project 98 Multiuser Application Tuning
mssna30.cmdSNA Server 3.0
msvs6.cmdMicrosoft Visual Studio 6.0
msword97.cmdСамостоятельный Microsoft Word 97
netcom40.cmdNetscape Communicator 4
netnav30.cmdNetscape Navigator 3.x
odbc.cmdODBC. Всегда запускайте этот скрипт и переводите систему в режим инсталляции до создания любого источника данных
ofc43ins.cmdMS Office 4.3 - отредактируйте и запустите этот скрипт
office43.cmdMS Office 4.3
office95.cmdMicrosoft Office 95 - обязательно прочтите инструкции в конце.
office97.cmdMicrosoft Office 97
outlk98.cmdOutlook 98
pchtree6.cmdPeachTree Complete Accounting 6.0
pwrbldr6.cmdPower Builder 6.0
sna40cli.cmdSNA Client 4.0
sna40srv.cmdSNA Server 4.0
ssuite9.cmdLotus SmartSuite 9
ssuite97.cmdLotus SmartSuite 97
visio5.cmdVisio 5.0
winmsg.cmdWindows Messaging

Большинство из этих скриптов помещают скрипт регистрации в каталог \Application Compatibility Scripts\logon

и вызываются из скрипта usrlogon.cmd.

Ниже приведено содержимое файла usrlogon.cmd.

@Echo Off Call "%SystemRoot%\Application Compatibility Scripts\SetPaths.Cmd" If "%_SETPATHS%" == "FAIL" Goto Done Rem Rem Это для скриптов, не требующих 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 Определяем букву драйва домашнего каталога пользователя. Rem Если она не определена, выходим. Rem Cd /d %SystemRoot%\"Application Compatibility Scripts" Call RootDrv.Cmd If "A%Rootdrive%A" == "AA" End.Cmd Rem Rem Назначить букву драйва домашнему каталогу пользователя Rem 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 Rem Rem Запускаем каждый скрипт. Application Scripts автоматически добавляются Rem к файлу UsrLogn2.Cmd при запуске скрипта установки. Rem If Not Exist %SystemRoot%\System32\UsrLogn2.Cmd Goto Cont1 Cd Logon Call %SystemRoot%\System32\UsrLogn2.Cmd :Cont1 :Done


Этот скрипт сначала вызывает setpaths.cmd
для настройки переменных окружения. Это позволяет в остальных скриптах не указывать точные маршруты.

Затем UsrLogon.cmd проверяет существование файла usrlogn1.cmd, создаваемого в том случае, когда установленный скрипт совместимости не нуждается в <RootDrive>, и, если он есть, выполняет его.

Usrlogn1.cmd вызывает другие скрипты из каталога \winnt\Application Compatibility Scripts\logon. Usrlogon.cmd затем проверяет, установлена ли переменная <RootDrive>, и в случае положительного результата проверки запускает команду subst
для подключения <RootDrive> к пользовательскому каталогу %homedrive%%homepath%. UsrLogon.cmd затем вызывает usrlogn2.cmd, который в свою очередь вызывает другие скрипты, нуждающиеся в <Rootdrive>.
ACS содержат процедуру, называемую <RootDrive>. Эта процедура разработана для компенсирования недостатка NT 4.0, которая не могла переназначить корневой каталог буквы драйва за пределами share point, как это делает команда MAP ROOT в Novell. Процедура <RootDrive> берет пользовательский <HomeShare>, обычно \\server\users\%username%, и использует его в команде subst для назначения драйва пользовательскому <HomeShare>. Используя только функции NT, пользовательский <HomeShare> назначается на w:\jsmith. С этим маршрутом было трудно настроить приложения, ссылающиеся на W:\%username%; но с помощью <RootDrive> система может взять другую букву, например, U:, и присвоить ее w:\jsmith, создавая корневой каталог "U:" на <HomeSpace>. Тогда можно легко настроить приложения, указав каталоги относительно U:\. Windows 2000 теперь может назначать корневой диск на каталог, лежащий ниже share point; это очень эффективно.

При установке нескольких ACS вам будет предложено указать букву Rootdrive путем открытия файла RootDrv2.cmd в Notepad. Указав нужную букву, закройте Notepad и сохраните файл, а затем продолжите установку. Вы можете указать ту же букву, что и для каталога пользователя, но в этом случае раскомментируйте строчки subst в файле usrlogon.cmd в каталоге \winnt\system32. Это требует, чтобы для каждого пользователя на закладке Profile его учетной записи были установлены домашний драйв и каталог.



Если указаны драйв и каталог, вызов команды subst закончится неудачей и будут сохранены настройки, указанные в AD. Если домашний драйв и каталог не указаны, ом будет присвоена правильная буква драйва, и настройки приложений будут помещены туда.
rem Net Use %RootDrive% /D >NUL: 2>&1 Subst %RootDrive% "%HomeDrive%%HomePath%" rem if ERRORLEVEL 1 goto SubstErr rem goto AfterSubst :SubstErr rem Subst %RootDrive% /d >NUL: 2>&1 rem Subst %RootDrive% "%HomeDrive%%HomePath%" :AfterSubst
Вы легко можете создать собственные скрипты совместимости для приложений, не указанных в . Просто определите требования, которые предъявляет приложение, и составьте скрипт для удовлетворения этих требований. Вот пример ACS для Attachmate's Extra Client. Это приложение требует, чтобы каждый пользователь имел каталог \extra\user. Этот скрипт запускается из Usrlogn2.cmd, который в свою очередь вызывается из usrlogon.cmd. Он проверяет Rootdrive пользователя наличие каталога \extra\user, и если этого каталога не существует, создает его, а затем копирует начальные файлы из каталога шаблонов программы.
@echo off if not exist %homedrive%%homepath%\extra\user\. goto mkdir goto end :mkdir md %homedrive%%homepath%\extra md %homedrive%%homepath%\extra\user goto copyfiles :copyfiles xcopy n:\extrawin\user %homedrive%%homepath%\extra\user /e >nul goto end :end

Содержание раздела