Сбор ролей и компонентов на удаленных компьютерах Windows
Почти всеми ролями и функциями в Windows можно управлять с помощью PowerShell. Однако, когда дело доходит до управления ролями и функциями на удаленных компьютерах с Windows, Microsoft предоставляет необходимые командлеты PowerShell. В этой статье объясняется, как использовать командлеты PowerShell для сбора ролей и компонентов на локальных и удаленных компьютерах с Windows, а также предоставляется простой сценарий PowerShell для создания отчета об установленных ролях и компонентах на удаленных компьютерах с Windows.
Командлеты PowerShell, связанные с ролями и функциями
С ролями и функциями Windows связаны три командлета PowerShell: Get-WindowsFeature, Install-WindowsFeature и UnInstall-WindowsFeature. Как следует из названия, Get-WindowsFeature используется для получения списка ролей и функций, установленных на компьютерах с Windows. Install-WindowsFeature предназначен для установки, а UnInstall-WindowsFeature используется для удаления ролей и/или компонентов с компьютеров Windows.
Совет. Важно отметить, что ко всем командлетам PowerShell для ролей и функций добавлено слово « », а не слова «роль» и «функция». Не существует командлетов, предназначенных специально для управления ролями, и командлетов для управления только функциями. Вам потребуется использовать указанные выше командлеты для управления ролями и функциями.
Использование Get-WindowsFeature для сбора ролей и компонентов
Как следует из названия, командлет PowerShell Get-WindowsFeature используется для сбора информации о ролях и функциях на компьютерах с Windows. Вы можете использовать его для сбора информации как с локальных, так и с удаленных компьютеров Windows. Чтобы собрать функции и роли с локального компьютера, просто выполните Get-WindowsFeature. Команда вернет список установленных и доступных ролей и компонентов. Если вам нужно собрать информацию о ролях и функциях с удаленного компьютера с Windows, просто выполните эту команду PowerShell:
Get-WindowsFeature –ComputerName PRODSERVER1
А чтобы экспортировать выходные данные в файл CSV по вашему выбору, просто добавьте Export-CSV в конце команды, как показано в командлете ниже:
Get-WindowsFeature –ComputerName PRODSERVER1 | Export-CSV C:TempRoleAndFeatures.CSV
Обратите внимание, что приведенные выше команды PowerShell получают как доступные, так и установленные роли и функции на компьютере. Если вам просто нужно собрать список установленных функций и ролей, выполните эту команду PowerShell:
Get-WindowsFeature -ComputerName PRODSERVER1 | Where-Object {$_.Installed -match $True} | Select-Object Property Name
А чтобы собрать список только доступных функций и ролей, достаточно выполнить эту команду:
Get-WindowsFeature -ComputerName PRODSERVER1 | Where-Object {$_.Installed -match $False} | Select-Object Property Name
Предположим, вам нужно подготовить отчет, содержащий роли и функции, установленные на каждом компьютере Windows в вашей производственной среде, чтобы убедиться, что на рабочих серверах Windows нет ненужных ролей/функций. Обратите внимание, что роль или функция потребляют системные ресурсы, если роль или функция не предназначены для работы на рабочем сервере, что, в свою очередь, может повлиять на общую производительность серверов Windows. Чтобы просто собрать установленные роли и функции с удаленных компьютеров Windows, используйте этот сценарий PowerShell:
$ServersFile = "C:TempProdServers.TXT" $ResultFile = "C:TempRFReport.CSV" $STR = "Имя сервера, установленная роль/функция" Add-Content $STR $ResultFile ForEach ($ThisServer в GC $ServersFile) { $AllRF = Get-WindowsFeature -ComputerName $ThisServer | Where-Object {$_.Installed -match $True} | Имя свойства Select-Object ForEach ($ThisItem в $AllRF) { $InstalledItem = $ThisItem.Name $STR = $ThisServer+","+$InstalledItem Add-Content $ResultFile $STR } }
После выполнения приведенного выше сценария PowerShell отчет будет создан в папке C:TempRFReport.CSV. Отчет содержит имя сервера в одном столбце, а затем роль и компонент, установленные на этом компьютере. Обратите внимание на команду, которую мы использовали в приведенном выше сценарии PowerShell. Если вы просто выполните Get-WindowsFeature, он покажет список доступных и установленных ролей и функций, но поскольку нам нужны только установленные роли/функции, мы добавили «Where-Object {$_.Installed -match $True}» как вы можете видеть в приведенном выше сценарии.
Get-WindowsFeature для сбора ролей и функций из файлов VHDX.
Поскольку большинство организаций используют виртуализацию, вам может потребоваться составить список ролей и функций, установленных на виртуальных машинах. Хотя вы можете использовать приведенный выше сценарий PowerShell для подключения к удаленным компьютерам Windows независимо от типа машины, приведенные ниже команды и сценарий PowerShell можно использовать только для автономных виртуальных машин. Другими словами, вы не можете запрашивать роли и функции в файле VHD, если файл VHD используется.
Чтобы получить список ролей и функций, доступных и установленных в VHD-файле, просто выполните эту команду PowerShell:
Get-WindowsFeature –VHD E:TempVM1VHD2.VHDX
Если вам нужно запросить несколько файлов VHD, чтобы увидеть установленные роли и компоненты, вам необходимо создать файл VHD, содержащий путь для каждого файла VHD. Затем выполнение приведенной выше команды PowerShell для каждого файла VHD в цикле ForEach предоставит вам необходимую информацию. Вот сценарий PowerShell, который вы можете попробовать:
$VHDFile = "C:TempVHDFile.CSV" ForEach ($ThisVHD в GC $VHDFile) { Get-WindowsFeature -VHD $ThisVHD | Where-Object {$_.Installed -match $True} | Имя свойства Select-Object }
Приведенный выше сценарий PowerShell просто возвращает список установленных ролей и функций из файлов VHD в текущем окне PowerShell.
Теперь у вас есть общая информация о командлетах PowerShell, доступных для управления ролями и функциями Windows. Мы также предоставили простой сценарий PowerShell, который можно использовать для сбора ролей и функций на удаленных компьютерах Windows, указанных в текстовом файле. Мы также обсудили, как запрашивать роли и функции из файлов VHDX.