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