Мой блог
Модуль PowerShell OSLicense для управления активацией Windows
Подробности изложены в материале первоисточника. Каждый пользователь, который ранее работал с настройкой лицензий, вводом ключей или продлением пробного периода Windows, наверняка привык использовать классические скрипты slmgr.vbs. Тем не менее, актуальные сборки Windows 11 постепенно отказываются от этих утилит, требуя подключения устаревших компонентов, а в дальнейшем они исчезнут окончательно.
Чтобы заменить привычные инструменты, начиная со сборок 26100.9278 и 26200.9278, разработчики внедрили в систему специальный инструмент управления лицензиями. Я подготовил подробный разбор того, как устроен этот инструмент и чем он может заменить старые подходы.
Команды OSLicense и их использование
Прежде чем переходить к управлению ключами и статусами, я рекомендую проверить, присутствует ли нужный компонент в вашей системе. Для этого я запускаю терминал и выполняю базовую диагностику.
Проверка наличия и доступные команды
Чтобы убедиться, что модуль присутствует в системе, я открываю Терминал Windows или стандартную консоль PowerShell с правами администратора через контекстное меню кнопки «Пуск». Затем я ввожу команду получения списка модулей:

Get-Module -ListAvailable -Name "OSLicense"
Если в выданной таблице отображается строка с именем OSLicense, значит, инструмент доступен и полностью готов к работе. Пустой результат означает, что на компьютере установлена более ранняя редакция ОС или отсутствуют свежие патчи безопасности и обновления.
Справочные данные и интерактивный режим
Для вывода полного перечня доступных команд внутри данного модуля я применяю стандартный командлет:

Get-Command -Module OSLicense
Если мне требуется узнать подробности о конкретной функции, я обращаюсь к встроенной справке через конструкцию Get-Help КОМАНДА. А для тех случаев, когда хочется наглядно посмотреть все параметры в графическом интерфейсе, я использую команду Show-Command КОМАНДА, которая открывает удобное окно взаимодействия.

Примеры практического применения и таблица аналогов
Все команды поддерживают передачу аргументов, фильтрацию и форматирование вывода. Например, простой вызов Get-OSLicenseInfo демонстрирует детальные сведения о текущей активации.
Фильтрация сведений и проверка KMS
Чтобы отсечь лишние данные и получить только самое важное, я использую более сложную конструкцию с выбором конкретных свойств:
Get-OSLicenseInfo | Select-Object Description, LicenseStatus, PartialProductKey, GracePeriodRemaining | Format-List

Этот запрос выводит канал лицензирования (например, Retail, OEM или Volume), текущий статус, оставшееся время пробного периода и последние символы введенного ключа. Дополнительно я проверяю наличие корпоративной активации через Get-KmsLicenseInfo: если поля пустые или содержат значение «N/A», значит, локальный или сетевой эмулятор KMS не задействован.
Таблица соответствия команд OSLicense и slmgr.vbs
Для удобства перехода я составил сводную таблицу, которая сопоставляет новые инструменты PowerShell с привычными аргументами старого скрипта:

- Базовая информация: Get-OSLicenseInfo (аналог
slmgr.vbs /dliи/xpr). - Выборочные свойства: Get-OSLicenseInfo | Select-Object … (аналог
slmgr.vbs /dlv). - Маркерные лицензии: Get-OSLicenseInfo -TokenBasedLicenses (аналог
slmgr.vbs /dil). - Онлайн-активация: Invoke-OSLicense -ActivateOnline (аналог
slmgr.vbs /ato). - Установка ключа: Invoke-OSLicense -InstallProductKey (аналог
slmgr.vbs /ipk). - Удаление ключа: Invoke-OSLicense -UninstallProductKey (аналог
slmgr.vbs /upk). - Очистка реестра: Invoke-OSLicense -ClearProductKeyFromRegistry (аналог
slmgr.vbs /cpky). - Сброс таймеров (Rearm): Invoke-OSLicense -Rearm (аналог
slmgr.vbs /rearm, требует перезагрузки). - Переустановка сертификатов: Invoke-OSLicense -ReinstallSystemLicenses (аналог
slmgr.vbs /rilc). - Офлайн-активация: Получение кода через
.OfflineInstallationIdи активация черезInvoke-OSLicense -ActivateOffline(аналоги/dtiи/atp). - Управление KMS: Set-KmsLicenseInfo, Get-KmsLicenseInfo и Invoke-KmsLicense -ClearServer (аналоги
/skms,/dlv,/ckms). - Корпоративные подписки: Get-ADLicenseInfo и Get-SubscriptionLicenseInfo (для облачных подписок M365).
Подводя итог, я отмечу: даже если старые скрипты на вашем ПК пока выполняются без ошибок вроде «Нет приложения, сопоставленного с этим файлом», полный отказ от VBScript в будущих сборках Windows неизбежен. Поэтому освоение современного модуля OSLicense станет обязательным шагом для каждого системного администратора и опытного пользователя.
