问题标签 [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 投票
1 回答
332 浏览

powershell - 如何让 Start-Job 接受脚本参数?

我有一个执行多项操作的 PowerShell 脚本,并接受延迟参数(以秒为单位的时间)。我想启动一个后台作业,在延迟参数定义的时间后播放声音。

所以用户输入如下内容:

在我的脚本中,我的参数块如下所示:

现在,$delay 参数在我的脚本中无处不在,但是当我使用 Start-Job 时它不起作用。我尝试了以下两种方法,但都没有奏效。

方法 1

方法 2

两种方法都会立即播放声音,忽略延迟。如果我用这样的数字替换 $delay ,那么它可以工作:

我很好奇为什么 $delay 不在范围内,我该如何解决这个问题?感谢您的关注。

0 投票
1 回答
1560 浏览

powershell - 使用 -ArgumentList 和 Start-Job 传入参数不起作用。代码有什么问题?

我目前在尝试多线程部署虚拟机(特别是 VMWare)时遇到问题,我正在使用以下代码来尝试:

连接 viserver vCenter

这是我目前从这段代码进入终端的输出:

谁能告诉我为什么 $num 没有转化为 $i 的数字?

谢谢,亚历克斯

0 投票
1 回答
799 浏览

wpf - Powershell - 从开始工作更新文本框

我一直在努力将我用 C# 编写的 WPF 程序转移到 PowerShell,我在从 Start-Job 在我的 RichTextBox 中附加文本时遇到了一点问题。看起来我可以在任何地方调用 Set-RichTextBox,除了在脚本块内。有解决方法吗?

我可以在除 Start-Job 之外的任何地方调用 RichTextBox,我没有收到任何错误消息。知道我在这里做错了什么吗?

0 投票
1 回答
678 浏览

multithreading - 使用 poshrsjob 模块的 powershell 线程帮助

我正在尝试对某些东西进行多线程处理并遇到了这个问题:http: //learn-powershell.net/2015/03/31/introducing-poshrsjob-as-an-alternative-to-powershell-jobs/

尝试使用但出现错误并且无法访问我需要的数据。让我解释。我在这里有一个非常简单的例子:

这实际上是错误的说计算机名是空的。我在这里放置的任何类型的命令都会出现相同的错误,即计算机名称为空。如何摆脱这种情况以及如何访问应该返回的布尔值。这会在命令行上返回 true 或 false,但在此脚本中运行时我无法访问此值。

最终,这将需要一个 IP 数组,并且我需要访问为每台机器返回的所有值。我不必使用这个豪华模块,但需要线程并认为这是一个不错的选择。任何建议在这里表示赞赏。

0 投票
0 回答
359 浏览

powershell - 开始作业和 PSVersion 错误

我需要使用网络服务删除大量记录。Microsoft.Xrm.Data.Powershell模块提供了几个 cmdlet 来完成这项工作。

以下脚本应由不同的作业执行:

这是我用来执行我的工作的代码:

当我执行我的代码时,作业中会抛出以下错误消息:

错误消息显示模块“Microsoft.Xrm.Data.Powershell”需要 PowerShell 4.0 版,但当前主机使用的是 1.0 版。

根据Start-Job 的在线文档,我可以传递参数 -PSVersion,但只能使用值 2.0 或 3.0。

这是否意味着根本不可能执行使用需要 PowerShell 4.0 /5.0 的模块的作业?

2016 年 2 月 4 日更新:我在文件“Microsoft.Xrm.Data.PowerShell.psd1”中注释掉了以下行。

...但现在我在工作中收到此错误:

我不明白为什么我现在有“Deserialized.Microsoft.Xrm.Tooling.Connector.CrmServiceClient”和“Microsoft.Xrm.Tooling.Connector.CrmServiceClient”

0 投票
1 回答
1025 浏览

powershell - Powershell 作业意外返回“System.Management.Automation.PSObject”对象而不是 System.Object

我运行一个维护 Powershell 脚本,它远程检查 Windows 服务器事件日志中的各种条目,然后采取适当的纠正/警报措施。

该脚本每 5 分钟运行一次,但由于在尝试查询无法访问/无响应的服务器时 Get-WinEvent 调用超时并出现 RPC 不可用错误,该脚本有时会运行太长时间。

为了避免这个问题,我正在努力将 Get-WinEvent 调用包装在 Jobs 中,以便我可以对它们应用可配置的超时。

对于查找多个事件的 Get-WinEvent 作业,Receive-Job 正确返回包含“System.Diagnostics.Eventing.Reader.EventLogRecord”对象的“System.Object[]”数组。如果只找到一个事件,则 Receive-Job 会改为返回“System.Management.Automation.PSObject”对象。

如果没有与作业相关的代码,查找一个事件的 Get-WinEvent 调用会返回一个非数组“System.Diagnostics.Eventing.Reader.EventLogRecord”对象,该对象可以很容易地用数组包装以供下游使用。

任何人都有更好的方法来为远程 Get-WinEvent 调用添加超时或对返回的“System.Management.Automation.PSObject”而不是非数组“System.Diagnostics.Eventing.Reader.EventLogRecord”的解释/修复' 目的?

函数和一些示例调用如下所示:


主返回行上的逗号试图强制返回一个数组(请参阅:PowerShell 中数组的计数属性与 pscustomobjects

我也尝试过实例化一个数组,然后将结果集添加到其中:

将结果集转换为数组:

并将结果集作为数组的一部分返回:


我认为这与“Powershell 中的函数返回值”提出的解决方案中所涵盖的问题不同——在我的问题中,对象类型的问题在函数返回之前就存在了。

出于调试目的取消注释以下行

结果打印以下输出:

系统对象[]

System.Management.Automation.PSObject

System.Object[] 行由运行 Get-WinEvent 查询以查找多个事件的作业返回。

“System.Management.Automation.PSObject”行由运行 Get-WinEvent 查询的作业返回,该查询找到单个事件

0 投票
1 回答
412 浏览

powershell - Powershell - 过滤 WMIObject 显示两个脚本结果

我是powershell的新手,现在我有两个脚本,一个是获取远程服务器的IP,另一个是获取远程服务器的具体服务开始时间,我需要显示远程服务器的IP和具体服务开始时间,有人可以指导我如何合并这两个脚本。

下面是我的两个脚本。

另一个获取服务开始时间是

最后我需要知道一件事,如果我对这个脚本使用 asjob,这意味着它是多线程执行吗?

对不起我的英语不好,谢谢你的帮助。

0 投票
2 回答
186 浏览

powershell - 作业不创建虚拟机

我想创建一个有工作的虚拟机。

结果:

什么都没有发生,没有创建虚拟机,但是如果我运行这个命令:

将创建虚拟机。

有没有人看到我的错误或我做错了什么?

0 投票
1 回答
1031 浏览

multithreading - powershell run script in parallel

i'm using windows server 2003, now i have a script to restart one specific service, can someone guide me how to run this script in parallel? i already use start-job, but seems it only run in backround but still sequential, below is my script:

file name: restart-service.ps1

or this

but i only can see the result, but can not see any result related information of my server's IP, can someone help me how to improve it...

0 投票
1 回答
56 浏览

powershell - 工作意外辞职

我想使用(以避免打开整个日志)Start-Job同时监视(尾)多个日志文件。Get-Content file -Wait -Last 1-Last 1

运行gc $file -Last 1 -Wait只允许拖尾一个文件。把它包起来Start-Job -Scriptblock立即辞职。

我有这样的想法。

任何建议如何解决这个问题?