Start-job vs Invoke-command -asjob
Je suis en train de faire à base de tâches en arrière-plan PowerShell 2.0, et je vais voir des choses différentes avec des start-emploi et de commande invoke-command -asjob.
Si je fais ceci:
start-job -scriptblock {get-process}
- Je obtenir un objet de travail, mais l'enfant de l'emploi (qui est automatiquement créé par la start-emploi) a toujours un JobStateInfo de "NotStarted".
ceci, cependant, fonctionne comme prévu:
invoke-command -scriptblock {get-process} -computer localhost -asjob
J'ai couru l'activer psremoting....autre chose que je dois faire pour obtenir tâches en arrière-plan de travail?
OriginalL'auteur Mike Shepard | 2009-11-12
Vous devez vous connecter pour publier un commentaire.
Le premier exemple à l'aide de start-emploi ne pas utiliser HTTP pour l'appel et utilise à la place un IPC canal avec WinRM pour l'exécuter, il ne nécessite pas de privilèges d'administration de cette façon. Le deuxième exemple avec la commande invoke-command nécessite des droits d'administrateur (par défaut) et va se connecter via HTTP et WinRM.
Pour être honnête, je pensais que le deuxième échec pour la plupart des gens. Si vous exécutez: Recevoir-Emploi à l'encontre de l'ID de la start-job invocation, ne vous obtenez des messages d'erreur?
-Oisin
BTW...il est bon de savoir qu'ils travaillent différemment en interne. N'explique toujours pas pourquoi les start-travail ne fonctionne pas, mais au moins je ne suis pas fou.
OriginalL'auteur x0n
De recevoir une mise à jour de JobStateInfo vous aurez besoin d'utiliser Get-emploi et l'Emploi créé par la Start-Emploi. Cependant, si vous utilisez cette information pour voir si le travail de finitions, d'Attente, de Travail ou de Recevoir des-Emploi -attente pourrait être mieux adaptée à vos besoins.
Wait-Job attend tout simplement jusqu'à ce que l'emploi ou de la liste des travaux, ont indiqué est terminée avant de passer. Recevoir des-Emploi -attendre la même chose, mais il réunit également les résultats de l'emploi.
OriginalL'auteur Skip