Получать-кластер cmdlet перестал работать при использовании - параметрический усилитель Имени

Сводка

Когда я звоню Get-Cluster powershell возвращает название моего кластера. Для пользы простоты, позволяет, называют его Cluster1. Если я звоню Get-Cluster -Name Cluster1 это перестало работать с ошибкой.

Ошибка:

Get-Cluster : Check the spelling of the cluster name. Otherwise, there might be a problem with your network. Make sure
the cluster nodes are turned on and connected to the network or contact your network administrator.
    The RPC server is unavailable
At line:1 char:1
+ Get-Cluster -Name Cluster1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ConnectionError: (:) [Get-Cluster], ClusterCmdletException
    + FullyQualifiedErrorId : ClusterRpcConnection,Microsoft.FailoverClusters.PowerShell.GetClusterCommand

Деталь

Моя первая мысль - то, что я использую cmdlet неправильно, или winrm не работает (это). Я также думал, что, возможно, существует различие в способе, которым оно звонило, это вызывает отказ. Следующий, что логика я рассмотрел следующую technet страницу на cmdlet:

Исследование: http://technet.microsoft.com/en-US/library/hh847254 (v=wps.630) .aspx

На основе записи там, я не мог различить очевидную пользовательскую ошибку. Таким образом, я попробовал несколько вещей понять это. Сначала я думал, возможно, что я просто постоянно завинчиваю ввод, таким образом, я сделал это:

$Cluster = Get-Cluster
($cluster.Name -like "Cluster1")

Условные возвраты True таким образом, я не кластер f при вводе. Затем я попробовал следующее:

Get-Cluster | Where-Object{$_.Name -like "Cluster1"}

Который, конечно, возвращает кластерный объект. Так, что продолжается здесь? С чем отличается Get-Cluster -Name "Cluster1"?

Править

Информация о версии от Powershell:

PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.34209
BuildVersion                   6.3.9600.17090
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2
2
задан 14 October 2014 в 23:36
1 ответ

На основании моих наблюдений за запуском Get-Cluster против нескольких работающих у меня кластеров, мне показалось, что -Name использует разрешение имен, поэтому, если есть что-то, что вызывает проблемы с разрешением имен, оно не сработает, даже если имя, которое вы даете ему, является локальным компьютером.

Я попробовал это с именами кластеров и именами служб кластеров, а также именами отдельных узлов в кластере.

Я также добавил в свой файл HOSTS запись, указывающую поддельное имя для одного из кластеров, и смог успешно использовать это имя с Get-Cluster .

Для меня это убедительно свидетельствует о том, что использование -Name полностью зависит от стандартного разрешения имен в ОС.

Случай, когда Get-Cluster без имени будет работать, тогда как Get- Cluster -Name localhost (или фактическое имя хоста текущего компьютера) не будет работать, подсказывает мне, что без параметра имени Get-Cluste r пытается связаться со службой кластера непосредственно на текущем компьютере, что не требует разрешения имен.

В дополнение к разрешению имен, я считаю, что RPC-соединение устанавливается с целевым сервером при использовании ] -Name (даже если это локальный компьютер), поэтому, даже если разрешение имен работает, служба RPC фактически недоступна или включен брандмауэр может заблокировать это соединение и вызвать ошибку, которую вы видели.

I не смог это проверить, так как в настоящее время у меня нет кластера в нашей тестовой среде, и я не могу намеренно нарушить разрешение имен или RPC в производственном кластере!

К сожалению,Я не мог подтвердить эту гипотезу каким-либо авторитетным источником (я не смог найти окончательного описания такого поведения).

1
ответ дан 3 December 2019 в 12:50

Теги

Похожие вопросы