- Installing and Uninstalling Custom Compatibility Databases in Compatibility Administrator
- Installing a Custom Database
- Uninstalling a Custom Database
- Windows Vista / Windows 7 – вопросы совместимости приложений
- Другие возможности Microsoft Application Compatibility Toolkit
- Application Compatibility Database
- Solutions
Installing and Uninstalling Custom Compatibility Databases in Compatibility Administrator
Applies to
- WindowsВ 10
- WindowsВ 8.1
- WindowsВ 8
- WindowsВ 7
- Windows ServerВ 2012
- Windows ServerВ 2008В R2
The Compatibility Administrator tool enables the creation and the use of custom-compatibility and standard-compatibility databases. Both the custom databases and the standard databases store the known compatibility fixes, compatibility modes, and AppHelp messages. They also store the required application-matching information for installation on your local computers.
By default, the WindowsВ® operating system installs a System Application Fix database for use with the Compatibility Administrator. This database can be updated through Windows Update, and is stored in the %WINDIR%В \AppPatch directory. Your custom databases are automatically stored in the %WINDIR%В \AppPatch\Custom directory and are installed by using the Sdbinst.exe tool provided with the Compatibility Administrator.
Application Compatibility Toolkit (ACT) installs a 32-bit and a 64-bit version of the Compatibility Administrator tool. You must use the 32-bit version to work with custom databases for 32-bit applications and the 64-bit version to work with custom databases for 64-bit applications.
In addition, you must deploy your databases to your organization’s computers before the included fixes will have any effect on the application issue. For more information about deploying your database, see Using the Sdbinst.exe Command-Line Tool.
Installing a Custom Database
Installing your custom-compatibility database enables you to fix issues with your installed applications.
To install a custom database
In the left-side pane of Compatibility Administrator, click the custom database to install to your local computers.
On the File menu, click Install.
The Compatibility Administrator installs the database, which appears in the Installed Databases list.
The relationship between your database file and an included application occurs in the registry. Every time you start an application, the operating system checks the registry for compatibility-fix information and, if found, retrieves the information from your customized database file.
Uninstalling a Custom Database
When a custom database is no longer necessary, either because the applications are no longer used or because the vendor has provided a fix that resolves the compatibility issues, you can uninstall the custom database.
To uninstall a custom database
In the Installed Databases list, which appears in the left-side pane of Compatibility Administrator, click the database to uninstall from your local computers.
On the File menu, click Uninstall.
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 укажем название приложения, имя производителя и местоположение исполняемого файла приложения.
Нажмем кнопку Далее и в диалоговой панели Compatibility Modes выберем опцию Microsoft Windows XP (SP2).
Еще раз нажмем кнопку Далее и в панели Compatibility Fixes включим «заплатку» Disable Themes.
После нажатия кнопки Далее в панели Matching Information убедимся в том, что наши «заплатки» относятся только к конкретной версии приложения.
Нажмем кнопку Готово и убедимся в том, что набор «заплаток» для выбранного нами приложения успешно создан.
Воспользуемся кнопкой Save в панели инструментов для сохранения нашего набора «заплаток» в файле – в нашем примере мы назовем этот набор AdobeFix и сохраним его в каталоге C:SDBShare с именем ReaderFix.sdb.
Нажатие правой кнопки в разделе Custom Databases | AdobeFix и выбор команды Install приведет к развертыванию нашего набора «заплаток» на данном компьютере. Если же мы хотим развернуть созданный нами набор «заплаток» на других компьютерах, следует воспользоваться утилитой %windir%system32sdbinst.exe. Синтаксис для нашего примера будет выглядеть так:
При необходимости такая команда может быть включена в состав логон-скриптов, групповых политик, в состав 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 можно получить нажав правую кнопку мыши на соответствующем наборе заплаток в 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). По завершении поиска мы получим список приложений с указанием программного компонента, типа исправления и местоположения исправления – в глобальной или локальной базе данных. Двойной щелчок мышью по элементу списка позволяет получить детальную информацию о примененных к приложению исправлениях.
Изучение базы данных, содержащей «заплатки» для различных приложений, позволяет создать список наиболее «популярных» заплаток. На первом месте – заплатки, связанные с версией операционной системы и т.н. уровни совместимости, которые позволяют эмулировать поведение определенной версии операционной системы. Также среди наиболее часто применяемых заплаток встречаются заплатки, связанные с работой с реестром и файловой системой. Далее следуют более специфичные заплатки, воспроизводящие те или иные функции, реализованные в предыдущих версиях операционной системы.
Другие возможности 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, создать набор «заплаток» для приложения и, при необходимости, использовать его для исправления работы приложений на всех компьютерах в организации. В следующей части мы приведем основные рекомендации по созданию совместимых приложений для разработчиков.
Application Compatibility Database
The compatibility infrastructure uses a database to identify application compatibility issues and their solutions. This database is an indexed binary file with an .sdb extension. The compatibility infrastructure provides a programming interface to access the database.
Compatibility issues can be addressed on an application-by-application basis at run time. Each application specified in the database contains one or more components that need a solution. Components are executable files that are generally described using their file attributes (for example, checksum).
The process of database lookup and determining the solutions for each application is called matching. The file attributes and the presence of associated files in the folder or subfolder containing the .exe file can be used to create a unique match. The associated files are called matching files.
A TAG is a unique identifier for the entries and attributes in the database. The TAG type indicates the format of the data associated with the TAG. For example, TAG_NAME is of type TAG_TYPE_STRINGREF; the data for TAG_NAME is a name string. A TAGID is a pointer to an entry in a particular database. A TAGREF is a pointer to an entry that can be used across multiple databases.
File attributes are metadata associated with a file on disk. These attributes include the file name, file size, checksum, version, and date. These attributes are used to determine whether a file being loaded by the system matches a database entry. Therefore, these file attributes are also called matching attributes.
Solutions
The most common solutions applied to the components of an application are Apphelp and Appfix.
With Apphelp, a custom localized message notification is displayed, typically when the application is installed or started. It contains brief text that explains the compatibility issue and provides the option to continue running the application. However, some applications will fail dramatically is allowed to run; Apphelp will not give the user the option to continue running these applications.
With Appfix, hooks are installed for APIs called by the components of the application. These hooks point to stub functions that can be called instead of the system functions (also known as shimming). The stub functions perform operations needed to enable the application to run on the installed version of Windows. Each stub function may optionally call the system function after completing its work. A compatibility layer or mode contains one or more shims and flags.