无法 运行 来自独立服务器的 PowerShell 集群 cmdlet

Cannot run PowerShell cluster cmdlets from a standalone server

我有一个终端服务器,它是一个独立的服务器和 4 个数据库服务器(远程服务器),它们使用 Windows 故障转移集群管理器。我需要获取所有数据库服务器的集群状态,我使用的命令是

Get-ClusterGroup -Cluster ClusterServerName

虽然此命令在 运行 来自其中一个数据库服务器时工作得很好,但如果我尝试从终端服务器执行相同的命令,则会出现以下错误:

Get-ClusterGroup : The term 'Get-ClusterGroup' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

我已经检查了终端服务器和远程计算机的 PowerShell 版本,它们是相同的 (v4.0)。有什么办法可以 运行 从终端服务器本身执行上述命令吗?

与 Windows 故障转移群集关联的 cmdlet 是名为 FailoverClusters 的模块的一部分。当您首次启动 PowerShell 时,默认情况下不会加载此模块,即使是从集群节点的控制台也是如此。要加载此 cmdlet:

Import-Module FailoverClusters

您始终可以使用

获得可用模块的列表
Get-Module -ListAvailable

如果该模块不存在,那么您应该下载它,然后导入 psm1 文件

也为此查看文档:

FailOver Cluster Module Usage

希望对您有所帮助

独立服务器没有安装故障转移集群模块。您可以从服务器管理器中的角色和功能菜单安装它。它将在功能页面中。安装后,您的错误将不会再次出现。

在 PowerShell 版本 3.0 及更高版本中,您不必显式加载模块。一旦调用模块中的命令,它将自动加载。

我不确定接受的答案对于旧版本是否正确,但对于我在 Powershell 5 上的答案。1.x 需要的是:

Import-Module Microsoft.SME.FailoverCluster