Windows Vista / Windows 7 – вопросы совместимости приложений


Средства для ИТ-специалистов

В первой части обзора «Windows Vista / Windows 7 – вопросы совместимости приложений» мы остановились на том, что создали набор «заплаток», позволяющих решить проблемы совместимости. С точки зрения пользователей, мы просто указали какие-то опции, обеспечившие работоспособность приложения. На самом деле, мы задействовали инфраструктуру обеспечения совместимости приложений – Application Compatibility Infrastructure, которая, как мы знаем из предыдущей части, является частью современных операционных систем семейства Windows.

Результат наших манипуляций с опциями на вкладке «Совместимость» был сохранен в реестре – в ветви HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionAppCompatFlagsLayers. В соответствующей записи в этой ветви реестра будут указаны примененные к приложению системные «заплатки».Реестр и заплатки, примененные к приложению

Реестр и «заплатки», примененные к приложению

Такой подход хорошо работает для исправления приложений, расположенных на одном компьютере (и более того, будет работать для всех версий приложения – пока не изменится название его загрузочного файла), но когда приложение используется в целой организации, выполнение манипуляций с вкладкой «Совместимость» на каждом компьютере слишком затратно и может привести к внесению ошибок. Также не рекомендуется, без лишней надобности, пользоваться утилитой regedit для внесения исправлений в реестр. Для того, чтобы сделать набор «заплаток» отторгаемым от конкретного компьютера следует использовать утилиту Compatibility Administrator, которая входит в состав Microsoft Application Compatibility Toolkit – этот набор утилит для ИТ-специалистов можно бесплатно загрузить с сайта Microsoft по адресу http://www.microsoft.com/downloads/details.aspx?familyid=24da89e9-b581-47b0-b45e-492dd6da2971. С помощью этого набора утилит, а точнее, с помощью входящей в его состав утилиты Compatibility Administrator, мы можем повторить все действия, которые мы выполняли на уровне вкладки «Совместимость», но сохранить результаты не в реестре, а в специальном файле, который называется System Database (.sdb).

Запустим утилиту Compatibility Administrator под учетной записью «администратор» - в древовидном списке в левой части экрана в разделе Per User Compatibility Settings мы увидим настройки, внесенные нами через вкладку «Совместимость».Заплатки, примененные к приложению

«Заплатки», примененные к приложению

Давайте используем возможности утилиты Compatibility Administrator для того, чтобы создать набор «заплаток», который будет привязан не только к конкретному пользователю, но и который можно будет распростарить на все компьютеры в организации. В разделе Custom Databases выберем элемент New Database(1) [Untitled_1], нажмем на нем правую кнопку мыши и выберем команду Create New | Application Fix. В диалоговой панели Create new Application Fix укажем название приложения, имя производителя и местоположение исполняемого файла приложения.Создание набора заплаток - шаг 1

Создание набора «заплаток» - шаг 1

Нажмем кнопку Далее и в диалоговой панели Compatibility Modes выберем опцию Microsoft Windows XP (SP2).Создание набора заплаток - шаг 2

Создание набора «заплаток» - шаг 2

Еще раз нажмем кнопку Далее и в панели Compatibility Fixes включим «заплатку» Disable Themes.Создание набора заплаток - шаг 3

Создание набора «заплаток» - шаг 3

После нажатия кнопки Далее в панели Matching Information убедимся в том, что наши «заплатки» относятся только к конкретной версии приложения.Создание набора заплаток - шаг 4

Создание набора «заплаток» - шаг 4

Нажмем кнопку Готово и убедимся в том, что набор «заплаток» для выбранного нами приложения успешно создан.Набор заплаток для выбранного приложения

Набор «заплаток» для выбранного приложения

Воспользуемся кнопкой Save в панели инструментов для сохранения нашего набора «заплаток» в файле – в нашем примере мы назовем этот набор AdobeFix и сохраним его в каталоге C:SDBShare с именем ReaderFix.sdb.

Нажатие правой кнопки в разделе Custom Databases | AdobeFix и выбор команды Install приведет к развертыванию нашего набора «заплаток» на данном компьютере. Если же мы хотим развернуть созданный нами набор «заплаток» на других компьютерах, следует воспользоваться утилитой %windir%system32sdbinst.exe. Синтаксис для нашего примера будет выглядеть так:

C:>sdbinst c:SDBShareReaderFix.sdb

При необходимости такая команда может быть включена в состав логон-скриптов, групповых политик, в состав SMS-пакета или выполнена как часть пакета установки приложения.

Для включения набора «заплаток» в пакет установки приложения можно использовать следующий скритп, который затем разворачивается либо средствами SCCM, либо Active Directory Group Policies:

msidbCustomActionTypeVBScript + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 0x0C06

Для развертывания .SDB-файла средствами Visual Basic Script можно использовать следующий код:

Function Install Dim WshShell Set WshShell = CreateObject("WScript.Shell") WshShell.Run "sdbinst.exe -q " & CHR(34) & "c:sdbsharestockviewerfixes.sdb" & CHR(34), 0, true WshShell.Run "cmd.exe /c " & CHR(34) & "del " & CHR(34) & c:sdbsharestockviewerfixes.sdb " & CHR(34) & CHR(34), 0 WshShell.Run "reg.exe delete HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall {SDB_GUID}.sdb /f", 0 End Function Function UnInstall Dim WshShell Set WshShell = CreateObject("WScript.Shell") WshShell.Run "sdbinst.exe -q -u -g {SDB_GUID}", 0 End Function

Значение SDB_GUID можно получить нажав правую кнопку мыши на соответствующем наборе заплаток в Compatibility Assistant и выбрав команду Properties.

Отметим, что для того, чтобы запретить загрузку и обновление версий продукта, тем самым обеспечив работоспособность текущей версии с примененными «заплатками» можно использовать утилиту AppLocker, появившуюся в Windows 7 или соответствующие настройки политик в Windows Vista.

Утилита Compatibility Administrator позволяет посмотреть, какие приложения установлены на компьютеры и требуют «заплаток» для запуска – для этого используется команда Search | Fixed programs. В диалоговой панели Search for Fixes можно указать, где искать (по умолчанию - C:Program Files*.exe), какие типы исправлений показывать – Entries with Compatibility Fixes (приложения с «заплатками»), Entries with Compatibility Modes (приложения, к которым применены т.н. уровни совместимости) и Entries with AppHelp (приложения, имеющие специальные записи для утилиты AppHelp). По завершении поиска мы получим список приложений с указанием программного компонента, типа исправления и местоположения исправления – в глобальной или локальной базе данных. Двойной щелчок мышью по элементу списка позволяет получить детальную информацию о примененных к приложению исправлениях.Панель Search for Fixes и результаты поиска

Панель «Search for Fixes» и результаты поиска

Изучение базы данных, содержащей «заплатки» для различных приложений, позволяет создать список наиболее «популярных» заплаток. На первом месте – заплатки, связанные с версией операционной системы и т.н. уровни совместимости, которые позволяют эмулировать поведение определенной версии операционной системы. Также среди наиболее часто применяемых заплаток встречаются заплатки, связанные с работой с реестром и файловой системой. Далее следуют более специфичные заплатки, воспроизводящие те или иные функции, реализованные в предыдущих версиях операционной системы.

Другие возможности Microsoft Application Compatibility Toolkit

Утилита Compatibility Administrator играет важную роль для создания наборов заплаток для определенных приложений, но помимо нее в состав Microsoft Application Compatibility Toolkit входит ряд других полезных приложений. Среди них:

  • Application Compatibility Manager – средство, позволяющее собирать данные о приложениях, установленных в компании и исправлять их работу перед развертыванием новой версии операционной системы. Для работы ACM требуется наличие на компьютере установленной версии SQL Server 2005 или 2008
  • Standard User Analyzer – позволяет протестировать приложения на совместимость с технологией User Account Control (UAC), появившейся в Windows Vista и поддерживаемой в Windows 7. Данная утилита предоставляет информацию о потенциальных проблемах с использованием файловой системы, реестра, программных интерфейсов, INI-файлов, привилегий, пространств имен, процессов и т.п. при работе приложения под учетной записью «стандартный пользователь»
  • Setup Analysis Tool – данная утилита позволяет определить потенциальные проблемы при установке и конфигурации приложений. Некоторые типы компонентов, такие как драйвера и динамические библиотеки Graphical Identification and Authentication (GINA) устанавливаются в каталоги, отличные от каталогов, в которые устанавливаются сами приложения. Таким образом, если такие компоненты не совместимы с текущей версией операционной системы, сложно определить причину неработоспособности приложения – в этих случаях мониторинг процесса установки позволяет обнаружить потенциальные несовместимости
  • Internet Explorer Compatibility Test Tool – собирает информацию в потенциальных проблемах с выполнением страниц в Internet Explorer и загружает собранные данные в ACT Log Processing Services для обработки найденных проблем и определения оптимальных путей их решения.

В этом обзоре мы рассмотрели, как, используя утилиту Compatibility Administrator, создать набор «заплаток» для приложения и, при необходимости, использовать его для исправления работы приложений на всех компьютерах в организации. В следующей части мы приведем основные рекомендации по созданию совместимых приложений для разработчиков.

Продолжение следует...

14 мая 2009 Г.

Windows Vista / Windows 7 � ������� ������������� ����������. �������� ��� ��-������������.

Windows Vista / Windows 7 – ������� ������������� ����������

�������� ��� ��-������������

� ������ ����� ������ «Windows Vista / Windows 7 � ������� ������������� ����������» �� ������������ �� ���, ��� ������� ����� «��������», ����������� ������ �������� �������������. � ����� ������ �������������, �� ������ ������� �����-�� �����, ������������ ����������������� ����������. �� ����� ����, �� ������������� �������������� ����������� ������������� ���������� � Application Compatibility Infrastructure, �������, ��� �� ����� �� ���������� �����, �������� ������ ����������� ������������ ������ ��������� Windows.

��������� ����� ����������� � ������� �� ������� «�������������» ��� �������� � ������� � � ����� HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers. � ��������������� ������ � ���� ����� ������� ����� ������� ����������� � ���������� ��������� «��������».

������ � ��������, ����������� � ����������
������ � «��������», ����������� � ����������

����� ������ ������ �������� ��� ����������� ����������, ������������� �� ����� ���������� (� ����� ����, ����� �������� ��� ���� ������ ���������� � ���� �� ��������� �������� ��� ������������ �����), �� ����� ���������� ������������ � ����� �����������, ���������� ����������� � �������� «�������������» �� ������ ���������� ������� �������� � ����� �������� � �������� ������. ����� �� �������������, ��� ������ ����������, ������������ �������� regedit ��� �������� ����������� � ������. ��� ����, ����� ������� ����� «��������» ����������� �� ����������� ���������� ������� ������������ ������� Compatibility Administrator, ������� ������ � ������ Microsoft Application Compatibility Toolkit � ���� ����� ������ ��� ��-������������ ����� ��������� ��������� � ����� Microsoft �� ������ http://www.microsoft.com/downloads/details.aspx?familyid=24da89e9-b581-47b0-b45e-492dd6da2971. � ������� ����� ������ ������, � ������, � ������� �������� � ��� ������ ������� Compatibility Administrator, �� ����� ��������� ��� ��������, ������� �� ��������� �� ������ ������� «�������������», �� ��������� ���������� �� � �������, � � ����������� �����, ������� ���������� System Database (.sdb).

�������� ������� Compatibility Administrator ��� ������� ������� «�������������» - � ����������� ������ � ����� ����� ������ � ������� Per User Compatibility Settings �� ������ ���������, ��������� ���� ����� ������� «�������������».

��������, ����������� � ����������
«��������», ����������� � ����������

������� ���������� ����������� ������� Compatibility Administrator ��� ����, ����� ������� ����� «��������», ������� ����� �������� �� ������ � ����������� ������������, �� � ������� ����� ����� ������������� �� ��� ���������� � �����������. � ������� Custom Databases ������� ������� New Database(1) [Untitled_1], ������ �� ��� ������ ������ ���� � ������� ������� Create New | Application Fix. � ���������� ������ Create new Application Fix ������ �������� ����������, ��� ������������� � �������������� ������������ ����� ����������.

�������� ������ �������� - ��� 1
�������� ������ «��������» - ��� 1

������ ������ ����� � � ���������� ������ Compatibility Modes ������� ����� Microsoft Windows XP (SP2).

�������� ������ �������� - ��� 2
�������� ������ «��������» - ��� 2

��� ��� ������ ������ ����� � � ������ Compatibility Fixes ������� «��������» Disable Themes.

�������� ������ �������� - ��� 3
�������� ������ «��������» - ��� 3

����� ������� ������ ����� � ������ Matching Information �������� � ���, ��� ���� «��������» ��������� ������ � ���������� ������ ����������.

�������� ������ �������� - ��� 4
�������� ������ «��������» - ��� 4

������ ������ ������ � �������� � ���, ��� ����� «��������» ��� ���������� ���� ���������� ������� ������.

����� �������� ��� ���������� ����������
����� «��������» ��� ���������� ����������

������������� ������� Save � ������ ������������ ��� ���������� ������ ������ «��������» � ����� � � ����� ������� �� ������� ���� ����� AdobeFix � �������� ��� � �������� C:\SDBShare\ � ������ ReaderFix.sdb.

������� ������ ������ � ������� Custom Databases | AdobeFix � ����� ������� Install �������� � ������������� ������ ������ «��������» �� ������ ����������. ���� �� �� ����� ���������� ��������� ���� ����� «��������» �� ������ �����������, ������� ��������������� �������� %windir%\system32\sdbinst.exe. ��������� ��� ������ ������� ����� ��������� ���:

C:\>sdbinst c:\SDBShare\ReaderFix.sdb

��� ������������� ����� ������� ����� ���� �������� � ������ �����-��������, ��������� �������, � ������ SMS-������ ��� ��������� ��� ����� ������ ��������� ����������.

��� ��������� ������ «��������» � ����� ��������� ���������� ����� ������������ ��������� ������, ������� ����� ��������������� ���� ���������� SCCM, ���� Active Directory Group Policies:

msidbCustomActionTypeVBScript + msidbCustomActionTypeInScript +
msidbCustomActionTypeNoImpersonate = 0x0C06

��� ������������� .SDB-����� ���������� Visual Basic Script ����� ������������ ��������� ���:

Function Install
 Dim WshShell
 Set WshShell = CreateObject("WScript.Shell")
 WshShell.Run "sdbinst.exe -q " & CHR(34) &
 "c:\sdbshare\stockviewerfixes.sdb" & CHR(34), 0, true
 WshShell.Run "cmd.exe /c " & CHR(34) & "del " & CHR(34) &
 c:\sdbshare\stockviewerfixes.sdb " & CHR(34) & CHR(34), 0
 WshShell.Run "reg.exe delete
 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
 {SDB_GUID}.sdb /f", 0
End Function

Function UnInstall
 Dim WshShell
 Set WshShell = CreateObject("WScript.Shell")
 WshShell.Run "sdbinst.exe -q -u -g {SDB_GUID}", 0
End Function

�������� SDB_GUID ����� �������� ����� ������ ������ ���� �� ��������������� ������ �������� � Compatibility Assistant � ������ ������� Properties.

�������, ��� ��� ����, ����� ��������� �������� � ���������� ������ ��������, ��� ����� ��������� ����������������� ������� ������ � ������������ «����������» ����� ������������ ������� AppLocker, ����������� � Windows 7 ��� ��������������� ��������� ������� � Windows Vista.

������� Compatibility Administrator ��������� ����������, ����� ���������� ����������� �� ���������� � ������� «��������» ��� ������� � ��� ����� ������������ ������� Search | Fixed programs. � ���������� ������ Search for Fixes ����� �������, ��� ������ (�� ��������� - C:\Program Files\*.exe), ����� ���� ����������� ���������� � Entries with Compatibility Fixes (���������� � «����������»), Entries with Compatibility Modes (����������, � ������� ��������� �.�. ������ �������������) � Entries with AppHelp (����������, ������� ����������� ������ ��� ������� AppHelp). �� ���������� ������ �� ������� ������ ���������� � ��������� ������������ ����������, ���� ����������� � �������������� ����������� � � ���������� ��� ��������� ���� ������. ������� ������ ����� �� �������� ������ ��������� �������� ��������� ���������� � ����������� � ���������� ������������.

������ Search for Fixes � ���������� ������
������ «Search for Fixes» � ���������� ������

�������� ���� ������, ���������� «��������» ��� ��������� ����������, ��������� ������� ������ �������� «����������» ��������. �� ������ ����� � ��������, ��������� � ������� ������������ ������� � �.�. ������ �������������, ������� ��������� ����������� ��������� ������������ ������ ������������ �������. ����� ����� �������� ����� ����������� �������� ����������� ��������, ��������� � ������� � �������� � �������� ��������. ����� ������� ����� ����������� ��������, ��������������� �� ��� ���� �������, ������������� � ���������� ������� ������������ �������.

������ ����������� Microsoft Application Compatibility Toolkit

������� Compatibility Administrator ������ ������ ���� ��� �������� ������� �������� ��� ������������ ����������, �� ������ ��� � ������ Microsoft Application Compatibility Toolkit ������ ��� ������ �������� ����������. ����� ���:

  • Application Compatibility Manager � ��������, ����������� �������� ������ � �����������, ������������� � �������� � ���������� �� ������ ����� �������������� ����� ������ ������������ �������. ��� ������ ACM ��������� ������� �� ���������� ������������� ������ SQL Server 2005 ��� 2008
  • Standard User Analyzer � ��������� �������������� ���������� �� ������������� � ����������� User Account Control (UAC), ����������� � Windows Vista � �������������� � Windows 7. ������ ������� ������������� ���������� � ������������� ��������� � �������������� �������� �������, �������, ����������� �����������, INI-������, ����������, ����������� ����, ��������� � �.�. ��� ������ ���������� ��� ������� ������� «����������� ������������»
  • Setup Analysis Tool � ������ ������� ��������� ���������� ������������� �������� ��� ��������� � ������������ ����������. ��������� ���� �����������, ����� ��� �������� � ������������ ���������� Graphical Identification and Authentication (GINA) ��������������� � ��������, �������� �� ���������, � ������� ��������������� ���� ����������. ����� �������, ���� ����� ���������� �� ���������� � ������� ������� ������������ �������, ������ ���������� ������� ������������������� ���������� � � ���� ������� ���������� �������� ��������� ��������� ���������� ������������� ���������������
  • Internet Explorer Compatibility Test Tool � �������� ���������� � ������������� ��������� � ����������� ������� � Internet Explorer � ��������� ��������� ������ � ACT Log Processing Services ��� ��������� ��������� ������� � ����������� ����������� ����� �� �������.

� ���� ������ �� �����������, ���, ��������� ������� Compatibility Administrator, ������� ����� «��������» ��� ���������� �, ��� �������������, ������������ ��� ��� ����������� ������ ���������� �� ���� ����������� � �����������. � ��������� ����� �� �������� �������� ������������ �� �������� ����������� ���������� ��� �������������.

����������� �������...