问题标签 [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.
powershell - 作业中的Powershell引用变量参数
我收到此错误:
我似乎无法让 tfsbuild 接受启动作业中的参数......如果我只是在没有工作的情况下执行 tfsbuild 部分,它实际上运行良好。
任何想法我应该如何传递这个价值?发送
powershell - 开始作业时超时并将变量传递给参数列表
我正在使用以下脚本尝试 ping 存储在 CSV 中的计算机列表。期望的结果是我将能够验证超时条件。
此脚本导致错误:
您必须在“-”运算符的右侧提供一个值表达式。”
如果我将参数列表移至此处:
我收到一个错误
无法验证参数“ComputerName”上的参数。参数为 null 或空。
我看过关于将变量传递给脚本块的文章和问题,但它们是 forInvoke-Command
和 not Start-Job
,我还没有让它在翻译中工作。我的印象是,如果它有效,我将看不到我期望的输出,即Write-Host
.
powershell - 如何从列表中异步调用多个 URL
我有几十万个 URL 需要调用。这些是对应用程序服务器的调用,应用程序服务器将处理它们并将状态代码写入表。我不需要等待响应(成功/失败),只需要服务器收到请求。我还希望能够指定一次可以运行多少并发作业,因为我还没有计算出tomcat可以处理多少并发请求。
到目前为止,这是我所得到的,基本上是从其他人尝试做类似的事情中得到的,而不是通过 url 调用。文本文件在其自己的行中包含每个 url。网址如下所示:
和代码:
我遇到的问题是每个“工作”都会出现 2 个错误,我不知道为什么。当我转储 url 数组 $content 时,它看起来很好,当我一一运行我的 Invoke-WebRequest 时,它们可以正常工作。
任何帮助或替代实现将不胜感激。我愿意不使用 powershell,但我仅限于 Windows 7 桌面或 Windows 2008 R2 服务器,我可能会使用 url 中的 localhost 在服务器本身上运行最终脚本,以减少网络延迟。
powershell - 使用 Get-ADPrincipalGroupMembership 作为工作
我想获得 AD Group Membership 作为一份工作。只是使用
很好地返回了 AD 组的列表。但是,当我尝试将其作为工作时:
我收到一个错误:
无法验证参数“身份”上的参数。参数为 null 或空。提供一个不为 null 或空的参数,然后重试该命令。+ CategoryInfo : InvalidData: (:) [Get-ADPrincipalGroupMembership], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.Get ADPrincipalGroupMembership + PSComputerName : localhost 我做错了什么?
powershell - 获取子作业的子作业输出
如果你开始一个工作(A),而这个工作又开始另一个工作(B),是否可以通过使用这样的东西来获取(B)的输出?
我希望我可以递归地深入研究对象,但奇怪(Get-Job -Name A).ChildJobs[0]
的是总是有一个空的 ChildJobs 集合。这可能只是我对如何创造就业机会的误解。
一种解决方法是等到作业 B 完成,获取其输出,将其存储在变量中,然后对变量执行写入输出,以便父脚本可以处理它。它有效,但这意味着我必须等到作业 B 完成,这可能需要 10-40 分钟。
我也许可以(在作业 B 中)在输出出现在平面文件或 SQLite 数据库时立即将其写入,但我希望我可以从脚本的最顶层范围中获取它。
这是一个例子
start-job - Start-Job 无法识别加载的模块
我的问题涉及 PowerCLI 的特定模块,但我希望它涉及到 PS Jobs 的更普遍的问题。我正在加载作业脚本块中的命令所需的模块,但无法识别这些命令,就好像未加载该模块一样。
我在start-job之前加载了VMware powerCLI modele,如下,但是scriptblock中的代码无法识别模块已加载,因此无法识别get-vm命令。
导入模块 VMWare.VimAutomation.core Connect-VIServer -server VIServer01 $NewJob = start-job -scriptblock {Get-VM -server VIServer01 | 选择名称,@{N="Cluster";E={Get-Cluster -VM $ }},@{N="ESXHost";E={Get-VMHost -VM $ }}}
我熟悉将参数从脚本传递到作业脚本块的需要和方法,但是如何让它识别模块已加载?另外,如果我从脚本块中加载模块,我会遇到堆栈溢出失败,我猜是由于模块的重复循环加载。
powershell - 从 foreach 调用脚本
我需要一些帮助,或者就我正在尝试做的事情提出更好的建议。
我试图复制一些东西,所以我有
这不会调用我的脚本块。
如何调用 $test1 块?
提前致谢。
powershell - ScriptBlock 中的参数未正确扩展
从此修改。编辑:为了清楚起见,删除了不必要的代码。
MyCommandlet
期望在使用之前检查一个变量(此处-Lhost $temp
)(它不应为 null 或空)。
尝试运行上述脚本时,我收到以下错误消息。
Invoke-Shellcode:无法验证参数“Lhost”上的参数。参数为 null 或空。提供一个不为 null 或空的参数,然后重试该命令。
编辑:Invoke-Shellcode
是原始 Commandlet,我将其引用为MyCommandlet
. 出于安全原因,我不想包含完整的代码(以防人们自己运行脚本)。有关更多详细信息,请参阅此处的代码
https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke--Shellcode.ps1
原始的 ScriptBlock 类似于(参见 $temp 变量)
本质上,该变量没有MyCommandlet
正确传递给我,而Write-Host $temp
在相同的上下文中返回一个非空值(这是正确的)。我知道变量不会传递给其他 ScriptBlock,特别是如果它在新作业中运行,但是因为Write-Host
能够在作业中正确读取值,所以我一定错过了其他一些东西。
正如一些帖子所建议的,我尝试了以下替代方案:
...} -ArgumentList $temp
(在 ScriptBlock 之后) http://powershell.org/wp/forums/topic/passing-parameter-to-start-job/{param($temp) ...}
(在 ScriptBlock 的开头)- 直接使用
Start-Job -ScriptBlock {...}
,而不是 ScriptBlock 的变量。[scriptblock]::Create(...)
声明 ScriptBlock - 使用
Invoke-Command
, 而不是Start-Job
但不仅它也不起作用(尽管工作方式略有不同),Start-Job
如果可能的话,我想坚持下去。 - 我想避免使用 Powershell V3.0
$using:variable
功能。另外,它在我尝试的配置中不起作用。
这些都不适合我。
windows - Powershell Retrieve-Job 给出“无法索引到空数组错误”
我正在尝试使用以下脚本测试是否连接了两台 PC
当我尝试为任何一个执行 Receive-Job 时,我得到“无法索引到空数组”。我究竟做错了什么?
powershell - 包括自定义 cmdlet 的 Start-Job 以奇怪的错误终止
我开发了一些自定义cmdlet,它们用于向 SharePoint 系统执行不同的导入任务。目前,所有这些 cmdlet 都在单个 PowerShell 脚本中以串行方式运行。我想更改此设置,以便每个 cmdlet 在单独的任务(作业)中执行。
主脚本启动一项新作业,该作业与Start-Job
包含对 cmdlet 的调用的单独脚本相关。该脚本启动并执行 cmdlet。我还调试了执行的 cmdlet 的代码。到目前为止一切顺利。
但大约 15-20 秒后,作业就会终止,并显示以下错误消息:
我找不到有关如何处理此类错误的任何信息。我只是不知道这里有什么问题。
我是否必须向我的自定义 cmdlet 添加更多功能才能在作业中处理它们?
这是脚本。
主要的:
进口商品: