Обзор
Ищете вызов Powershell script, который принимает аргумент, запускает каждое задание в фоновом режиме и показывает мне подробный вывод.
Проблема, с которой я сталкиваюсь
Выполняется script, но я хочу точно убедиться в этом потоком результатов фоновых заданий по мере их запуска.
код
###StartServerUpdates.ps1 Script###
#get list of servers to update from text file and store in array
$servers=get-content c:\serverstoupdate.txt
#run all jobs, using multi-threading, in background
ForEach($server in $servers){
Start-Job -FilePath c:\cefcu_it\psscripts\PSPatch.ps1 -ArgumentList $server
}
#Wait for all jobs
Get-Job | Wait-Job
#Get all job results
Get-Job | Receive-Job
То, что я сейчас вижу:
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
23 Job23 Running True localhost #patch server ...
25 Job25 Running True localhost #patch server ...
Что я хочу видеть:
Searching for approved updates ...
Update Found: Security Update for Windows Server 2003 (KB2807986)
Update Found: Windows Malicious Software Removal Tool - March 2013 (KB890830)
Download complete. Installing updates ...
The system must be rebooted to complete installation.
cscript exited on "myServer" with error code 3.
Reboot required...
Waiting for server to reboot (35)
Searching for approved updates ...
There are no updates to install.
cscript exited on "myServer" with error code 2.
Servername "myServer" is fully patched after 2 loops
Я хочу видеть выход или хранить его где-нибудь, чтобы я мог вернуться, чтобы убедиться, что script запущен и посмотреть, какие серверы перезагружены и т.д.
Вывод:
В прошлом я запускал script, и он прошел обновление серверов по одному и дал мне результат, который я хотел, но когда я начал делать больше серверов, эта задача заняла слишком много времени, и именно поэтому я Я пытаюсь использовать фоновые задания с помощью "Start-Job".
Может кто-нибудь помочь мне понять это, пожалуйста?