Application Compatibility Toolkit

Переход на новую систему довольно серьезный шаг. Чтобы не столкнутся с ненужными проблемами после перехода на новую операционную систему, нужно заранее рассмотреть возможные неполадки. Одним из таких неполадок может стать несовместимость некоторых приложений или драйверов. Ведь если обнаружится, что новая операционная система не поддерживает необходимые Вам программы или драйвера, это может вызвать довольно большие проблемы. Поэтому нужно заранее знать, возможна ли совместимость нынешнего оборудования и программного обеспечения с другой операционной системой. Пакет инструментов, который предоставляет такие возможности, носит имя Application Compatibility Toolkit, что на русском звучит как Набор средств для обеспечения совместимости приложений.

Где скачать Application Compatibility Toolkit?

Данный пакет постоянно обновляется. Это связано с выходом новых операционных систем и обновлений для них. Поэтому, лучше всего скачивать последнюю версию данного продукта. И лучше всего это делать с официального сайта Microsoft. Там Вы без проблем скачаете последнюю версию пакета Application Compatibility Toolkit.

Содержимое Application Compatibility Toolkit

Пакет для обеспечения совместимости приложений содержит 5 различных инструментов, цель которых одна — выявление возможных проблем в программном обеспечении на другой операционной системе.

  1. Application Compatibility Manager.
  2. Compatibility Administrator.
  3. Internet Explorer Test Tool.
  4. Setup Analysis Tool.
  5. Standart User Analyser.

Рассмотрим каждый инструмент из данного пакета по-подробнее.

Application Compatibility Manager

Диспетчер совместимости приложений и есть основная утилита из данного пакета. Данная утилита сканирует систему и выводит отчет о возможных проблемах совместимости при переходе на другую операционную систему. Так же, эта утилита имеет связь с базой данных Microsoft SQL Server, куда при желании может скинуть отчеты. Поэтому данная утилита особенно полезна внутри организации для системных администраторов, так как выдаст возможные проблемы в структурированном виде и, причем, сразу для всех компьютеров в сети.

Compatibility Administrator

Администратор совместимости. Естественно, без проблем с совместимостью приложений не обойтись. Но и отказываться из-за этого от перехода на новую операционную систему тоже не дело. Поэтому, следующим шагом после поиска возможных проблем является решение этих проблем. Как добиться совместимости приложений мы уже рассматривали, можете прочитать тут, тут и тут. Именно таким образом и нужно будет обеспечить совместимость. Compatibility Administrator позволяет создать свои собственные исправления, режимы совместимости и базы данных совместимости для решения таких проблем.

Вся прелесть данного инструмента раскрывается в условиях администрирования локальной сети. После того, как будут созданы исправления и режимы совместимости для определенных приложений, данная утилита будет перехватывать запуск этих приложений и модифицировать их или запускать в необходимом режиме. А благодаря встроенной базе совместимости для некоторых приложений, ручная работа для администратора может быть сведена к минимуму.

Internet Explorer Test Tool

Инструмент тестирования Internet Explorer так же входит в состав Application Compatibility Toolkit. Данный инструмент протестирует веб-сайты и веб-приложения из внутренней сети на предмет их совместимости с версией Internet Explorer, которая идет вместе с операционной системой. Тут нужно знать, что, как правило, каждая новая операционная система Windows несет в себе новую версия IE.

Setup Analysis Tool

Данный инструмент полностью отслеживает все действия, которые будут производится при установке программы. Результатом работы утилиты будет отчет о возможных проблемах с установкой.

Standart User Analyser

Данный инструмент проанализирует все возможные проблемы, связанные с правами доступа пользователя, которые могут возникнуть при работе с программой.

Используя все, или хотя бы некоторые из этих утилит, входящих в пакет Application Compatibility Toolkit, можно добиться минимально безболезненного перехода с одной операционной системы на другую.

All versions

Application Compatibility Toolkit contains the necessary tools and documentation to evaluate and mitigate application compatibility issues before deploying Windows 7, Windows Vista, a Windows Update, or a new version of Windows Internet Explorer in your environment.

The Microsoft Application Compatibility Toolkit (ACT) will help customers understand their application compatibility situation by identifying which applications are compatible with the Windows 7 and Windows Vista operating system and which require further testing.

ACT helps customers lower their costs for application compatibility testing, prioritize their applications, and deploy Windows more quickly.

You can use the ACT features to:

— Verify an application’s compatibility with a new version of the Windows operating system, or a Windows Update, including determining your risk assessment.
— Become involved in the ACT Community, including sharing your risk assessment with other ACT users.
— Test your Web applications and Web sites for compatibility with new releases and security updates to the Windows Internet Explorer Internet browser.

The powerful and effective solution from Microsoft to evaluate and mitigate application compatibility issues.

В этой статье мы покажем, как выборочно отключить UAC для определенного приложения, не отключая полностью эту службу User Account Control. Рассмотрим несколько способов отключения контроля учетных записей для приложениия с помощью флага совместимости RunAsInvoker.

Флаг RunAsInvoker позволяет запустить приложение с маркером, унаследованным от родительского процесса. При этом отменяется обработка манифеста приложения, и обнаружение процессов установщика. Данный параметр не предоставляет права администратора, а только блокирует появление окна UAC.

В качестве примера мы отключим появление запроса User Account Control для редактора реестра (regedit.exe). Несмотря на то, что у моей учетной записи есть права администратора, при запуске утилиты все равно появляется запрос UAC на подтверждение запуска.

Отключение UAC для программы с помощью Application Compatibility Toolkit

Нам понадобится утилита Application Compatibility Toolkit, которая входит в состав Windows ADK. Скачать актуальную версию Windows ADK для Windows 10 можно здесь.

Запустите скачанный файл adksetup.exe и при установке (программе нужен доступ в Интернет) выберите только Application Compatibility Toolkit.

В системе появится две версии Application Compatibility Administrator — 32-х и 64-х битная версия. Запустите версию Application Compatibility Administrator в зависимости от разрядности приложения, для которого вы хотите подавить запрос UAC.

Запустите утилиту Compatibility Administrator (32-bit) с правами администратора (!). В разделе Custom Databases, щелкните ПКМ по элементу New Database и выберите пункт Create New-> Application Fix.

В открывшемся окне нужно указать имя приложения (regedit), производителя (Microsoft) и путь к исполняемому файлу ( C:Windows
egedit.exe ).

Пропустите следующее окно мастера настройки (Compatibility Mode), нажав Next. В окне Compatibility Fixes отметьте опцию RunAsInvoker.

При желании можно убедиться, что приложение может работать без UAC, нажав на кнопку тестового запуска (Test Run).

В окне Matching Information вы можете указать какие параметры приложения нужно проверять (версию, чексумму, размер и т.д.). Я оставил включенными проверки COMPANY_NAME,PRODUCT_NAME и ORIGINAL_FILENAME, чтобы не пересоздавать файл исправления после очередного обновления Windows 10 и обновлении версии файла regedit.

Нажмите Finish и укажите имя файла, в который нужно сохранить созданный пакет исправления совместимости, например regedit.sdb. В этом файле будут содержаться инструкции по запуску приложения с заданными опциями совместимости.

Осталось применить пакет с исправлением совместимости к вашему приложению. Сделать это можно непосредственно из консоли Compatibility Administrator (выбрав в меню пункт Install), либо из командной строки.

sdbinst -q c:ps
egedit.sdb

Если все сделали правильно, появится сообщение об успешном применении пакета.

После установки пакета, соответствующая запись появится в списке установленных программ Windows (Programs and Features).

Попробуйте теперь запустить приложение в сессии пользователя без прав локального администратора. Теперь оно должно запуститься без появления запроса UAC.

Теперь проверьте, с какими привилегиями запущено данное приложение. Для этого в Task Manager на вкладке процессов добавьте столбец “Elevated”. Убедитесь, что процесс regedit.exe запущен от пользователя в непривилегированном режиме ( Elevated=No ).

В таком процесс редактора реестра пользователь может редактировать только собственные ветки реестра, но при попытке отредактировать/создать что-то в системной HKLM, появляется ошибка “You don’t have the requisite permissions”.

В дальнейшем это исправление совместимости можно распространить на компьютеры пользователей с помощью групповых политик. Тем самым можно добиться отключения проверки системы контроля учетных записей (UAC) для определенных приложений на множестве компьютеров в домене Active Directory.

Чтобы удалить исправление совместимости, выполните команду

sdbinst –u c:ps
egedit.sdb

Включить флаг RUNASINVOKER для программы через реестр

В Windows 10/8.1/7 вы можете включить флаг совместимости RUNASINVOKER через реестр. Флаг совместимости приложения можно выставить для одного пользователя или для всех пользователей компьютера:

Например, для regedit нужно в ветке реестра HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionAppCompatFlagsLayers создать новый строковый параметр (REG_SZ) вида:

  • Value name: C:windows
    egedit.exe
  • Value data: RunAsInvoker

Если нужно включить режим совместимости приложения для всех пользователей компьютера, этот параметр нужно создать в ветке реестра: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionAppCompatFlagsLayers.

Bat файл для запуска приложения в режиме RunAsInvoker

Есть еще вариант для запуск приложения без прав администратора и подавлением запроса UAC (см. статью).

Просто создайте bat файл со следующим кодом:

Set ApplicationPath="C:windows
egedit.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

При запуске этого bat файла под пользователем, указанное приложение запустится без появления запроса UAC.

Итак, мы рассмотрели, как отключить UAC для конкретной программы без полного отключения контроля учетных записей. Это позволит вам запускать программы Windows под обычным пользователем без появления запроса UAC и без пароля администратора.