0

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什么都没有发生。

当我直接在终端服务器上执行脚本时,它工作正常。

我还尝试运行Invoke-Command -ComputerName Server01 {qfarm /load}该服务器场的前 22 台服务器,然后它不会返回任何内容,但仍在运行,直到您手动将其关闭。

有谁知道它为什么会卡住?

提前致谢。

4

1 回答 1

0

首先感谢鲍勃,对我迟到的回复感到抱歉。

不幸的是,您的方法不起作用,但我找到了解决方法。

我找到了这个VBS并将其用于我的 PowerShellscript。

它看起来像这样:

$server = Import-Csv C:\Server_On.txt | Where-Object { $_.ServerStatus -eq $true }

$load = Get-WmiObject -ComputerName $server.ServerName -Namespace "root\citrix" -Class MetaFrame_Server_LoadLevel | Select-Object Servername, LoadLevel

唯一的区别qfarm /load是您必须处理每台服务器。

于 2013-03-25T07:50:04.297 回答