Install windowsfeature не распознано как имя командлета
Перейти к содержимому

Install windowsfeature не распознано как имя командлета

PowerShell — Install-WindowsFeature (и семья) отсутствует в Windows 10?

У нас есть несколько сценариев Powershell, используемых для настройки различных сред dev /test /prod, и один из них устанавливает и настраивает IIS. К сожалению, в настоящее время эти сценарии не работают под Windows 10, так как отсутствует командлет Install-WindowsFeature.

Если они умышленно удалены или есть какое-то обруч, мне нужно перепрыгнуть, чтобы установить их, которые раньше не были нужны?

2 ответа

В то время как ответ Райана верен, я бы рекомендовал держаться подальше от командлетов Install-WindowsFeature , если вы хотите запускать свои скрипты на рабочих станциях в качестве Что ж. Вы всегда будете зависить от RSAT, даже если вам это не нужно.

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

Это еще не все. Как всегда, средства удаленного администрирования сервера (RSAT — также включает командлеты *-WindowsFeature ) всегда были очень чувствительны к версии ОС. То есть вы должны использовать Windows 7 RSAT в Windows 7 для управления сервером Server 2008 R2, Windows 8.1 RSAT в Win 8.1 для управления сервером 2012 R2 и т. Д. Использование RSAT по версиям ОС может работать, но это может также неожиданно падает. Командлеты *-WindowsFeature являются технически частью ServerManager , и поскольку сервер 2016 еще не вышел, вы можете не видеть эти командлеты некоторое время.

Или, если нет, просто найдите нижнюю рабочую станцию ​​Windows для удаленного администрирования.

Как в Powershell установить роли и компоненты используя Install-WindowsFeature и Add-WindowsCapability

Для установки ролей и компонентов в Powershell есть 3 основные команды Install-WindowsFeature, Enable-WindowsOptionalFeature и Add-WindowsCapability. Каждая из этих команд имеет свое применение и может отличаться в разных релизах Windows. В этой статье будет рассмотрен процесс установки ролей и компонентов используя обе команды на примерах.

Навигация по посту

Типы команд устанавливающие роли с Powershell

В Windows есть множество команд, с помощью которых можно установить роль или компонент. Если учесть все команды, которые можно использовать в Powershell — получится следующий список:

  • Add-WindowsCapability;
  • Enable-WindowsOptionalFeature;
  • Install-WindowsFeature;
  • Add-WindowsFeature;
  • dism.exe;
  • pkgmgr.exe.

Командлеты, которые относятся только к Powershell разделяются на 3 типа:

  • WindowsFeature — относится к модулю ServerManager. Имеет возможности относящиеся только Windows Server и установке и удалению ролей и компонентов;
  • WindowsOptionalFeature — относится к модулю DISM, который наследует функционал аналогичной cmd утилиты. Основное предназначение — работа с компонентами Windows. Компоненты доступные через эти команды можно увидеть в GUI "Включение или отключение компонентов Windows". Это старый функционал и его компоненты переезжают в интерфейс Windows 10;
  • WindowsCapability — так же относятся к DISM. Команда, которая постепенно заменяет 'WindowsOptionalFeature'. Имеет возможность установки компонентов из Windows Update. Если какие-то компоненты не получается найти через предыдущую команду, используйте эту.

Вывести все командлеты можно посмотреть так:

Варианты модулей и команд для установки ролей и компонентов в Powershell

Если вы пользуетесь старыми версиями ОС, то какие-то модули могут быть не доступны. 2019 сервер одинаков с 2016:

Варианты модулей и команд для установки ролей Powershell в зависимости от ОС

Буква А обозначает алиас. Add-WindowsFeature, в 2016+ эта та же команда, что и Install-WondowsFeature.

Сама установка ролей не обозначает и ее настройку. После установки, обычно, появляется множество команд для настройки роли.

Получение списка ролей и их установка с Powershell Install-WindowsFeature

Что бы получить список ролей можно использовать Get-WindowsFeature. Эта команда, как и все 'WindowsFeature', может работать локально и удаленно. По умолчанию она возвращает роли и компоненты. Несколько примеров выполнения командлета:

Получение списка установленных ролей с Powershell

Имена для установки роли берутся из колонки 'Name'. Если вы до сих пор плохо понимаете что именно получает и устанавливает эта команда — откройте 'Server Manager' на 'Windows Server' и посмотрите меню установки:

Список установленных ролей с Powershell

Список установленных компонентов Powershell

Сам пакет WindowsFeature (модуль ServerManager) может быть установлен на Windows 10 с RSAT.

Базовая установка роли, но не совсем верная, на примере Active Directory Domain Services, будет следующей:

Установка роли с Powershell Install-WindowsFeature

Перед использованием командлета обратите внимание на 2 параметра, которые вы можете указать:

  • IncludeManagementTools — добавляет к установке модули Powershell и панели администрирования;
  • IncludeAllSubFeature — подразумевает, что вы устанавливаете не одну роль, а всю вложенную ветку.

Если вы забудете указать параметры указанные выше, то команду можно будет выполнить повторно с их включением.

Так же доступны следующие параметры:

  • LogPath — путь до файла, в который вы хотите сохранить лог установки;
  • Restart — перезагрузить компьютер если это понадобится после установки;
  • Source — внешний источник для установки роли;
  • Vhd — установка на vhd диск;
  • ConfigurationFilePath — перед установкой роли в Server Manager он предлагает сохранить конфигурацию. Это конфигурацию можно использовать здесь.

Если бы я устанавливал Active Directory на обычный GUI сервер, удаленно, то это бы выглядело так:

Установка роли с Powershell Install-WindowsFeature удаленно и логами

Если удаленный сервер работает под другими учетными данными, то передать их можно использовав команду 'Get-Credential'. В 'ComputerName' можно указывать как DNS имя, так и IP адрес.

Пример установки нескольких ролей подряд, удаленно и под другими учетными данными:

Установка роли с Powershell Install-WindowsFeature под другим пользователем

Удалить роль можно так:

Если добавить параметр 'Remove', то роль будет удалена еще и с папки 'WinSxS'. Остальные параметры аналогичны.

Установка компонентов с Enable-WindowsOptionalFeature

Список компонентов, с которыми можно работать команда группы 'WindowsOptionalFeature' аналогичны следующем окну:

Включение компонентов Windows

Учитывая, что это окно уже является наследием более старых систем (до Windows 10), вы можете не найти все компоненты. Например RSAT, который раньше можно было найти в этом окне, теперь доступен через интерфейс 'Приложения и возможности' Windows 10. Команды в этих случаях тоже отличаются.

Для получения всех компонентов нужно выполнить следующую команду:

Получение списка компонентов Windows с Powershell Get-WindowsOptionalFeature

Параметр '-Online' говорит, что пакеты будут искаться на этом же компьютере. Можно поставить '-Path', с указанием пути до образа Windows, что бы увидеть какие компоненты доступны там.

Несколько вариантов выполнения команды:

Получение списка включенных компонентов Windows с Powershell Get-WindowsOptionalFeature

Учитывая, что команды относятся к модулю 'DISM', мы можем работать с образами используя параметры 'PackagePath' и 'Path'. Такая возможность есть во всех командах 'WindowsOptionalFeature'.

Для того, что бы включить компонент нужно выполнить следующую команду:

В следующей команде указано, что нам нужно собрать все логи (а не только ошибки) и сохранить их по указанному пути:

Включение компонента Windows с Powershell Enable-WindowsOptionalFeature

Отключение приложения выполняется следующим образом:

WindowsOptionalFeature так же используется для подготовки Nano сервера т.к. там нет WindowsFeature и пакеты с ролями сначала импортируются, а затем включаются.

Установка компонентов с Add-WindowsCapability

В предыдущем разделе было упомянуто о переезде многих компонентов в интерфейс Windows 10. Командлеты 'WindowsCapability' работают именно с ними. Если мы выполним следующую команду, которая очень похожа на предыдущую, то мы увидим совершенно разные пакеты:

Получение списка компонентов Powershell с Get-WindowsCapability

Эти компоненты соответствуют следующему окну в Windows 10:

Некоторый варианта выполнения программы:

Получение списка установленных компонентов с Powershell Get-WindowsCapability

В отличие от предыдущей команды — эта программа может устанавливать компоненты из Windows Update. Поэтому в ней можно увидеть значения 'DownloadSize' и 'InstallSize'. В остальном это одинаковые команды.

Командлет PowerShell Install-WindowsFeature вызывается из-за ошибок C# и не указан в коллекциях команд

Я пытаюсь установить новые функции в системе Windows Server 2012 через PowerShell и C#. Я получаю эту ошибку обратно при попытке вызвать Install-WindowsFeature командлет:

Термин «Install-WindowsFeature» не распознается как имя командлета, функции, файла сценария или исполняемой программы.

Я могу вызывать другие командлеты через C# и даже некоторые другие новые. я сделал Get-Command и Install-WindowsFeature , Remove-WindowsFeature и Get-WindowsFeatures не указаны . но около 980 других есть.

Почему я не могу вызвать этот командлет из своей программы на C#, но когда я перехожу к PowerShell, он вызывает его нормально?

Это в каком модуле? Может дело в модуле, который по умолчанию не импортируется с такой перегрузкой CreateRunspace . Вы можете добавить модули ps в InitialSessionState объект, который вы передаете другой перегрузке CreateRunspace . — Mike Zboray

Он находится в модуле ServerManager. Я никогда не использовал объект InitialSessionState, мне придется изучить это. — Ryan Watson

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *