Powershell вызывает удаленный сценарий для загрузки фермы (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 серверов фермы, затем ничего не возвращает, но продолжает работать, пока вы не выключите его вручную.

Кто-нибудь знает, почему он застрял?

Заранее спасибо.

1 ответ

Прежде всего, спасибо Бобу и извините за мой поздний ответ.

К сожалению, ваш метод не работает, но я нашел способ обойти.

Я нашел этот 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 является то, что вы должны обратиться к каждому серверу.

Другие вопросы по тегам