J'ai écrit le script powershell pour diviser un fichier (Contenant des noms d'hôtes) en dix fichiers, exécuter une commande Ping (c'est-à-dire commande powershell test-connection) aux noms d'hôte dans chaque fichier. Pour accélérer le processus, j'ai utilisé la commande start-job pour traiter chaque nom d'hôte de fichier. Si je supprime la commande start-job, les scripts fonctionnent très bien, comme vous le souhaitez. Mais quand j'utilise la commande start-job, le tableau utilisé à l'intérieur du "scriptblock" ne retourne pas la sortie désirée. Au lieu de cela, il reste vide. Voici le script partiel (pour un seul traitement de fichier). S'il vous plaît guide, qu'est-ce que je manque ici?Powershell, Start-Job ne fonctionne pas. Sans le script Start-job est Ok
Start-Job -Name "Ping-Part-1" -ScriptBlock {
foreach ($Comp1 in $file_part1_content) {
If (test-Connection -ComputerName $Comp1 -Count 1 -Quiet) {
$project1 = Create-New-Object
$project1.AliveStatus = "Alive"
$project1.Hostname = $Comp1
$resultsarray_file1 += $project1
}
Else {
$project1 = Create-New-Object
$project1.AliveStatus = "Not Alive"
$project1.Hostname = $Comp1
$resultsarray_file1 += $project1
}
}
}
'Créer un nouvel objet'? – 4c74356b41
'Start-Job' fonctionne en créant un nouveau processus avec' Runspace' séparé avec des variables séparées ('$ resultsarray_file1' en particulier). – PetSerAl
il est une fonction fonction –