Работа с ролями и функциями Windows Server с помощью PowerShell

Опубликовано: 16 Марта, 2023
Работа с ролями и функциями Windows Server с помощью PowerShell

PowerShell — очень удобный инструмент. PowerShell не только помогает выполнять массовые действия, но и помогает сэкономить время, необходимое для выполнения одного и того же набора действий с помощью инструментов с графическим интерфейсом. Например, если вам нужно включить несколько учетных записей пользователей в Active Directory, большинство администраторов предпочитают использовать PowerShell, а не использовать оснастку «Пользователи и компьютеры Active Directory». Точно так же PowerShell можно использовать для управления ролями и функциями на серверах Windows. Хотя вы можете использовать диспетчер сервера для подключения к удаленному серверу Windows, а затем выполнять установку и удаление ролей и функций Windows Server, использование диспетчера сервера может занять значительное время. В этой статье объясняются некоторые полезные команды PowerShell, которые можно использовать для управления ролями и функциями на удаленных серверах Windows.

Создание текстового файла, содержащего имена Windows Server

Поскольку мы хотели бы использовать команды PowerShell, описанные в этой статье, на нескольких серверах Windows, нам потребуется создать текстовый файл, содержащий имена серверов. Файл должен содержать полное доменное имя (FQDN) каждого имени Windows Server. После создания файла, содержащего полное доменное имя Windows Server, перейдите к следующим разделам этой статьи. Предположим, мы создали файл с именем WinServers.TXT и он находится в папке C:Temp на компьютере, откуда мы выполняем приведенные ниже команды PowerShell.

Команды PowerShell для использования

Изображение 4400
Microsoft предоставляет три командлета PowerShell для работы с ролями и функциями Windows Server: Install-WindowsFeature, Get-WindowsFeature и Uninstall-WindowsFeature. Эти три командлета можно использовать для установки, получения списка компонентов и ролей, установленных на целевых серверах Windows, а также для удаления компонентов или ролей. Мы будем использовать командлет Get-WindowsFeature PowerShell для подготовки отчета, в котором перечислены роли и функции, установленные для каждого из наших серверов Windows.

Установка и удаление ролей и компонентов Windows Server

Если вам нужно установить функции или роли Windows на одном компьютере с Windows, вы можете выполнить эту команду PowerShell. Команда устанавливает роль «Веб-сервер» на компьютер с именем TestServer.TechGenix.com.

Install-WindowsFeature – Имя веб-сервера – Имя_компьютера TestServer.TechGenix.com

Как видите, проще установить роль с помощью приведенной выше команды. Если вы хотите установить роль «Веб-сервер» на серверах Windows, указанных в файле C:TempWinServers.TXT, вы можете использовать этот крошечный скрипт PowerShell.

$WinServer = "C:TempWinServers.TXT"
Foreach ($ThisServer в Get-Content «$WinServer»)
{
Install-WindowsFeature – Имя веб-сервера – Имя_компьютера $ThisServer
}

Удалить роли и компоненты Windows Server довольно просто. Вам потребуется использовать командлет Uninstall-WindowsFeature PowerShell, как показано в примерах ниже:

Чтобы удалить функцию или роль Windows с одного компьютера, выполните следующую команду:

Uninstall-WindowsFeature – Имя веб-сервера – Имя_компьютера TestServer.TechGenix.com

Если вам нужно предоставить учетные данные для удаления, просто добавьте параметр –Credential, как показано в команде ниже:

Uninstall-WindowsFeature – Name Web-Server – ComputerName TestServer.TechGenix.com – Credential TechGenixAdmin

Список ролей и функций Windows Server и подготовка отчета

Если вам нужно убедиться, что на всех производственных серверах Windows установлены необходимые роли и функции и что не установлены дополнительные роли и функции, вы можете использовать этот сценарий PowerShell:

$WinServer = "C:TempWinServers.TXT"
$Report = "C:TempRoleFeaReport.CSV"
$STR = «Имя сервера, роль/функция, состояние»
Добавить-контент $Report $STR
Foreach ($ThisServer в Get-Content «$WinServer»)
{
$AllRF = Get-WindowsFeature – имя_компьютера $ThisServer
ForEach ($AllItems в $AllRF)
{
$NameNow = $AllItems.Name
$StatusNow = $AllItems. «Состояние установки»

ЕСЛИ ($StatusNow -eq «Установлено»)
{
$STRNew = $ThisServer+","+$NameNow+",Installed"
Добавить-контент $Report $STRNew
}
}
}

Приведенный выше сценарий PowerShell запрашивает все серверы Windows, упомянутые в C:TempWinServers.TXT, выполняет команду Get-WindowsFeature для сервера, извлекает список ролей и компонентов на целевом компьютере, сохраняет в переменной $AllRF, а затем следующий цикл ForEach обрабатывает записи в переменной $AllRF и ищет только «установленные» роли/функции. Если он находит какие-либо установленные роли и компоненты, он добавляет запись с именем сервера в файл C:TempRoleFeaReport.CSV.

Мы предоставили несколько примеров использования командлетов PowerShell Get-WindowsFeature, Install-WindowsFeature и Uninstall-WindowsFeature для управления ролями и функциями Windows Server. Мы также предоставили сценарий PowerShell, который можно использовать для отслеживания ролей и функций, установленных на рабочих серверах Windows. Сценарий PowerShell предоставляет отчет в файле CSV.