4

我正在尝试使用 PowerShell 中的作业,但我无法收到结果。这是shell的一些输出。

Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\Users\Administrator> dir


    Directory: C:\Users\Administrator


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d-r--         6/18/2013  11:52 AM            Contacts
d-r--         6/20/2013   1:00 PM            Desktop
d-r--         6/18/2013  11:52 AM            Documents
d-r--         6/18/2013  11:52 AM            Downloads
d-r--         6/18/2013  11:52 AM            Favorites
d-r--         6/18/2013  11:52 AM            Links
d-r--         6/18/2013  11:52 AM            Music
d-r--         6/18/2013  11:52 AM            Pictures
d-r--         6/18/2013  11:52 AM            Saved Games
d-r--         6/18/2013  11:52 AM            Searches
d-r--         6/18/2013  11:52 AM            Videos
-a---         6/20/2013  12:57 PM      13404 services.html


PS C:\Users\Administrator> Start-Job -ScriptBlock { dir }

Id              Name            State      HasMoreData     Location             Command
--              ----            -----      -----------     --------             -------
1               Job1            Running    True            localhost             dir


PS C:\Users\Administrator> get-job

Id              Name            State      HasMoreData     Location             Command
--              ----            -----      -----------     --------             -------
1               Job1            Completed  False           localhost             dir


PS C:\Users\Administrator> Receive-Job -id 1
PS C:\Users\Administrator>

上面的输出来自我构建并升级到域控制器的库存 Win2008 R2 服务器。它是域中唯一的计算机,并且不与任何其他计算机关联。

当我在其他计算机上运行这些命令时,接收结果没有问题。什么会导致这项工作不产生输出?我应该去哪里调试这个问题?我查看了事件日志,没有发现任何问题。

编辑:感谢大家的帮助,但我会考虑解决这个问题。我相信在构建服务器或安装补丁期间某些东西被破坏了,因为没有其他计算机表现出这种行为。我已经迁移了数据并重建了服务器,它工作正常。

4

2 回答 2

1

也许您正在搜索的目录恰好在这台计算机上是空的,但不是其他计算机。您可以尝试在作业中向 dir/gci 提供 -path 参数:

Start-Job -ScriptBlock { dir -path c:\folderThatIsForSureNotEmpty }
于 2013-07-08T15:20:49.490 回答
1

Start-Job不会在当前目录中启动作业。它启动一个新的 PowerShell 进程,并为该作业使用不同的目录。正如另一个答案所暗示的那样,您的服务器上的这个目录可能是空的,因此没有返回任何内容。如果您只是在Start-Job脚本块中编写一些输出会发生什么?你有任何输出吗?

Start-Job { Write-Host "In ur job." ; Get-Location ; dir } | Wait-Job | Receive-Jo
于 2013-07-09T09:30:55.750 回答