
Проверка установленного модуля ServerManager в PowerShell

Командлет Get-WindowsFeature доступен только при установленном модуле ServerManager. Чтобы убедиться в его наличии, выполните команду:
Get-Module -ListAvailable
Для проверки конкретно ServerManager можно использовать:
Get-Module -ListAvailable | Where-Object {$_.Name -eq "ServerManager"}
Если команда возвращает пустой результат, действуйте следующим образом:
- Установите модуль через Добавление ролей и компонентов Windows на серверных версиях.
- Для Windows Server 2012 и выше можно добавить модуль командой:
Install-WindowsFeature -Name RSAT-ServerManager-Feature
После установки модуля выполните команду:
Import-Module ServerManager
и проверьте доступные командлеты:
Get-Command -Module ServerManager
Это подтвердит корректную загрузку модуля и позволит использовать Get-WindowsFeature без ошибок.
Разница между командлетами Get-WindowsFeature и Get-WindowsOptionalFeature
Пример использования:
Get-WindowsFeature | Where-Object {$_.Installed -eq $true}
Командлет Get-WindowsOptionalFeature применяется на клиентских версиях Windows, таких как Windows 10 или 11. Он работает с дополнительными компонентами системы, доступными через DISM, и не требует модуля ServerManager.
Пример использования:
Get-WindowsOptionalFeature -Online | Where-Object {$_.State -eq "Enabled"}
Основные отличия:
- Get-WindowsFeature доступен только на Windows Server и управляет серверными ролями.
- Get-WindowsOptionalFeature работает на клиентских версиях Windows и управляет дополнительными компонентами ОС.
- Get-WindowsFeature требует импорт модуля ServerManager, Get-WindowsOptionalFeature – встроенный командлет и модуль не нужен.
Для корректного выбора командлета следует учитывать версию операционной системы и тип управляемых функций.
Проверка версии PowerShell и совместимости командлетов
Командлет Get-WindowsFeature поддерживается только в PowerShell версии 3.0 и выше на серверных системах Windows. Для проверки текущей версии выполните команду:
$PSVersionTable.PSVersion
Результат покажет основные компоненты версии PowerShell:
| Компонент | Описание |
|---|---|
| Major | Основная версия PowerShell (например, 5) |
| Minor | Дополнительная версия и исправления (например, 1) |
| Build | Номер сборки |
| Revision | Версия исправления |
Если версия ниже 3.0, Get-WindowsFeature не будет распознана. В этом случае рекомендуется:
- Обновить PowerShell до версии, поддерживаемой серверной ОС.
- Использовать альтернативные командлеты для клиентских систем, например Get-WindowsOptionalFeature.
- Убедиться, что используется версия Windows Server, а не клиентская редакция.
Для проверки совместимости конкретного командлета можно выполнить:
Get-Command Get-WindowsFeature
Если команда не возвращает результат, командлет не доступен для текущей версии PowerShell и ОС.
Использование командлетов через удалённые сессии PowerShell
Командлет Get-WindowsFeature может быть недоступен на локальной клиентской системе, но его можно использовать на удалённом сервере через PowerShell Remoting. Для этого необходимо включить удалённые сессии и иметь права администратора на целевом сервере.
Основные шаги настройки:
- Включите удалённый доступ на сервере:
- Создайте удалённую сессию:
- Импортируйте модуль ServerManager в удалённой сессии:
- Выполните командлет через сессию:
- Закройте сессию после работы:
Enable-PSRemoting -Force
$session = New-PSSession -ComputerName <имя_сервера> -Credential (Get-Credential)
Invoke-Command -Session $session -ScriptBlock { Import-Module ServerManager }
Invoke-Command -Session $session -ScriptBlock { Get-WindowsFeature }
Remove-PSSession $session
Рекомендации:
- Использовать доверенные сети и защищённые каналы при удалённом выполнении.
- Проверять версию PowerShell на сервере и наличие модуля ServerManager перед выполнением командлетов.
- Для скриптов рекомендуется использовать implicit remoting через Import-PSSession для удобного доступа к командлетам удалённого сервера как локальным.
Устранение ошибок при импорте модуля ServerManager

Ошибка «не удалось найти модуль ServerManager» возникает, если модуль не установлен или несовместим с текущей версией ОС. Для проверки доступных модулей используйте команду:
Get-Module -ListAvailable
Если ServerManager отсутствует, действуйте следующим образом:
- На серверных версиях Windows выполните установку через Server Manager или PowerShell:
Install-WindowsFeature -Name RSAT-ServerManager-Feature
Import-Module ServerManager
Get-Command -Module ServerManager
При возникновении ошибок импорта убедитесь, что PowerShell запущен с правами администратора, а ExecutionPolicy позволяет выполнение скриптов:
Set-ExecutionPolicy RemoteSigned
Эти действия позволяют корректно загрузить модуль и устранить ошибку распознавания командлета Get-WindowsFeature.
Альтернативные способы получения списка установленных ролей и функций
Если командлет Get-WindowsFeature недоступен, получить информацию о ролях и функциях Windows можно другими методами. На клиентских версиях Windows используется командлет:
Get-WindowsOptionalFeature -Online
Для фильтрации включённых функций добавьте условие:
Get-WindowsOptionalFeature -Online | Where-Object {$_.State -eq "Enabled"}
Также можно использовать инструмент DISM для серверных и клиентских систем:
dism /online /get-features /format:table
Для удалённых серверов можно выполнить:
Invoke-Command -ComputerName <имя_сервера> -ScriptBlock { Get-WindowsOptionalFeature -Online }
Эти подходы позволяют получить детальный список установленных функций и ролей без использования модуля ServerManager и обеспечивают совместимость с различными версиями Windows.
Вопрос-ответ:
Почему PowerShell не распознаёт командлет Get-WindowsFeature?
Ошибка возникает, когда модуль ServerManager, содержащий командлет Get-WindowsFeature, отсутствует или не загружен. На клиентских версиях Windows этот модуль не установлен по умолчанию. Для серверных систем необходимо убедиться, что модуль доступен через команду Get-Module -ListAvailable и импортирован командой Import-Module ServerManager.
Как проверить наличие модуля ServerManager на системе?
Для проверки установленных модулей используйте команду Get-Module -ListAvailable. Чтобы найти конкретно ServerManager, выполните: Get-Module -ListAvailable | Where-Object {$_.Name -eq «ServerManager»}. Если модуль отсутствует, его необходимо установить через добавление роли или компонента на серверной версии Windows.
Можно ли использовать Get-WindowsFeature на Windows 10 или 11?
Нет, на клиентских версиях Windows модуль ServerManager недоступен. Для получения информации о функциях системы используйте командлет Get-WindowsOptionalFeature -Online или инструмент DISM. Эти инструменты позволяют просматривать установленные компоненты и их состояние.
Какие шаги помогут исправить ошибку при импорте модуля ServerManager?
1. Запустите PowerShell с правами администратора.
2. Убедитесь, что модуль доступен через Get-Module -ListAvailable.
3. Если модуль отсутствует, установите его командой Install-WindowsFeature -Name RSAT-ServerManager-Feature на серверных системах.
4. Импортируйте модуль командой Import-Module ServerManager и проверьте доступные командлеты через Get-Command -Module ServerManager.
Можно ли использовать командлет Get-WindowsFeature на удалённом сервере?
Да, для этого применяют PowerShell Remoting. Включите удалённый доступ на сервере командой Enable-PSRemoting -Force, создайте сессию $session = New-PSSession -ComputerName <имя_сервера> -Credential (Get-Credential) и выполняйте командлеты через Invoke-Command -Session $session -ScriptBlock { Get-WindowsFeature }. После работы сессию нужно закрыть Remove-PSSession $session.
Что делать, если PowerShell не распознаёт командлет Get-WindowsFeature на сервере?
Если при попытке использовать Get-WindowsFeature появляется ошибка, сначала проверьте, установлен ли модуль ServerManager. Выполните команду Get-Module -ListAvailable и убедитесь, что ServerManager присутствует в списке. Если модуль отсутствует, установите его через команду Install-WindowsFeature -Name RSAT-ServerManager-Feature на серверных версиях Windows. После установки импортируйте модуль командой Import-Module ServerManager и проверьте доступные командлеты через Get-Command -Module ServerManager. На клиентских версиях Windows данный модуль недоступен, для работы с функциями используйте Get-WindowsOptionalFeature -Online или DISM.
