При переходе на Windows 2000 администраторы обращают внимание не только на то, совместимы ли с новой операционной системой имеющиеся аппаратные компоненты. Наряду с этим приходится испытывать программные средства, установленные на машинах по всему предприятию. Многие системные администраторы настаивают на том, чтобы компания отряжала одного или нескольких пользователей из числа наиболее опытных для работы с программным обеспечением в тестовой лаборатории. Если программы успешно запускаются, это вовсе не означает, что все работает корректно. Проявляйте бдительность. Необходимо тщательно исследовать поведение каждой функции любой прикладной программы.
Одна из наиболее вероятных проблем состоит в том, что многие приложения оснащены функциями, которые "не желают" работать в среде Windows 2000. Это может быть, к примеру, какая-нибудь программа учета, ориентированная на конкретную отрасль промышленности. Такая беда может приключиться даже с программами Microsoft, и причина, как правило, заключается в том, что в системном реестре Windows 2000 используется более четкая структура уровней разрешений (скажем, программный продукт, выполняемый в среде Windows NT, может не получить доступ к реестру Windows 2000 при вызове той или иной функции). Пример: средство проверки правописания пакета Microsoft Office 97 не функционирует на рабочем столе Windows 2000, потому что эта функция не получает доступа к нужному разделу реестра. В данном случае проблема решается так: с помощью программы regedt32.exe следует открыть раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared\Tools\Proofing Tools\Spelling и отредактировать запись Users permissions - разрешить пользователям устанавливать значения и создавать разделы (Set Value and Create subkeys). В случае подобных затруднений с другими приложениями следует обращаться в корпорацию Microsoft или искать решение на Web-странице Microsoft Knowledge Base (База знаний Microsoft) по адресу http://search.support.microsoft.com/kb/c.asp.
КАК РЕШАТЬ ПРОБЛЕМЫ НЕСОВМЕСТИМОСТИ
Если какое-то из приложений в среде Windows 2000 выполняется с ошибками (а то и вовсе не функционирует), задача администратора в том, чтобы "обмануть" программу. Она не должна "догадаться", что работает в непривычной для себя операционной среде.
Выполнить подобный трюк можно с помощью реализованного в системе Windows 2000 средства Application Compatibility (apcompat.exe). С помощью этого модуля можно «убедить» программы, проверяющие компоненты на совместимость с ОС, в том, что они выполняются под управлением более ранней версии операционной системы. И надо сказать, что apcompat.exe чаще всего успешно справляется со своей задачей. Я, например, с помощью этого модуля быстро «укротила» две программы, которые поначалу никак не хотели работать. В сообщениях об ошибке говорилось, что выполнение обоих приложений требует установки пакета NT Service Pack 3 (SP3). Стоило мне запустить apcompat.exe, как обе программы заработали. Вся операция заняла менее 2 минут.
УСТАНОВКА ПРОГРАММЫ APCOMPAT.EXE
Чтобы установить программу apcompat.exe, нужно открыть компакт-диск Windows 2000 и затем папку \support\tools. Выполните двойной щелчок на объекте support.cab и отбуксируйте файл apcompat.exe на рабочий стол. Можно выполнить процедуру установки средств Windows 2000 целиком, но предлагаемый метод занимает меньше времени. Затем нужно отбуксировать на рабочий стол w2rksupp.chm, значок справочного файла для всех инструментов папки \support\tools. Этот файл будет открываться после щелчка на пункте Help в диалоговом окне программы apcompat.exe.
ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ПРОГРАММЫ APCOMPAT.EXE
Apcompat.exe можно управлять как с помощью графического интерфейса, так и из командной строки. Управление графической версией программы apcompat.exe осуществляется следующим образом. Запустите файл apcompat.exe. На экране появится диалоговое окно, см. Экран 1. Введите путь к приложению, которое хотите проверить на совместимость, или щелкните на кнопке Browse, если не знаете, где хранится исполняемый файл. Нажмите OK. Если программа запускается, и все ее функции работают нормально, прибегать к помощи apcompat.exe нет необходимости. Поэкспериментируйте с программой установки, используя программу Setup.exe в модуле apcompat.exe.
Если же программа не работает, введите в диалоговом окне Application Compatibility путь к ней и выберите нужные параметры. Иногда выдаваемое программой сообщение об ошибке подсказывает, какой вариант опробовать прежде других. Так, может появиться сообщение о том, что для выполнения программы требуется более ранняя версия Windows. Эта ошибка возникает потому, что в то время, когда использовалась ранняя версия ОС, программисты зафиксировали информацию об этом в исполняемых файлах. Еще одно часто встречающееся сообщение об ошибке извещает пользователя, что для выполнения программы не хватает места на диске - хотя вы прекрасно знаете, что на диске имеется несколько гигабайт свободного пространства. Такое сообщение может появиться в том случае, когда Windows 2000 не использует тот тип данных, с которым прикладная программа работает при считывании имеющегося свободного пространства.
Надо сказать, что сама по себе проверка версии ОС не означает, что данная прикладная программа не будет запускаться под Windows 2000. Проблема скорее в том, что код приложения не допускает того ответа на запрос, который выдает Windows 2000. И как поступить в таком случае? Надо "убедить" программу, что она выполняется не в Windows 2000. Для этого достаточно выбрать переключатель, соответствующий имени операционной системы, под управлением которой программа функционировала ранее, и нажать OK. Теперь на запрос системы о версии ОС программа будет получать тот ответ, который ее вполне устраивает. Чтобы обеспечить такой исход, Windows 2000 создает в системном реестре те записи, которые программе "хотелось бы" увидеть при опросе реестра исполняемым файлом в процессе запуска приложения.
Менеджер динамического распределения памяти Windows 2000 распределяет память между API подсистем, исполняемыми компонентами и драйверами устройств, а также автоматически увеличивает и сокращает по мере необходимости объем памяти, выделяемой для тех или иных программ. Отключение менеджера динамического распределения памяти позволяет избежать конфликтов при обращении к памяти вовлеченных в конфликт программ. Но не следует забывать и о том, что при этом теряется целый ряд возможностей Windows 2000, поскольку эта функция является частью усовершенствованной системы управления памятью.
Когда программы обращаются к менеджеру динамического распределения памяти, ОС выполняет внутренние проверки данных (validation checks), результатом которых является или беспрепятственное продолжение процессов, или извещение об ошибке. Если же программа не обращается к менеджеру динамического распределения памяти, то нет и проблемы. Затруднения возникают в тех случаях, когда программа обращается к функциям работы с памятью, конфликтующим с менеджером динамического распределения памяти.
Настройка проверки дискового пространства. Возможно, что при запросе и ответе о наличии свободного дискового пространства прикладная программа оперирует типом данных, который в Windows 2000 не используется. Тип данных определяется языком программирования, но сам процесс определения количества дискового пространства во всех случаях один и тот же. Прикладная программа направляет соответствующий запрос, при этом для хранения ответа она резервирует определенный тип данных (предполагается, что операционная система предоставит данные именно в этом формате). Так, в числе типов данных, принятых в языках Visual Basic (VB) и C, могут быть Real, Float, Integer (Int) или Double Integer. Даже в прикладных программах на базе Microsoft SQL Server используются особые типы данных: Tiny, Integer или Bigint.
Если прикладная программа использует тип данных, несовместимый с Windows 2000, она может получить ответ, что на диске имеется 1,4 Гбайт свободного пространства и истолковать его неправильно. Когда типы данных системы Windows 2000 и прикладной программы не совпадают, приложение может ошибочно заключить, что на диске недостаточно свободного пространства для установки, запуска программы или выполнения какой-либо операции. Не забывайте, что до появления Windows 2000 систем, оснащенных средствами для работы с дисками большой емкости, было очень мало. Эту проблему можно решить, установив в диалоговом окне Application Compatibility флажок Correct disk space detection for 2-GB+ drives («Коррекция средств определения количества дискового пространства для накопителей емкостью свыше 2 Гбайт»).
Как использовать программу apcompat.exe из командной строки.Если в сообщении об ошибке указано, почему прикладная программа не работает в среде Windows 2000, запуск apcompat.exe из командной строки позволяет решить проблему быстрее, нежели через графический интерфейс этой программы. В командной строке введите текст:
apcompat [-v
[-x
Параметр -v version name обозначает имя операционной системы, которое необходимо передать программе. Для обозначения имени версии используются следующие соглашения: 1 соответствует NT 4.0 с пакетом SP3, 2 - NT 4.0 с пакетом SP4, 3 - NT 4.0 с пакетом SP5, 4 - Windows 98, а 5 - Windows 95.
Параметр -x program path указывает путь и имя исполняемого файла тестируемой программы, а -d отключает программу динамического управления памятью. Параметр -t определяет каталог C:\temp как временную папку программы. Параметр -g корректирует средства определения свободного дискового пространства, а -k записывает установки в реестр.
Приведу пример из моей практики. Впервые запустив программу MedAccnt (это пакет для подготовки счетов дебиторов в медицинских учреждениях) после модернизации NT 4.0 с пакетом SP3 до уровня Windows 2000, я получила сообщение об ошибке: This program requires Windows NT («Для запуска программы требуется Windows NT»). Я ввела команду
apcompat -v 1 -x c:\meedaccntmedaccnt.exe
и программа запустилась без ошибок. Я вновь ввела эту команду и добавила ключ -k, чтобы установки были записаны в реестр и, таким образом, сохранены. Потом я позвонила поставщикам этой прикладной программы и предложила им не фиксировать в ее тексте версию ОС.
Хочу дать один совет. Когда будете использовать apcompat.exe из командной строки, применяйте параметры по одному. Использование двух параметров одновременно может привести к множеству перестановок и комбинаций. Ну а если без двух параметров никак не обойтись, удобнее работать через графический интерфейс программы.
ПРОВЕРКА РАЗ, ПРОВЕРКА ДВА, ПРОВЕРКА ТРИ
При работе с программой apcompat.exe не жалейте времени на тестирование всех программных средств - будь то изделие собственной разработки, продукт независимой компании или унаследованное приложение. В ходе испытаний программ на совместимость придерживайтесь следующих правил:
2. Наряду с тестированием "чистых" сетей Windows 2000 проведите испытания приложения на клиентских машинах, модернизированных от NT и Windows 9x.
3. Протестируйте приложения на серверах, которые были модернизированы с уровня NT, а также на серверах, где Windows 2000 была установлена недавно. Кроме того, испытайте серверное приложение со стороны клиентов, представляющих все платформы, имеющиеся на предприятии, пока не будет завершен полный переход на Windows 2000.
4. Протестируйте базы данных в режиме одновременных обращений большого количества клиентов, работающих на разнородных платформах.
5. Протестируйте возможности печати для клиентов, работающих на разнородных платформах.
6. Если среди используемого программного обеспечения имеются унаследованные программы, а также приложения, построенные с учетом специфических потребностей или разработанные специалистами предприятия, создайте для их испытаний максимально "суровые" тесты.
Может показаться, что при тестировании в строгом соответствии с изложенными рекомендациями у этой работы не будет конца. Однако имейте в виду, что затраченное на испытания время - сущая безделица по сравнению с теми проблемами, которые могут появиться, если в один прекрасный день руководитель фирмы не сможет получить текущий балансовый отчет. Программа apcompat.exe - это первая линия обороны системного администратора в трудный период развертывания Windows 2000.
Кэти Ивенс - Редактор Windows 2000 Magazine. Участвовала в написании более 40 книг по компьютерной тематике, включая «Windows 2000: The Complete Reference» (Osborne/McGraw-Hill). С ней можно связаться по адресу: kivens@win2000mag.com.