I use this script to run some jobs:
#========================================================================
#Get User stats with ADInfo < --- need to see if this can be converted to native PowerShell
$XMLConfig = Get-ChildItem c:\ADInfo\XML_Config_Files
$Jobs = @()
#loop through each config file and run ADAudit - there is one file per domain
foreach ($config in $XMLConfig) {
write-host "Starting a background job for $($config.name)"
$Jobs += start-job -ScriptBlock {c:\ADInfoCmd.exe /config $args[0] } -ArgumentList $config.fullname.tostring()
}
write-host "`nJobs are running"
#=======================================================================
#End of script
Some jobs take much longer than others and I would like to be able to send a user friendly update to the console when any one of the started jobs are still running to show the script hasn't stalled.
I tried something like this
do{
write-host "working..."
}
while (wait-job $jobs)
but it writes once and then waits for the jobs to finish
I tried this
$joblist = get-job $jobs | where state -eq running
while ($joblist){
write-host "working..."
}
but I get an error for all the jobs get-job : The command cannot find the job because the job name System.Management.Automation.PSRemotingJob was not found
and $joblist
is never assigned a value.
Is there a way to do this?