Быстрые советы по PowerShell: командлеты и сценарии для управления аварийным переключением Windows

Опубликовано: 16 Марта, 2023
Быстрые советы по PowerShell: командлеты и сценарии для управления аварийным переключением Windows

Microsoft предоставляет команды PowerShell для всех ролей и функций, включая отказоустойчивость Windows. Отказоустойчивостью Windows можно управлять с помощью диспетчера отказоустойчивого кластера, а также с помощью командлетов PowerShell, поставляемых с функцией отказоустойчивого кластера Windows. Управление повторяющимися задачами отказоустойчивого кластера облегчает жизнь администраторам. Например, если вам нужно проверить состояние ресурсов кластера, чтобы убедиться, что ресурсы запущены и работают должным образом, вы можете разработать крошечный сценарий PowerShell, который поможет вам проверить состояние критических ресурсов отказоустойчивого кластера. Точно так же вы можете использовать PowerShell для выполнения ежедневных задач обслуживания, связанных с отказоустойчивым кластером Windows. В этой статье мы представим обзор того, как установить модули отказоустойчивого кластера и несколько команд PowerShell для взаимодействия с отказоустойчивым кластером и его ресурсами.

Как установить модули отказоустойчивого кластера Windows

По умолчанию при установке компонента отказоустойчивого кластера Windows модули PowerShell для отказоустойчивого кластера устанавливаются автоматически. Однако вы можете убедиться, что модули отказоустойчивого кластера установлены, используя приведенные ниже команды. Выполнение приведенной ниже команды в командной строке PowerShell сообщит о состоянии модулей отказоустойчивого кластера.

Get-Module –ListAvailable

Выполнение приведенной ниже команды PowerShell приведет к импорту модулей отказоустойчивого кластера в текущий сеанс PowerShell.

Import-Module FailoverClusters

Совет. Возможно, вам придется запустить команду Import-Module на управляющем компьютере, с которого вы хотите управлять отказоустойчивыми кластерами Windows.

Чтобы убедиться, что модули кластера успешно импортированы в текущем сеансе PowerShell, выполните приведенную ниже команду, которая проверит наличие модулей, с которыми связана строка «кластер».

Get-Command – модуль FailoverClusters или Get-Command | Кластер FindStr

После настройки вашего компьютера с модулями отказоустойчивого кластера вы можете выполнять доступные командлеты PowerShell для взаимодействия с отказоустойчивым кластером и его ресурсами. Давайте посмотрим на некоторые примеры.

Получение информации о кластере

Получить информацию о кластере с помощью командлета PowerShell Get-Cluster очень просто. Все, что вам нужно сделать, это выполнить эту команду в командной строке PowerShell с повышенными привилегиями:

Получить кластер | Список форматов – свойство *

Приведенная выше команда получает информацию о кластере из локального кластера, а приведенная ниже команда получает все кластеры, работающие в домене Active Directory:

Get-Cluster — домен TechGenix.com

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

$Clusters = "C:TempAllClusters.CSV"
ForEach ($ThisCluster в $Clusters)
{
Get-Cluster –Name $ThisCluster –Properties ClusterLogLevel, ClusterLogSize
}

Прежде чем вы сможете использовать приведенный выше сценарий, обязательно добавьте имена кластеров в каждой строке файла C:TempAllClusters.CSV.

Чтобы быстро проверить состояние всех ресурсов в отказоустойчивом кластере Windows, вы можете использовать командлет PowerShell Get-ClusterResource. Для каждого ресурса кластера отказоустойчивый кластер реализует свойство «Состояние», которое предоставляет статус ресурса. Исправный ресурс всегда будет отображаться как «В сети». Чтобы проверить состояние всех ресурсов, просто выполните эту команду PowerShell:

Get-кластерресаурце

Если вы просто хотите увидеть имя ресурса кластера и его статус, используйте этот сценарий PowerShell.

$AllResources = Get-ClusterResource
ForEach ($ThisResource в $AllResources)
{
$ThisResource.Name
$ThisResource.State
}

Если вам нужно сообщить о сообщении в приглашении PowerShell, вы можете установить условие в приведенном выше сценарии PowerShell, которое проверяет значение свойства State и сообщает только в том случае, если ресурс не находится в сети. Например, этот скрипт сообщит имя ресурса кластера и сообщение о том, что ресурс не в сети:

$AllResources = Get-ClusterResource
ForEach ($ThisResource в $AllResources)
{
$ThisRC = $ThisResource.Name
$ThisRCS = $ThisResource.State
ЕСЛИ ($ThisRCS -ne «Онлайн»)
{
Write-Host «ВНИМАНИЕ: ресурс кластера $ThisRC НЕ В ИНТЕРНЕТЕ»
}
}

Если вам нужно увидеть состояние всех ресурсов в определенной группе кластера, использование Get-ClusterGroup вместе с Get-ClusterResource выполнит задание, как показано в приведенной ниже команде:

Get-ClusterGroup –Name <ClusterGroupNameHere> | Get-кластерресаурце

Предположим, вы хотите видеть состояние всех узлов кластера, чтобы убедиться, что они работают нормально. Подобно ресурсам кластера, отказоустойчивый кластер реализует свойство «Состояние» для узлов кластера. Свойство «Состояние» для узла кластера указывает на его состояние. Выполнив приведенную ниже команду, вы увидите значение свойства «Состояние» для всех узлов, работающих в кластере:

Get-кластерноде | Имя FT, штат

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

Get-ClusterNode –Cluster <ClusterNameHere> | Имя FT, штат

Если вы хотите увидеть ресурсы, принадлежащие определенному узлу, выполните эту команду PowerShell:

Get-ClusterNode – Имя PRDNode1 | Get-кластерресаурце | Экспорт-CSV C:TempNodeResources.CSV

Приведенная выше команда сообщит о ресурсах кластера, принадлежащих PRDNode1, а также сохранит вывод в файл c:TempNodeResources.CSV.

Существует множество командлетов PowerShell для использования с отказоустойчивыми кластерами Windows. Вы можете выполнить поиск доступных командлетов с помощью Get-Command FailoverClusters, а затем найти командлет, который поможет вам сэкономить время при выполнении задачи, которую вы обычно выполняете с помощью диспетчера отказоустойчивого кластера.