Start-job vs. Invoke-command -asjob

Mik*_*ard 5 powershell powershell-2.0 invoke-command start-job

我正在尝试在PowerShell 2.0中执行基本的后台作业,我看到了start-job和invoke-command -asjob的不同内容.

如果我这样做:

start-job -scriptblock {get-process}

我得到一个job对象,但是子作业(由start-job自动创建)总是有一个JobStateInfo为"NotStarted".

但是,这可以按预期工作:

invoke-command -scriptblock {get-process} -computer localhost -asjob

我已经运行了enable-psremoting ....我还需要做些什么才能让后台工作正常工作?

x0n*_*x0n 3

第一个使用 start-job 的示例不使用 HTTP 进行调用,而是使用带有 WinRM 的 IPC 通道来运行;这样就不需要管理权限。使用 invoke-command 的第二个示例确实需要管理员权限(默认情况下),并将通过 HTTP 和 WinRM 连接。

老实说,对于大多数人来说,我预计第二个会失败。如果您针对启动作业调用的 ID 运行:Receive-Job,您是否会收到任何错误消息?

-奥辛