使用中央服务器在远程服务器上运行Get-ClusterGroup

问题描述 投票:0回答:1

我有一个中央服务器,我可以从中运行以下PowerShell命令来获取群集服务器的群集组。

Enter-pssession -computername (ip-address) -credential (domain user)

它提示我输入密码然后我得到会话并执行

get-clustergroup

好的,直到这个没问题。

现在,我希望通过转换为PowerShell脚本使其完全自动化

当我在Powershell ISE中运行它并获取get-clustergroup的输出时,以下命令很有效

$password = ConvertTo-SecureString "password" -AsPlainText -Force
$user = "domain\user"
$cred = New-Object System.Management.Automation.PSCredential ($user,$password)

Enter-PSSession -ComputerName IP.Add.RE.SS -Credential $cred

get-clustergroup 

但是当我保存about脚本并使用PowerShell运行时,我收到以下错误。

get-clustergroup:集群服务未运行

get-clustergroup: the cluster service is not running

我想通过编写脚本来自动化该过程,以获得四个集群服务器的get-clustergroup输出。

我是PowerShell脚本的新手。我怎样才能保存输出?

powershell automation cluster-computing powershell-v2.0
1个回答
0
投票

您可以运行以下命令而不是创建与其他服务器的会话,该命令将在远程计算机上运行该命令并将输出返回到您的控制台:

Invoke-Command -ComputerName <IPAddress> -ScriptBlock { Get-ClusterGroup } -Credential $cred

如果您希望将来检索,可以将该输出存储到变量中。

由于-ComputerName可以接受数组对象,因此您可以修改命令以包含所有四个服务器。下面显示了如何使用所有计算机名称并将输出存储在变量$Output中:

$Output = Invoke-Command -ComputerName "Server1","Server2","Server3","Server4" `
         -ScriptBlock {Get-ClusterGroup} -Credential $cred
$Output

您的计算机名也可以作为数组存储在变量中。然后可以在-ComputerName参数中使用该变量:

$Computers = "Server1","Server2","Server3","Server4"
Invoke-Command -ComputerName $Computers -ScriptBlock { Get-ClusterGroup } -Credential $cred

有关更多信息,请参阅Invoke-Command

© www.soinside.com 2019 - 2024. All rights reserved.