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 серверов фермы, после чего он ничего не возвращает, но продолжает работать, пока вы не отключите его вручную.
Кто-нибудь знает, почему он застрял?
Заранее спасибо.
qfarm /load
что это такое и что он делает? - person E.V.I.L.   schedule 22.03.2013qfarm /load
возвращает имя сервера и загрузку, верно?qfarm
— это команда, созданная для CMD, поэтому она возвращает текст, а не объект. Итак,$(qfarm /load)
может не сработать. Сделайте$test = (qfarm /load); $test.gettype()
. Я предполагаю, что это будет массив строк. - person E.V.I.L.   schedule 22.03.2013$data = cmd /c 'qfarm /load'
- person E.V.I.L.   schedule 22.03.2013