问题标签 [start-job]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
15195 浏览

powershell - 开始作业与调用命令 -asjob

我正在尝试在 PowerShell 2.0 中执行基本的后台作业,并且在 start-job 和 invoke-command -asjob 中看到了不同的东西。

如果我这样做:

start-job -scriptblock {get-process}

我得到一个作业对象,但子作业(由 start-job 自动创建)始终具有“NotStarted”的 JobStateInfo。

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

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

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

0 投票
6 回答
18336 浏览

powershell - PowerShell 开始作业工作目录

有没有办法为 Start-Job 命令指定工作目录?

用例:

我在一个目录中,我想使用 Emacs 打开一个文件进行编辑。如果我直接这样做,它将阻止 PowerShell,直到我关闭 Emacs。但是使用 Start-Job 会尝试从我的主目录运行 Emacs,从而让 Emacs 打开一个新文件而不是我想要的文件。

我尝试使用 $pwd 指定完整路径,但脚本块中的变量在它们在 Start-Job 上下文中执行之前不会被解析。因此,某种强制解析 shell 上下文中的变量的方法也是可以接受的答案。

所以,这是我尝试过的,只是为了完整性:

0 投票
4 回答
6435 浏览

powershell - PSExec 在 start-job 中运行时永远不会完成

我正在尝试在 48 台计算机的列表上执行一个 cmd 文件。我不想按顺序执行并等待完成,因为每个 cmd 大约需要 10 分钟才能完成。WinRM 不是一个选项。WMI 也不是。PSExec一个选项....但我似乎无法让它在 Start-Job 中工作。

我正在做类似的事情:

这创造了一堆工作......但永远不会完成,如果我在其中任何一个上接受工作,我就会回来

如果我运行如下函数,它执行得很好:

启动脚本在 Server 2008r2 机器上的 Powershell v2.0 中运行我在使用域管理员用户 ID 登录时在 domain2 的机器上尝试过它(结果相同)。

0 投票
1 回答
1593 浏览

powershell - Powershell Start-Job 不会运行

我正在尝试在 powershell 2.0 中运行一个简单的作业流程,但它似乎没有运行。

当我调用 $job 时,状态显示它正在运行。但问题是它永远不会完成。

在我的 Windows 7 机器上尝试了同样的事情,它立即完成。

我在 windows xp 上运行 powershell 2.0。

有谁知道是什么导致了这个问题?我该如何解决这个问题?

这是我的$PSVersionTable

0 投票
1 回答
2726 浏览

powershell - 在 Start-Job 脚本块中使用凭据获取 WmiObject 失败

我正在使用 Get-WmiObjet cmdlet 从 Windows 2000 机器上成功检索一些信息。这些机器不属于我们的域,因此我使用 -Credential 参数来传递本地管理员凭据。

我现在尝试使用 Start-Job 并行运行多个 WMI 查询,但我什至无法让一个查询工作。

当我运行以下命令时:

创建了一个作业,提示我输入凭据,但该作业从未完成,其状态始终为“正在运行”。

当然:

工作得很好。

如何让 Get-WmiObject 使用备用凭据在 Start-Job 中成功运行?

谢谢你的帮助。

0 投票
1 回答
6959 浏览

powershell - Powershell Start-job 新窗口以管理员身份运行

我有脚本将一些命令写入另一个脚本并使用 Start-Job 命令在新窗口中启动它们(我真的需要那个)。$cred 是本地管理员的凭据。主脚本从打开“以管理员身份运行”(作为机器管理员)的 powershell 窗口开始。COMMAND 需要使用机器管理员帐户打开(例如使用“以管理员身份运行”打开新窗口)。但新窗口仅以本地管理员权限打开。我在互联网上搜索信息来解决这个问题,但失败了。可能有人知道我如何使用机器管理员(“以管理员身份运行”)使用 start-job 命令运行新窗口?

0 投票
2 回答
2322 浏览

powershell - 将 pscustomobject 传递给 start-job 脚本块时,为什么会丢失脚本属性?

在windows XP x64(我假设是win2k3)powershell 2.0上,将pscustomobjects的arraylist作为argumentlist参数传递给start-job,但scriptproperties只是从对象中消失(由get-member确认)。注意 pscustomobject 的属性确实返回得很好

有谁知道为什么?和/或有解决方法?

$dbs 是带有 pscustomobjects 的 arraylist,具有各种 noteproperties 和 scriptproperties。

一旦传递到 start-job,所有脚本属性都会消失,而注释属性工作得很好。

下面在 start-job 之外执行

返回

...

退货

0 投票
1 回答
2527 浏览

powershell - 在 Start-Job 脚本块中远程 Get-WmiObject 调用失败

好吧,我试图弄清楚这一点,但认为是时候询问互联网了。我想知道这是一个错误还是什么。

我正在尝试针对多台计算机启动作业,以确定哪些数据库名称驻留在它们上。

我的电脑1 系统设置为:Powershell 2.0、Windows 2k3 Enterprise x64

在 Computer1 上,我可以运行:

并且工作将永远停留在“运行”状态。但如果我在 shell 的作业脚本块之外运行相同的命令,则不会。

我在这里使用本地管理员(与我的域)凭据尝试了这种精确的设置,但结果相同。由于某种原因,它对我不起作用。

我尝试构建一个不使用 gwmi 的自定义 WMI dotnet 对象,但我得到了相同的结果!

-asjob 参数?:这不是解决方案。

  1. 使用此参数时,powershell 窗口在 12GB 系统上使用大约 2GB 内存时崩溃;而我可以毫无问题地使用 start-job 到 12GB。我不妨以串行方式运行每个查询。

  2. 此外,在 Gwmi 上使用 -Asjob 参数时永远不会回收内存,因此无法继续执行其他作业;即使在运行“remove-job * -force”或“[GC]::Collect()”之后,powershell.exe 的内存消耗仍然保持不变(再次与 start-job 不同)。

  3. 由于 SQL 实例名称不同,wmi 类名称也不同。所以我需要对多个类运行多个查询命令。虽然在技术上是可行的,但它更复杂,并且考虑到上述内存要求,限制为 2gb。我希望有人会知道如何让开始工作像它应该的那样工作。

所以我唯一没有尝试过的可能是我必须指定权限参数?

0 投票
0 回答
277 浏览

powershell - PowerShell Start-Job 和 Oracle

我有一个 ps 脚本(比如 Set-Data.ps1),它使用 Start-Job 调用 ps Run.ps1:Start-Job -FilePath Run.ps1 -ArgumentList 1, 2

在 Run.ps1 我有一行代码:

从 cmd 提示符我运行Set-Data.ps1.

程序从不从行 ==> Write-Output "2" 打印 "2";

作业统计信息一直显示为正在运行。

为什么会这样?

0 投票
2 回答
7029 浏览

powershell - Powershell 中的后台作业

我正在尝试在后台运行作业,该作业是带有参数的 .exe,并且目标位置有空格。例如:

我想用参数运行它:

我知道这样Start-Job做,但我尝试了很多不同的组合,它要么因为空白,要么因为参数而给我一个错误。有人可以帮我解决这里的语法吗?我需要假设这$exec是可执行文件的路径,因为它是配置文件的一部分,以后可能会更改。