Заморожені форми PowerShell при виконанні команд SSH


1

Майте простий скрипт, який виконується через форму Powershell

За запитом він отримує інформацію з серверів Linux, використовуючи plink а потім виводить його у вигляді виводу у формі. Проблема, що форма заморожується під час отримання інформації.

Я намагався використовувати get-job, той же результат

Моя початкова команда:

plink -batch -ssh $User@$srv -pw $pass -m $executeCommandFile | fl | out-string

Додано get-job логіка:

$myjob = start-job -scriptblock {plink -batch -ssh $User@$srv -pw $pass -m $executeCommandFile | fl | out-string}
While ( ($myjob | Select-Object -ExpandProperty State) -eq "Running") {
                    sleep 1
                }
$results = receive-job -job $myjob

Відповіді:


1

Окремі кроки. Надішліть запит на дані в темп-файл, увімкніть монітор за тимчасовим розташуванням і, коли завершиться запис даних, скористайтеся кодом форми, щоб прочитати дані тимчасового файлу назад у вашій формі проти фонового завдання.


Пробували вже. запит даних plink є частиною коду форми, тому він все ще чекає, поки він запишеться у файл. Не маю знань, щоб відокремити його від коду форми, фонового завдання і тимчасового файлу, що я знайшов в Інтернеті. Але це не добре для цього випадку
igor

Q: Що таке пакетний файл? Питання: Чи отримуєте ви будь-які результати у файлі / інтерфейсі користувача? Крім того, я мав на увазі додати у своєму першому відповіді ви використовуєте змінну, в локальній області, проти віддаленої області. Див. Це, зокрема, "Приклад 5: Використання локальної змінної у віддаленому команді"
postanote

1. якщо! [["$ (dpkg -l)" = ~ (^ | [[: space:]]) "$ package" ($ | [[: space:]])]]; потім ехо 1; fi; перевіряє, чи встановлено певний пакет linux, використовуючи dpkg команду
igor

2. Вихід є NULL або 1, отримуючи його в змінну і виконуючи відповідні обчислення
igor

3. Ви маєте на увазі викликати-командування?
igor
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.