Не является стандартным приложением Windows
Обновлено: 21.11.2024
Клиентские операционные системы Windows содержат больше функций, которые можете установить вы и ваши пользователи. Эти функции называются функциями по запросу (открывается другой веб-сайт Microsoft) и могут быть установлены в любое время. На устройствах, принадлежащих вашей организации, вы можете контролировать доступ к этим другим функциям.
- Показывает, как добавлять функции с помощью пользовательского интерфейса.
- Перечисляет групповые политики и политики управления мобильными устройствами (MDM), чтобы скрыть компоненты Windows.
- Включает информацию об использовании Windows PowerShell для отключения определенных компонентов Windows.
Если вы работаете на собственном устройстве, используйте приложение "Настройки", чтобы добавить функции.
Добавить или удалить функции
- В строке поиска введите "приложения" и выберите "Приложения и функции".
- Выберите Дополнительные функции > Добавить функцию.
- Выберите функцию, которую хотите добавить, например XPS Viewer, а затем выберите Установить.
По завершении установки эта функция появится в списке приложений и функций. В разделе "Приложения и функции" > "Дополнительные функции" > "Дополнительные функции Windows" вы и ваши пользователи можете установить дополнительные функции.
Чтобы удалить функцию, откройте приложение "Настройки". Выберите компонент, а затем выберите Удалить.
Используйте групповую политику или MDM, чтобы скрыть компоненты Windows
По умолчанию ОС может отображать функции Windows и разрешать пользователям устанавливать и удалять эти дополнительные приложения и функции.
Чтобы скрыть компоненты Windows на ваших пользовательских устройствах, вы можете использовать групповую политику (локально) или поставщика MDM, например Microsoft Intune (облачная среда).
Групповая политика
Если вы используете групповую политику, используйте политику Конфигурация пользователя\Административный шаблон\Панель управления\Программы\Скрыть «Компоненты Windows». По умолчанию для этой политики может быть установлено значение «Не настроено», что означает, что пользователи могут добавлять или удалять функции. Если этот параметр включен, функции Windows скрыты на устройстве.
Вы не можете использовать групповую политику для отключения определенных функций Windows, таких как XPS Viewer. Если вы хотите отключить определенные функции, используйте Windows PowerShell (в этой статье).
Если вы хотите скрыть всю функцию "Приложения" в приложении "Настройки", используйте политику страницы "Конфигурация пользователя\Административный шаблон\Панель управления\Программы\Скрыть "Программы и компоненты".
С помощью Microsoft Intune вы можете использовать административные шаблоны (открывается другой веб-сайт Microsoft) или каталог настроек (открывается другой веб-сайт Microsoft), чтобы скрыть компоненты Windows.
Если вы хотите полностью скрыть функцию "Приложения" в приложении "Параметры", вы можете использовать политику конфигурации на устройствах, зарегистрированных в Intune. Дополнительные сведения о параметрах панели управления, которые можно настроить, см. в разделе Параметры панели управления в Microsoft Intune.
Используйте Windows PowerShell для отключения определенных функций
Чтобы отключить определенные функции, вы можете использовать команду Windows PowerShell Disable-WindowsOptionalFeature. Не существует групповой политики, отключающей определенные функции Windows.
Если вы хотите автоматизировать отключение определенных функций, вы можете создать запланированное задание. Затем используйте запланированное задание для запуска сценария Windows PowerShell. Дополнительные сведения о планировщике заданий см. в разделе Планировщик заданий для разработчиков.
Microsoft Intune также может выполнять сценарии Windows PowerShell. Дополнительные сведения см. в статье Использование сценариев PowerShell на клиентских устройствах Windows в Intune.
Поскольку организации становятся все более глобальными, а для поддержки сотрудников, работающих из любого места, рекомендуется использовать поставщика управления мобильными устройствами (MDM). Поставщики MDM помогают управлять вашими устройствами и приложениями на ваших устройствах. Для Microsoft это включает использование Microsoft Endpoint Manager. Endpoint Manager включает облачную службу Microsoft Intune и локальную службу Configuration Manager.
В этой статье мы упоминаем эти службы. Если вы не управляете своими устройствами с помощью поставщика MDM, следующие ресурсы могут помочь вам начать работу:
Типы приложений
Существуют различные типы приложений, которые можно запускать на клиентских устройствах Windows. В этом разделе перечислены некоторые распространенные приложения, используемые на устройствах Windows.
Приложения Microsoft 365. Эти приложения используются для бизнеса и повышения производительности и включают Outlook, Word, Teams, OneNote и другие. В зависимости от лицензий, которые есть у вашей организации, у вас уже могут быть эти приложения. Используя поставщика MDM, эти приложения также можно развернуть на мобильных устройствах, включая смартфоны.
Дополнительную информацию о вариантах лицензии Microsoft 365 и о том, что вы получаете, см. в статье Преобразуйте свое предприятие с помощью Microsoft 365.
Power Apps. Эти приложения подключаются к бизнес-данным, доступным в Интернете и локально, и могут работать в веб-браузере и на мобильных устройствах. Их могут создавать бизнес-аналитики и профессиональные разработчики. Дополнительные сведения см. в статье Что такое Power Apps?
Приложения для Windows:
Приложения: все приложения, установленные в C:\Program Files\WindowsApps. Существует два класса приложений:
- Подготовлено: устанавливается в учетной записи пользователя при первом входе в новую учетную запись пользователя. Список некоторых распространенных подготовленных приложений см. в разделе Подготовленные приложения, устанавливаемые вместе с клиентской ОС Windows.
- Установлено: установлено как часть ОС.
Приложения универсальной платформы Windows (UWP). Эти приложения работают и могут быть установлены на многих платформах Windows, включая планшеты, Microsoft HoloLens, Xbox и другие. Все приложения UWP — это приложения для Windows. Не все приложения Windows являются приложениями UWP.
Системные приложения: приложения, установленные в каталоге C:\Windows\. Эти приложения являются частью ОС Windows. Список некоторых распространенных системных приложений см. в разделе Системные приложения, устанавливаемые вместе с клиентской ОС Windows.
Веб-приложения и прогрессивные веб-приложения (PWA): эти приложения работают на сервере, а не на устройстве конечного пользователя. Чтобы использовать эти приложения, пользователи должны использовать веб-браузер и иметь доступ в Интернет. Прогрессивные веб-приложения предназначены для всех пользователей, работают в любом браузере и на любой платформе.
Веб-приложения обычно создаются в Visual Studio и могут создаваться на разных языках. Дополнительные сведения см. в разделе Создание веб-приложения. Когда приложение создано и готово к использованию, вы развертываете веб-приложение на веб-сервере. Используя Azure, вы можете размещать свои веб-приложения в облаке, а не локально. Дополнительные сведения см. в разделе Обзор службы приложений.
Используя поставщика MDM, вы можете создавать ярлыки для своих веб-приложений и прогрессивных веб-приложений на устройствах.
Приложения для Android™️
Начиная с Windows 11, пользователи программы Windows Insider могут использовать Microsoft Store для поиска, загрузки и установки приложений Android™️. Эта функция использует подсистему Windows для Android и позволяет пользователям взаимодействовать с приложениями Android точно так же, как с другими приложениями, установленными из Microsoft Store.
Для получения дополнительной информации см.:
Добавить или развернуть приложения на устройствах
Когда ваши приложения будут готовы, вы можете добавить или развернуть эти приложения на своих устройствах Windows. В этом разделе перечислены некоторые общие параметры.
Установка вручную. На ваши устройства пользователи могут устанавливать приложения из Магазина Microsoft, Интернета и с общего диска организации. Эти и другие приложения перечислены в разделе «Настройки» > «Приложения» > «Приложения и функции».
Если вы хотите запретить пользователям загружать приложения на устройства, принадлежащие организации, используйте поставщика MDM, например Microsoft Intune. Например, вы можете создать политику, которая разрешает или запрещает пользователям загружать неопубликованные приложения, разрешать только частный магазин и т. д. Дополнительные сведения о функциях, которые вы можете ограничить, см. в разделе Параметры клиентского устройства Windows, чтобы разрешить или запретить функции с помощью Intune.
Обзор различных типов политик устройств, которые вы можете создать, см. в разделе Применение функций и параметров на ваших устройствах с помощью профилей устройств в Microsoft Intune.
Управление мобильными устройствами (MDM). Для развертывания приложений используйте поставщика MDM, например Microsoft Intune (в облаке) или Configuration Manager (локально). Например, вы можете создавать политики приложений, которые развертывают приложения Microsoft 365, развертывают приложения Win32, создают ярлыки для веб-приложений, добавляют приложения из Магазина и т. д.
Для получения дополнительной информации см.:
Чтобы упростить управление Microsoft Store на ваших устройствах, вы можете использовать политики:
- Локально вы можете использовать административные шаблоны в групповой политике для управления доступом к приложению Microsoft Store:
- Конфигурация пользователя\Административные шаблоны\Компоненты Windows\Магазин
- Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Магазин
Для получения дополнительной информации см.:
MSIX для классических приложений: MSIX упаковывает ваши файлы классических приложений UWP, Win32, WPF и WinForm. MSIX надежно устанавливает приложения, помогает оптимизировать дисковое пространство и уменьшает количество повторяющихся файлов. Если ваша организация обычно использует файлы .EXE или .MSI для установки настольных приложений, вам следует изучить MSIX.
Чтобы развернуть пакеты MSIX и их приложения, вы можете:
- Используйте поставщика MDM, например Microsoft Intune и Configuration Manager.
- Используйте установщик приложений. Пользователи-пользователи дважды щелкают файл установщика или выбирают ссылку на веб-странице.
- И многое другое.
Для получения дополнительной информации см.:
Диспетчер пакетов Windows. Диспетчер пакетов Windows — это инструмент командной строки, обычно используемый разработчиками для установки приложений Windows. С помощью командной строки вы можете получать приложения из Microsoft Store или GitHub (и других источников) и устанавливать эти приложения на устройства Windows. Это полезно, если вы хотите не использовать пользовательские интерфейсы для получения приложений от организаций и разработчиков.
Если в вашей организации используются файлы .EXE , .MSIX или .MSI, то диспетчер пакетов Windows может быть подходящим вариантом развертывания для вашей организации.
Виртуальный рабочий стол Azure с присоединением приложения MSIX. С помощью виртуального рабочего стола Azure вы можете виртуализировать рабочий стол клиентской ОС Windows и использовать виртуальные приложения на этом рабочем столе.С помощью прикрепления приложений MSIX вы динамически доставляете упакованные приложения MSIX пользователям и группам пользователей.
Преимущество заключается в использовании облака для доставки виртуальных приложений в режиме реального времени и по мере необходимости. Пользователи используют приложения, как если бы они были установлены локально.
Если вы в настоящее время используете App-V и хотите уменьшить объем локальной памяти, то в вашей организации может подойти виртуальный рабочий стол Azure с подключением приложения MSIX.
Для получения дополнительной информации см.:
Виртуализация приложений (App-V). App-V позволяет использовать приложения Win32 в качестве виртуальных приложений.
Поддержка виртуализации приложений прекратится в апреле 2026 года. Мы рекомендуем рассмотреть виртуальный рабочий стол Azure с прикрепленным приложением MSIX. Дополнительные сведения см. в статье Что такое виртуальный рабочий стол Azure? и Настройте подключение приложения MSIX к порталу Azure.
На локальном сервере вы устанавливаете и настраиваете серверные компоненты App-V, а затем устанавливаете приложения Win32. На клиентских устройствах Windows Enterprise вы используете клиентские компоненты App-V для запуска виртуализированных приложений. Они позволяют пользователям открывать виртуальные приложения, используя значки и имена файлов, с которыми они знакомы. Пользователи используют приложения, как если бы они были установлены локально.
Преимущество заключается в доставке виртуальных приложений в режиме реального времени и по мере необходимости. Дополнительные сведения см. в разделе Обзор виртуализации приложений (App-V) для Windows.
Этот документ содержит технические требования и квалификационные требования, которым должно соответствовать настольное приложение, чтобы участвовать в Программе сертификации настольных приложений для Windows 10.
Добро пожаловать!
Платформа Windows поддерживает широкую экосистему продуктов и партнеров. Отображение логотипа Windows на вашем продукте представляет собой отношения и общую приверженность качеству между Microsoft и вашей компанией. Клиенты доверяют марке Windows на вашем продукте, потому что это гарантирует его соответствие стандартам совместимости и хорошую работу на платформе Windows. Успешное прохождение сертификации приложений для Windows позволяет продемонстрировать ваше приложение в Центре совместимости Windows, и вы можете разместить логотип сертификации на своем сайте.
Программа сертификации приложений для Windows состоит из программных и технических требований, которые помогают гарантировать простоту установки и надежность сторонних приложений под брендом Windows на компьютерах под управлением Windows. Клиенты ценят в приобретаемых ими системах стабильность, совместимость, надежность, производительность и качество. Microsoft направляет свои инвестиции на удовлетворение этих требований к программным приложениям, предназначенным для работы на платформе Windows для ПК. Эти усилия включают в себя тесты на совместимость для согласованности работы, повышения производительности и повышения безопасности на ПК с программным обеспечением Windows. Тесты совместимости Майкрософт были разработаны в сотрудничестве с отраслевыми партнерами и постоянно совершенствуются в соответствии с развитием отрасли и потребительским спросом.
Комплект сертификации приложений для Windows используется для проверки соответствия этим требованиям и заменяет любые предыдущие версии комплекта, используемые для проверки в Windows 7, Windows 8 или Windows 8.1. Комплект сертификации приложений для Windows — это один из компонентов, включенных в пакет SDK для Windows 10.
Приложение соответствует требованиям
Чтобы приложение могло пройти сертификацию Windows 10 Desktop App Certification, оно должно соответствовать следующим критериям и всем техническим требованиям, перечисленным в этом документе.
- Это должно быть отдельное приложение.
- Он должен работать на локальном ПК с Windows 10
- Это может быть клиентский компонент сертифицированного приложения Windows Server.
- Это должен быть полный код и функция.
- Он не должен взаимодействовать с приложениями Магазина Windows через локальные механизмы, в том числе через файлы и ключи реестра, за исключением поддерживаемых корпоративных сценариев.
- Он не должен ставить под угрозу безопасность или функциональность системы Windows.
- Он должен иметь уникальное имя и не должен быть зарегистрирован другими товарными знаками.
- Все внешние компоненты должны быть сертифицированы отдельно или соответствовать комплекту сертификации приложений для Windows.
- Должна быть предусмотрена возможность отказа от любых связанных приложений.
Если настольное приложение отправлено в категорию продуктов для защиты от вирусов и/или шпионских программ (т. е. защиты от вредоносных программ), оно должно соответствовать РУКОВОДСТВУ ПО ЗАЩИТЕ ОТ ВРЕДОНОСНЫХ ПЛАТФОРМ. ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ О ЛИЦЕНЗИИ И ЛИСТИНГЕ API WINDOWS 10 ANTIMALWARE API должно быть подписано и действовать до отправки. Партнер должен быть членом или иметь исследователей, которые являются членами и имеют хорошую репутацию в одной из организаций, перечисленных в соглашении. Функциональность должна быть сертифицирована для Windows 10 одной из организаций, перечисленных в соглашении. Приложение должно быть протестировано хотя бы один раз за последние 12 месяцев и сертифицировано для обнаружения и очистки.
1. Приложения совместимы и устойчивы
Случаи, когда приложение дает сбой или перестает отвечать на запросы, сильно раздражают пользователей.Ожидается, что приложения будут отказоустойчивыми и стабильными, а устранение таких сбоев помогает сделать программное обеспечение более предсказуемым, удобным в сопровождении, производительным и заслуживающим доверия. 1.1 Ваше приложение не должно зависеть от режимов совместимости Windows, сообщения AppHelp и любых других исправлений совместимости
1.2 Ваше приложение должно иметь манифест совместимости и использовать соответствующие идентификаторы GUID для поддерживаемых версий Windows
1.3 Ваше приложение должно учитывать DPI, используя манифест сборки приложения, а не вызывая SetProcessDPIAware
1.4 Ваше приложение не должно зависеть от среды выполнения VB6
1.5 Ваше приложение не должно загружать произвольные библиотеки DLL для перехвата Win32 Вызовы API с использованием HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows AppInit_dlls.2. Приложения должны соответствовать рекомендациям по обеспечению безопасности Windows
Использование передовых методов обеспечения безопасности Windows поможет избежать создания уязвимых поверхностей для атак Windows. Поверхности атаки — это точки входа, которые злоумышленник может использовать для эксплуатации операционной системы, воспользовавшись уязвимостями в целевом программном обеспечении. Одной из самых серьезных уязвимостей системы безопасности является несанкционированное получение прав.
Обратите внимание, что тесты 2.1 и 2.6 применимы только к настольным приложениям, протестированным в Windows 7, Windows 8 или Windows 8.1. 2.1 Ваше приложение должно использовать надежные и соответствующие ACL для защиты исполняемых файлов
2.2 Ваше приложение должно использовать надежные и соответствующие ACL для защиты каталогов
2.3 Ваше приложение должно использовать надежные и соответствующие ACL для защиты ключей реестра
2.4 Ваше приложение должно использовать надежные и подходящие списки управления доступом для защиты каталогов, содержащих объекты.
2.5 Ваше приложение должно ограничивать доступ неадминистратора к службам, уязвимым для несанкционированного доступа.
2.6 Ваше приложение должно предотвращать перезапуск служб с быстрым перезапуском. более двух раз в суткиПримечание. Доступ следует предоставлять только тем объектам, которым он требуется.
Программа сертификации приложений для Windows проверит, что поверхности атаки Windows не подвержены риску, проверив, что списки управления доступом и службы реализованы таким образом, что система Windows не подвергается риску.
3. Приложения поддерживают функции безопасности Windows
Операционная система Windows имеет множество функций, обеспечивающих безопасность и конфиденциальность системы. Приложения должны поддерживать эти функции, чтобы поддерживать целостность операционной системы. Неправильно скомпилированные приложения могут вызвать переполнение буфера, что, в свою очередь, может привести к отказу в обслуживании или разрешить выполнение вредоносного кода. 3.1 Ваше приложение не должно использовать AllowPartiallyTrustedCallersAttribute (APTCA) для обеспечения безопасного доступа к сборкам со строгими именами
3.2 Ваше приложение должно быть скомпилировано с использованием флага /SafeSEH для обеспечения безопасной обработки исключений
3.3 Ваше приложение должно быть скомпилировано с использованием флаг /NXCOMPAT для предотвращения выполнения данных
3.4 Ваше приложение должно быть скомпилировано с использованием флага /DYNAMICBASE для рандомизации макета адресного пространства (ASLR)
3.5 Ваше приложение не должно читать/записывать общие PE-разделы4. Приложения должны соответствовать сообщениям диспетчера перезагрузки системы
Когда пользователи инициируют завершение работы, они обычно очень хотят, чтобы завершение работы завершилось успешно; они могут спешить покинуть офис и просто хотят, чтобы их компьютеры выключились. Приложения должны уважать это желание, не блокируя завершение работы. Хотя в большинстве случаев отключение может быть некритичным, приложения должны быть готовы к возможности критического отключения. 4.1 Ваше приложение должно надлежащим образом обрабатывать критические завершения работы. При критическом завершении работы приложения, которые возвращают FALSE на WM_QUERYENDSESSION, будут отправлены WM_ENDSESSION и закрыты, а те, у которых истекло время ожидания в ответ на WM_QUERYENDSESSION, будут завершены.
4.2 Приложение с графическим интерфейсом должно немедленно возвращать TRUE при подготовке к перезапуску WM\_QUERYENDSESSION с LPARAM = ENDSESSION\_CLOSEAPP(0x1). Консольные приложения могут вызывать SetConsoleCtrlHandler, чтобы указать функцию, которая будет обрабатывать уведомления о завершении работы. Приложения-службы могут вызывать RegisterServiceCtrlHandlerEx, чтобы указать функцию, которая будет получать уведомления о завершении работы. 4.3 Ваше приложение должно вернуть 0 в течение 30 секунд и закрыть WM\_ENDSESSION с LPARAM = ENDSESSION\_CLOSEAPP(0x1). Как минимум, приложение должно подготовиться, сохранив любые пользовательские данные и указав информацию, которая необходима после перезапуска. 4.4 Консольные приложения, которые получают уведомление CTRL\_C\_EVENT, должны быть немедленно закрыты. 4.5 Драйверы не должны накладывать вето на событие завершения работы системы. Примечание. Приложения, которые должны блокировать завершение работы из-за операции, которую нельзя прервать, должны объяснить причину пользователю. Используйте ShutdownBlockReasonCreate, чтобы зарегистрировать строку, объясняющую причину для пользователя. По завершении операции приложение должно вызвать ShutdownBlockReasonDestroy, чтобы указать, что систему можно отключить.
5. Приложения должны поддерживать чистую обратимую установку
Чистая обратимая установка позволяет пользователям успешно управлять (развертывать и удалять) приложениями в своих системах. 5.1 Ваше приложение должно правильно реализовать чистую обратимую установку. Если установка завершается неудачно, приложение должно иметь возможность откатить ее и восстановить предыдущее состояние компьютера.
- Отображаемое имя
- Место установки
- Издатель
- Удалить строку
- VersionMajor или MajorVersion
- ВерсияMinor или MinorVersion
6. Приложения должны подписывать файлы и драйверы цифровой подписью
Цифровая подпись Authenticode позволяет пользователям быть уверенными в подлинности программного обеспечения. Это также позволяет определить, был ли файл подделан, например, заражен ли он вирусом. Принудительное применение подписи кода в режиме ядра — это функция Windows, известная как целостность кода (CI), которая повышает безопасность операционной системы, проверяя целостность файла каждый раз, когда образ файла загружается в память. CI определяет, изменил ли вредоносный код системный двоичный файл. Также генерирует событие журнала диагностики и системного аудита, когда подпись модуля ядра не проходит правильную проверку. 6.1 Все исполняемые файлы (.exe, .dll, .ocx, .sys, .cpl, .drv, .scr) должны быть подписаны сертификатом Authenticode
6.2 Все драйверы режима ядра, устанавливаемые приложением, должны иметь сертификат Microsoft подпись, полученная в рамках программы сертификации оборудования Windows. Все драйверы фильтров файловой системы должны быть подписаны Microsoft.
6.3 Исключения и исключения Отказы будут рассматриваться только для неподписанных сторонних распространяемых компонентов, за исключением драйверов. Для предоставления этого отказа требуется подтверждение связи с запросом подписанной версии распространяемого(ых) компонента(ов).7. Приложения не блокируют установку или запуск приложений на основе проверки версии операционной системы
Важно, чтобы клиенты не были искусственно заблокированы от установки или запуска своего приложения, когда нет технических ограничений. Как правило, если приложения были написаны для Windows Vista или более поздних версий Windows, им не нужно проверять версию операционной системы. 7.1 Ваше приложение не должно выполнять проверку версий на равенство. Если вам нужна определенная функция, проверьте, доступна ли сама функция. Если вам нужна Windows 7, проверьте Windows 7 или более позднюю версию (>= 6.2). Таким образом, ваш код обнаружения продолжит работать в будущих версиях Windows. Установщики драйверов и модули удаления никогда не должны проверять версию операционной системы.
- Приложения, поставляемые в виде одного пакета, которые также работают в Windows 7, Windows 8 и Windows 8.1 и требуют проверки версии операционной системы, чтобы определить, какие компоненты установить в данной операционной системе.
- Приложения, которые проверяют только минимальную версию операционной системы (только во время установки, а не во время выполнения), используя только утвержденные вызовы API, и которые правильно указывают требования к минимальной версии в манифесте приложения.
- Приложения для обеспечения безопасности (антивирусы, брандмауэр и т. д.), системные утилиты (например, средства дефрагментации, резервного копирования и диагностики), которые проверяют версию операционной системы, используя только утвержденные вызовы API.
8. Приложения не загружают службы или драйверы в безопасном режиме
Безопасный режим позволяет пользователям диагностировать и устранять неполадки Windows. Драйверы и службы не должны быть настроены на загрузку в безопасном режиме, за исключением случаев, когда они необходимы для основных системных операций, таких как драйверы устройств хранения, или для целей диагностики и восстановления, таких как антивирусные сканеры. По умолчанию, когда Windows находится в безопасном режиме, она запускает только предустановленные драйверы и службы.
- 8.1 Исключения и исключения Драйверы и службы, которые должны запускаться в безопасном режиме, требуют исключения. Запрос на отказ должен включать запись каждого применимого драйвера или службы в разделы реестра SafeBoot и описание технических причин, по которым приложение или служба должны работать в безопасном режиме. Установщик приложения должен зарегистрировать все такие драйверы и службы, используя следующие ключи реестра: - HKLM/System/CurrentControlSet/Control/SafeBoot/Minimal - HKLM/System/CurrentControlSet/Control/SafeBoot/Network
Примечание. Вы должны протестировать эти драйверы и службы, чтобы убедиться, что они работают в безопасном режиме без каких-либо ошибок.
9. Приложения должны соответствовать правилам контроля учетных записей пользователей
Некоторые приложения Windows запускаются в контексте безопасности учетной записи администратора, и приложения часто запрашивают чрезмерные права пользователя и привилегии Windows. Управление доступом к ресурсам позволяет пользователям контролировать свои системы и защищать их от нежелательных изменений. Нежелательное изменение может быть злонамеренным, например, когда руткит получает контроль над компьютером, или быть результатом действий, совершенных людьми с ограниченными привилегиями. Самое важное правило контроля доступа к ресурсам — предоставлять наименьший объем доступа. стандартный пользовательский контекст, необходимый пользователю для выполнения его или ее необходимых задач.Следование рекомендациям по управлению учетными записями пользователей (UAC) предоставляет приложению необходимые разрешения, когда они нужны приложению, не оставляя систему постоянно подверженной угрозам безопасности. Большинству приложений не требуются права администратора во время выполнения, и они должны нормально работать от имени обычного пользователя. 9.1 Ваше приложение должно иметь манифест, определяющий уровни выполнения и сообщающий операционной системе, какие привилегии требуются приложению для запуска. Маркировка манифеста приложения применяется только к EXE-файлам, а не к библиотекам DLL. Это связано с тем, что UAC не проверяет библиотеки DLL во время создания процесса. Также стоит отметить, что правила UAC не распространяются на службы Microsoft. Манифест может быть встроенным или внешним.
Чтобы создать манифест, создайте файл с именем .exe.manifest и сохраните его в том же каталоге, что и EXE. Обратите внимание, что любой внешний манифест игнорируется, если у приложения есть внутренний манифест. Например:- Административные или системные инструменты с уровнем выполнения, установленным на максимально доступный и/или требующим администратора
- Только приложение инфраструктуры специальных возможностей или автоматизации пользовательского интерфейса устанавливает для флага uiAccess значение true, чтобы обойти изоляцию привилегий пользовательского интерфейса (UIPI). Чтобы правильно начать использование приложения, этот флаг должен быть подписан Authenticode и находиться в защищенном месте в файловой системе, а именно в Program Files.
10. Приложения должны устанавливаться в правильные папки по умолчанию
Пользователи должны иметь согласованную и безопасную работу с расположением установки файлов по умолчанию, сохраняя при этом возможность установки приложения в расположение по своему выбору. Также необходимо хранить данные приложения в правильном месте, чтобы несколько человек могли использовать один и тот же компьютер без повреждения или перезаписи данных и настроек друг друга. Windows предоставляет определенные места в файловой системе для хранения программ и компонентов программного обеспечения, общих данных приложений и данных приложений, специфичных для пользователя. 10.1 Ваше приложение должно быть установлено в папке Program Files по умолчанию. %ProgramFiles% и %ProgramFiles(x86)% для 32-разрядных приложений, работающих на платформе x64. Пользовательские данные или данные приложения никогда не должны храниться в этом месте из-за разрешений безопасности, настроенных для этой папки.
- Запустите ключи реестра HKLM и/или HKCU в папке Software\Microsoft\Windows\CurrentVersion
- Запустите ключи реестра HKLM или HKCU в папке Software\Wow6432Node\Microsoft\windows\CurrentVersion
- Меню "Пуск" Все программы > ЗАПУСК
11. Приложения должны поддерживать многопользовательские сеансы
Пользователи Windows должны иметь возможность запускать одновременные сеансы без конфликтов и сбоев. 11.1 Ваше приложение должно гарантировать, что при выполнении нескольких сеансов локально или удаленно нормальная функциональность приложения не будет неблагоприятно затронута
11.2 Настройки и файлы данных вашего приложения не должны сохраняться среди пользователей
11.3 Пользователь конфиденциальность и настройки должны быть изолированы от сеанса пользователя.
11.4 Экземпляры вашего приложения должны быть изолированы друг от друга. Это означает, что пользовательские данные из одного экземпляра не видны другому экземпляру приложения. Звук в неактивном сеансе пользователя не должен быть слышен в активном сеансе пользователя. В случаях, когда несколько экземпляров приложения используют общие ресурсы, приложение должно убедиться в отсутствии конфликта.11.5 Приложения, установленные для нескольких пользователей, должны хранить данные в правильных папках и разделах реестра См. требования UAC. 11.6 Пользовательские приложения должны иметь возможность работать в нескольких пользовательских сеансах (быстрое переключение пользователей) как для локального, так и для удаленного доступа. 11.7 Ваше приложение должно проверять другие сеансы службы терминалов (TS) для существующих экземпляров приложения. Примечание. Если приложение не поддерживает несколько пользовательские сеансы или удаленный доступ, это должно быть четко указано при запуске из сеанса такого типа.
12. Приложения должны поддерживать 64-разрядные версии Windows
Поскольку 64-разрядное оборудование становится все более распространенным, пользователи ожидают, что разработчики приложений воспользуются преимуществами 64-разрядной архитектуры, перенеся свои приложения на 64-разрядную версию, или что 32-разрядные версии приложений будут работать на 64-разрядных платформах. разрядные версии Windows. 12.1 Ваше приложение должно изначально поддерживать 64-разрядную или, как минимум, 32-разрядную версию. Приложения на базе Windows должны без проблем работать в 64-разрядных системах для обеспечения совместимости с 64-разрядными версиями Windows.
12.2 Ваше приложение и его установщики не должно содержать 16-разрядного кода или полагаться на какой-либо 16-разрядный компонент.
12.3 Программа установки вашего приложения должна обнаруживать и устанавливать соответствующие драйверы и компоненты для 64-разрядной архитектуры.
12.4 Любые подключаемые модули оболочки. должны работать в 64-разрядных версиях Windows
12.5 Приложение, работающее под эмулятором WoW64, не должно пытаться подорвать или обойти механизмы виртуализации Wow64. следует сделать это, вызвав IsWow64Process.Заключение
По мере развития этих требований мы будем отмечать изменения в истории изменений ниже.Стабильные требования имеют решающее значение для достижения наилучших результатов, поэтому мы стремимся к тому, чтобы вносимые нами изменения были устойчивыми, а также продолжали защищать и улучшать ваши приложения.
Еще раз благодарим вас за то, что вы присоединились к нашему стремлению обеспечить высокое качество обслуживания клиентов.
Эта документация не относится к последней версии службы Windows. Последние сведения о службах Windows с использованием BackgroundService и шаблона Worker Service см. по адресу:
Службы Microsoft Windows, ранее известные как службы NT, позволяют создавать длительно работающие исполняемые приложения, работающие в собственных сеансах Windows. Эти службы могут запускаться автоматически при загрузке компьютера, их можно приостанавливать и перезапускать, и они не отображают никакого пользовательского интерфейса. Эти функции делают службы идеальными для использования на сервере или в тех случаях, когда вам нужны долговременные функции, которые не мешают другим пользователям, работающим на том же компьютере. Вы также можете запускать службы в контексте безопасности определенной учетной записи пользователя, которая отличается от вошедшего в систему пользователя или учетной записи компьютера по умолчанию. Дополнительные сведения о службах и сеансах Windows см. в документации по Windows SDK.
Вы можете легко создавать службы, создавая приложение, которое устанавливается как служба. Например, предположим, что вы хотите отслеживать данные счетчика производительности и реагировать на пороговые значения. Вы можете написать приложение службы Windows, которое прослушивает данные счетчика производительности, развернуть приложение и начать сбор и анализ данных.
Вы создаете свою службу как проект Microsoft Visual Studio, определяя в ней код, который контролирует, какие команды могут быть отправлены в службу и какие действия должны быть предприняты при получении этих команд. Команды, которые можно отправить службе, включают запуск, приостановку, возобновление и остановку службы; вы также можете выполнять пользовательские команды.
После создания и сборки приложения его можно установить, запустив утилиту командной строки InstallUtil.exe и указав путь к исполняемому файлу службы. Затем вы можете использовать Диспетчер управления службами для запуска, остановки, приостановки, возобновления и настройки службы. Вы также можете выполнить многие из этих задач в узле «Службы» в обозревателе серверов или с помощью класса ServiceController.
Служебные приложения и другие приложения Visual Studio
Приложения-службы работают иначе, чем многие другие типы проектов, по нескольким причинам:
Скомпилированный исполняемый файл, создаваемый проектом приложения-службы, должен быть установлен на сервере, прежде чем проект сможет полноценно функционировать. Вы не можете отлаживать или запускать сервисное приложение, нажимая F5 или F11; вы не можете сразу запустить службу или войти в ее код. Вместо этого вы должны установить и запустить службу, а затем подключить отладчик к процессу службы. Дополнительные сведения см. в разделе Практическое руководство. Отладка приложений-служб Windows.
В отличие от некоторых типов проектов, для сервисных приложений необходимо создавать компоненты установки. Компоненты установки устанавливают и регистрируют службу на сервере и создают запись для вашей службы с помощью диспетчера управления службами Windows. Дополнительные сведения см. в разделе Как добавить установщиков в приложение-службу.
Метод Main приложения-службы должен выдавать команду Run для служб, содержащихся в вашем проекте. Метод Run загружает службы в диспетчер управления службами на соответствующем сервере. Если вы используете шаблон проекта служб Windows, этот метод записывается автоматически. Обратите внимание, что загрузка службы — это не то же самое, что ее запуск. Дополнительную информацию см. в разделе "Срок службы" ниже.
Приложения службы Windows запускаются на другой оконной станции, отличной от интерактивной станции вошедшего в систему пользователя. Оконная станция — это безопасный объект, который содержит буфер обмена, набор глобальных атомов и группу объектов рабочего стола. Поскольку станция службы Windows не является интерактивной станцией, диалоговые окна, вызванные из приложения службы Windows, не будут видны, что может привести к тому, что ваша программа перестанет отвечать на запросы. Точно так же сообщения об ошибках должны регистрироваться в журнале событий Windows, а не вызываться в пользовательском интерфейсе.
Взаимодействие службы Windows с пользователем или другими станциями должно быть тщательно спроектировано с учетом таких сценариев, как отсутствие пользователя, вошедшего в систему, или наличие у пользователя неожиданного набора объектов на рабочем столе. В некоторых случаях может оказаться более целесообразным написать приложение для Windows, работающее под управлением пользователя.
Служебные приложения Windows работают в собственном контексте безопасности и запускаются до того, как пользователь войдет в систему компьютера Windows, на котором они установлены. Вы должны тщательно спланировать, под какой учетной записью пользователя будет запускаться служба; служба, работающая под системной учетной записью, имеет больше разрешений и привилегий, чем учетная запись пользователя.
Срок службы
За время своего существования служба проходит через несколько внутренних состояний. Во-первых, служба устанавливается в систему, в которой она будет работать. Этот процесс выполняет установщики для проекта службы и загружает службу в диспетчер управления службами для этого компьютера. Диспетчер управления службами — это центральная утилита, предоставляемая Windows для администрирования служб.
После загрузки службы ее необходимо запустить. Запуск службы позволяет ей начать работу. Вы можете запустить службу из диспетчера управления службами, из обозревателя серверов или из кода, вызвав метод Start. Метод Start передает обработку методу OnStart приложения и обрабатывает любой определенный вами код.
Работающая служба может находиться в этом состоянии неопределенно долго, пока она не будет остановлена или приостановлена, или пока не выключится компьютер. Служба может находиться в одном из трех основных состояний: «Работает», «Приостановлена» или «Остановлена». Служба также может сообщать о состоянии ожидающей команды: ContinuePending, PausePending, StartPending или StopPending. Эти статусы указывают на то, что команда была дана, например, команда приостановить работающую службу, но еще не выполнена. Вы можете запросить статус, чтобы определить, в каком состоянии находится служба, или использовать WaitForStatus для выполнения действия при возникновении любого из этих состояний.
Вы можете приостановить, остановить или возобновить работу службы из диспетчера управления службами, из обозревателя серверов или путем вызова методов в коде. Каждое из этих действий может вызвать связанную процедуру в службе (OnStop, OnPause или OnContinue), в которой можно определить дополнительную обработку, которая будет выполняться при изменении состояния службы.
Типы услуг
Иногда вы можете увидеть другие типы служб, если вы запрашиваете существующие службы, которые не были созданы в Visual Studio. Дополнительные сведения о них см. в разделе ServiceType.
Службы и компонент ServiceController
Компонент ServiceController используется для подключения к установленной службе и управления ее состоянием; используя компонент ServiceController, вы можете запускать и останавливать службу, приостанавливать и продолжать ее работу, а также отправлять пользовательские команды службе. Однако вам не нужно использовать компонент ServiceController при создании приложения-службы. Фактически, в большинстве случаев ваш компонент ServiceController должен существовать в приложении, отдельном от приложения службы Windows, которое определяет вашу службу.
Дополнительную информацию см. в разделе ServiceController.
Требования
Проекты, содержащие службы Windows, должны иметь компоненты установки для проекта и его служб. Это легко сделать из окна свойств. Дополнительные сведения см. в разделе Как добавить установщиков в приложение-службу.
Читайте также: