Рейтинг:2

Windows Failover Clutser не может установить ресурс кластера

флаг us
Rob

https://docs.microsoft.com/en-us/powershell/module/failoverclusters/set-clusterparameter?view=windowsserver2016-ps

У Microsoft (и других) есть хорошая документация по этому вопросу, но у меня она не работает. Я пытаюсь установить параметры IP-адреса. Проблема в том, что IP-адрес не является частью допустимых типов объектов для изменения.

Например, это не удается (из документов MS)

PS C:\> Get-ClusterResource -Name "IP-адрес кластера" | Set-ClusterParameter -Multiple @{"Address"="172.24.22.168";"Network"="Cluster Network 2";"EnableDhcp"=1}

IP-адрес кластера — «IP-адрес кластера». Я вижу это. GetType() — это PSObject. Но когда я запускаю команду Set-ClusterParameter, возникает ошибка:

Set-ClusterParameter: входной объект не может быть привязан к какому-либо параметры для команды либо потому, что команда не принимает ввод конвейера или ввод и его свойства не соответствуют ни одному из параметры, которые принимают ввод конвейера.

Если я попытаюсь использовать объект.

PS C:\Users\rdejournett> Set-ClusterParameter -InputObject

$SqlIpAddress Set-ClusterParameter: невозможно связать параметр 'InputObject' к цели. Параметр исключения «InputObject»: «Неверный объект в трубопроводе. Этот командлет принимает только объекты следующие типы: Microsoft.FailoverClusters.PowerShell.Cluster,Microsoft.FailoverClusters.PowerShell.ClusterGroup,Microsoft.FailoverClusters.PowerShell.ClusterResource,Microsoft.FailoverClusters.PowerShell.ClusterResourceType,Microsoft.FailoverClusters.PowerShell.ClusterNetwork,Microsoft.FailoverClusters.PowerShell.ClusterNetworkInterface,Microsoft. FailoverClusters.PowerShell.ClusterNode,Microsoft.FailoverClusters.PowerShell.ClusterSharedVolume,Microsoft.FailoverClusters.PowerShell.ClusterParameter"

(Объект устанавливается так)

$SqlIpAddress = Get-ClusterResource | Where-Object {$_.Name.StartsWith("IP-адрес кластера")}

Похоже, что ресурс IP-адреса не является типом ресурса, который можно установить, несмотря на документацию (или я делаю что-то не так...)

Рейтинг:2
флаг us
Rob

Это было охуенно. Документация MS приводила к действительно странным результатам.

Ответ в том, что я использовал неправильную версию powershell. Не используйте Powershell 7. Используйте версию Powershell, встроенную в Windows.

Эта команда должна работать:

PS C:\Users\rdejournett> $t = Get-ClusterGroup -Name "Группа кластера"
PS C:\Users\rdejournett> $t.GetType()

И результирующий тип объекта должен быть

Базовый тип имени IsPublic IsSerial
-------- -------- ---- --------
Верно Неверно ClusterGroup Microsoft.FailoverClusters.PowerShell.ClusterObject

В powershell 7 BaseType - это psobject - в основном он сохраняет ВСЕ в качестве базового объекта (связанного с кластерными группами), поэтому ни один из конвейеров не работает должным образом.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.