"qfarm > C:\servers.txt" - 但我只需要服务器名称

"qfarm > C:\servers.txt" - but I need only the server names

任何人都知道如何获得与

相同的输出文件
Get-XAServer | Select -Expand ServerName | Set-Content C:\Servers.txt

但使用 qfarm 命令?我只想要 txt 文件中的服务器名称。如果我这样做 qfarm > servers.txt 我得到了服务器名,但有 IP 和一切。

qfarm 是一个外部程序,而不是 PowerShell cmdlet,因此您必须从其文本输出中解析您想要的信息。这样的事情可能会奏效:

& qfarm /online |
  Select-Object -Skip 3 |
  ForEach-Object { ($_ -split '\s+')[0] } |
  Out-File 'C:\servers.txt'

Select-Object 语句跳过 header 的前 3 行。 ForEach-Object 语句然后在空格处拆分剩余的每一行并选择结果数组的第一个字段。

您可以使用它的等效 PowerShell,而不是 qfarmGet-XAServerLoad cmdlet:

Get-XAServerLoad | Select -Expand ServerName | Set-Content C:\Servers.txt