【发布时间】:2013-03-21 10:03:28
【问题描述】:
qfarm /load我在远程执行脚本时遇到问题。
脚本调用 cmd qfarm /load 的命令并将结果转换为 PSObjects。
function New-qLast()
{
param ([String] $qName, [String] $qLoad)
$qLast = New-Object PSObject
$qLast | Add-Member -MemberType NoteProperty -Name ServerName -Value $qName
$qLast | Add-Member -MemberType NoteProperty -Name ServerLast -Value $qLoad
return $qLast
}
Write-Host "Start"
$b = @()
foreach ($a in $(qfarm /load))
{
$b += $a.Split(" ") | Where-Object { $_ -ne "" }
}
$b
$table = @()
for ($i = 5; $i -lt $b.Length; $i += 2) #for XA 4.5 $i = 5 $i += 2; for XA 6.5 $i += 5 and $i = 8
{
$table += New-qLast $b[$i] $b[$i+1]
}
$table
一旦调用 qfarm /load 就没有任何事情发生了。
当我直接在终端服务器上执行脚本时,它工作正常。
我还尝试运行适用于场的前 22 台服务器的 Invoke-Command -ComputerName Server01 {qfarm /load},然后它不会返回任何内容但仍在运行,直到您手动将其关闭。
有人知道为什么会卡住吗?
提前致谢。
【问题讨论】:
-
我不熟悉
qfarm /load它是什么,它有什么作用? -
看起来
qfarm /load返回服务器名和负载,对吗?qfarm是为 CMD 创建的命令,因此它将返回文本而不是对象。所以,$(qfarm /load)可能不起作用。做$test = (qfarm /load); $test.gettype()。我的猜测是它将是一个字符串数组。 -
试试
$data = cmd /c 'qfarm /load'
标签: powershell remoting citrix invoke-command xenapp