0
qfarm/loadI在遠程執行腳本時遇到問題。Powershell調用遠程腳本來獲取farmload(XenApp 4.5)
該腳本調用命令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
什麼都沒有發生了。
當我直接在終端服務器上執行腳本,它工作正常。
我也嘗試運行Invoke-Command -ComputerName Server01 {qfarm /load}
,爲農場的前22個服務器工作,然後它不會返回任何東西,但仍然運行,直到您手動關閉它。
有沒有人知道爲什麼它卡住了?
在此先感謝。
我不熟悉'qfarm/load'它是什麼,它有什麼作用? – 2013-03-22 02:19:07
它看起來像'qfarm/load'返回服務器名稱和負載,是嗎? 'qfarm'是一個用於CMD的命令,因此它將返回文本而不是對象。所以'$(qfarm/load)'可能不起作用。做'$ test =(qfarm/load); $ test.gettype()'。我的猜測是它會是一串字符串。 – 2013-03-22 02:25:20
試試'$ data = cmd/c'qfarm/load'' – 2013-03-22 02:29:34