@Fenderas

Как передавать результаты выполнения/ переменные между двумя разными скриптами?

Всем доброго дня. Весь функционал реализуется на платформе Windows Server 2008 r2 с Powershell 4-ой версии.

Есть хотелка - выполнять код на удаленной машине.
Все прекрасно работает через:
Invoke-Сommand -Session $session -FilePath "ПутьКСкрипту"


Хотелки начали расти и теперь мне необходимо реализовать следующую логику:

1. Первый скрипт делает определенные операции в AD, формирует параметры для выполнения кода на удаленной машине, вызывает второй скрипт с этими параметрами.
2. Второй скрипт выполняет ряд определнных действий с жесткими дисками - делает разметку. Буква нового диска формируется на этой, удаленной машине и ее необходимо передать обратно, вызывающему скрипту.
3. Первый скрипт получает эти данные и заканчивает работу с GPO, для которой как раз и требуется полученная буква диска от удаленной машины.

Вся моя беда в том, что я не понимаю как вернуть полученную букву с удаленной машины.

Я не хочу глушить весь вывод второго скрипта и делатьreturn БУКВА, так как требуется читать, что там происходит.

В голову приходит два варианта:
1. Обмен между ними (скриптами) через файлики, но эт как-то кривовато что ле.)
2. Так же можно получать список доступных букв с удаленной машины и производить выбор на стороне первого скрипта, тогда вывод буквы и не надо вовсе ловить, обойдусь. :)

Может кто-то подскажет иной, 3 - ий путь? )
  • Вопрос задан
  • 2501 просмотр
Пригласить эксперта
Ответы на вопрос 1
Первый вариант. Создавать кастомный объект с полями которые надо вернуть, например так:
[pscustomobject]@{
SeverName = $Name;
DiskLetter = $DiskLetter;
}
Дальше серилизовать его в xml, через Export-Clixml $report
Заливать на шару, где первый скрипт будет его искать.

Второй вариант. Ипользовать TCP клиент/серверное взаимодействие.
Например, poshcode.org/4601 есть еще варианты в сети.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы