При переходе на 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", нужно поэкспериментировать со значениями переключателя Operating system диалогового окна Application Compatibility. Такая проверка и следующий за ней сбой обычно имеют место при установке приложения. Возможен и другой вариант: сбой происходит при попытке запуска исполняемого файла в том случае, когда программа уже установлена на компьютере, который ранее функционировал под управлением более ранней версии ОС, позднее модернизированной до Windows 2000.

Надо сказать, что сама по себе проверка версии ОС не означает, что данная прикладная программа не будет запускаться под Windows 2000. Проблема скорее в том, что код приложения не допускает того ответа на запрос, который выдает Windows 2000. И как поступить в таком случае? Надо "убедить" программу, что она выполняется не в Windows 2000. Для этого достаточно выбрать переключатель, соответствующий имени операционной системы, под управлением которой программа функционировала ранее, и нажать OK. Теперь на запрос системы о версии ОС программа будет получать тот ответ, который ее вполне устраивает. Чтобы обеспечить такой исход, Windows 2000 создает в системном реестре те записи, которые программе "хотелось бы" увидеть при опросе реестра исполняемым файлом в процессе запуска приложения.

Управление памятью. Разработчики Microsoft внесли в процесс управления памятью ряд изменений, которые отличают Windows 2000 от более ранних версий. Если при выполнении приложения в среде Windows 2000 возникают ошибки, которых не было при работе программы под управлением более ранней версии Windows, попробуйте отключить функцию динамического распределения памяти (heap manager), чтобы высвободить память, выделенную для нее. Для этого требуется открыть файл apcompat.exe, ввести путь к нужной программе и выставить флажок Disable Heap Manager on Windows 2000.

Менеджер динамического распределения памяти Windows 2000 распределяет память между API подсистем, исполняемыми компонентами и драйверами устройств, а также автоматически увеличивает и сокращает по мере необходимости объем памяти, выделяемой для тех или иных программ. Отключение менеджера динамического распределения памяти позволяет избежать конфликтов при обращении к памяти вовлеченных в конфликт программ. Но не следует забывать и о том, что при этом теряется целый ряд возможностей Windows 2000, поскольку эта функция является частью усовершенствованной системы управления памятью.

Когда программы обращаются к менеджеру динамического распределения памяти, ОС выполняет внутренние проверки данных (validation checks), результатом которых является или беспрепятственное продолжение процессов, или извещение об ошибке. Если же программа не обращается к менеджеру динамического распределения памяти, то нет и проблемы. Затруднения возникают в тех случаях, когда программа обращается к функциям работы с памятью, конфликтующим с менеджером динамического распределения памяти.

Изменение пути к папке временного хранения файлов. Некоторые программы накладывают ограничения на число символов, используемых для хранения пути к папке временного хранения и в имени этой папки. Однако число символов, идентифицирующих папку Temp в Windows 2000, может выходить за эти рамки. Возможен, например, такой путь: \documents and settings/usrenamdelocal settings\temp. В таком случае нужно определить папку, отличную от папки Temp, принимаемой по умолчанию в среде Windows 2000 (и имеющую более короткий путь доступа, например, C:\temp), и выставить флажок Use pre-Windows 2000 Temp path («Использовать путь к папке Temp, заданный до перехода на Windows 2000») в диалоговом окне Application Compatibility. Приложение будет использовать новую рабочую папку, которую создаст модуль apcompat.exe, если такой папки пока нет.
Настройка проверки дискового пространства. Возможно, что при запросе и ответе о наличии свободного дискового пространства прикладная программа оперирует типом данных, который в 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 Гбайт»).

Сохранение найденных решений. Если какой-либо из вышеописанных методов помог устранить неполадки в работе прикладной программы, установите флажок Make the above check box settings permanent («Применять все указанные выше параметры постоянно») в диалоговом окне Application Compatibility. После этого система запишет соответствующие установки в реестр, и они будут применяться всякий раз при запуске прикладной программы. Если ни одно из предложенных решений не дает результата, придется устанавливать обновленную версию прикладной программы, совместимую с Windows 2000.
Как использовать программу apcompat.exe из командной строки.Если в сообщении об ошибке указано, почему прикладная программа не работает в среде Windows 2000, запуск apcompat.exe из командной строки позволяет решить проблему быстрее, нежели через графический интерфейс этой программы. В командной строке введите текст:


apcompat [-v 
[-x ] [-d] [-t] [-g] [-k]

Параметр -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 не жалейте времени на тестирование всех программных средств - будь то изделие собственной разработки, продукт независимой компании или унаследованное приложение. В ходе испытаний программ на совместимость придерживайтесь следующих правил:

1. Тестируйте самые важные из установленных в сети программ. Скорее всего, пользователей и менеджеров больше интересует, работает ли бухгалтерская программа компании на каждой машине; функционирование любимой утилиты сетевых администраторов занимает их в меньшей степени.
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.