2010-10-15 6 views
3

J'essaie d'exécuter un processus de travail simple dans PowerShell 2.0 et il ne semble pas fonctionner.Powershell Start-Job ne fonctionnera pas

 
    $job = Start-Job { Return "Some string." } 

Lorsque j'appelle $ job, le statut indique qu'il est en cours d'exécution. Mais le problème est qu'il ne se termine jamais. Essayé la même chose sur mon ordinateur Windows 7 et il se termine immédiatement. Je cours PowerHell 2.0 sur Windows XP.

Est-ce que quelqu'un sait ce qui cause ce problème? Comment puis-je résoudre ce problème?

Ceci est mon $PSVersionTable

 
    Name       Value 
    ----       ----- 
    PSVersion      2.0 
    PSCompatibleVersions   {1.0, 2.0} 
    BuildVersion     6.0.6002.18111 
    PSRemotingProtocolVersion  2.1 
    WSManStackVersion    2.0 
    CLRVersion      4.0.30319.1 
    SerializationVersion   1.1.0.1 
+0

Un repro plus simple serait 'Start-Job {1}' –

Répondre

5

Je dirais que la configuration de votre XP de PowerShell est modifié "un peu". :-) Il devrait être en cours d'exécution sur la version CLR 2.0 par exemple:

Name       Value 
----       ----- 
CLRVersion      2.0.50727.3615 
BuildVersion     6.0.6002.18111 
PSVersion      2.0 
WSManStackVersion    2.0 
PSCompatibleVersions   {1.0, 2.0} 
SerializationVersion   1.1.0.1 
PSRemotingProtocolVersion  2.1 

Essayez de réinitialiser le hack reg (ou mod Powershell.exe.config) de telle sorte que PowerShell 2.0 est en cours d'exécution sur .NET 2.0 et voir si le problème existe encore.

+0

Keith, merci! Vous avez tout à fait raison. Apparemment, lorsque vous chargez PowerShell sous .net 4 en utilisant la méthode powershell.exe.config, le travail en arrière-plan ne fonctionne pas. Cependant, il semble que ce n'est vrai que sous Windows XP depuis mon installation de Windows 7 - qui se charge également sous .net 4 - fonctionne très bien. – foureight84