问题标签 [powershell-workflow]
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 - 在工作流程中重新启动后,如何在启动时格式化驱动器?
在删除页面文件并重新启动后,我试图在启动时将硬盘重新格式化为 64K,但Format-Drive
cmdlet 没有运行。
我还尝试将触发器更改为在用户登录时运行。
关于我所忽略的任何建议?
一个简单的测试用例:
powershell - 无法在工作流中使用 Add-DistributionGroupMember cmdlet
我正在尝试foreach -parallel
在我的 PowerShell 脚本中使用构造。脚本如下:
脚本执行返回错误:
术语“Add-DistributionGroupMember”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
任何人都可以帮助我在Add-DistributionGroupMember
工作流程中使用cmdlet 。
powershell - 使用带有 PowerShell 工作流的 mstest 运行并行测试
这个论坛上的新手和第一个问题。我的第一个脚本使用带有 PowerShell v4.0 工作流的 mstest 成功地并行运行测试。但是由于“InlineScript”具有并行运行 5 个的限制,因此尝试将脚本重新设计为没有“InlineScript”的东西。虽然我可以使第二个脚本适用于具有硬编码测试名称的单个测试,但当我尝试拉出所有测试以运行时遇到问题。请看一下这两个脚本并提出建议:
第一个脚本:
第二个脚本:
powershell - powershell的并行foreach最多使用5个线程吗?
的throttlelimit
参数foreach -parallel
可以控制执行脚本时使用多少进程。但即使我设置throttlelimit
大于 5,我也不能有超过 5 个进程。
该脚本在多个 powershell 进程中执行。所以我检查了脚本中的 PID。然后对 PID 进行分组,这样我就可以知道有多少进程用于执行脚本。
输出是
对于$i
小于或等于 5,我有$i
进程。但是对于$i
大于 5,我只有 5 个进程。执行脚本时有什么方法可以增加进程数吗?
编辑:为了回应@SomeShinyObject 的回答,我添加了另一个测试用例。这是对@SomeShinyObject 给出的示例的修改。我添加了一个函数S
,它只做 10 秒的睡眠。
这是输出。我按时间(秒数)对输出进行分组,并在每个组中重新排序以使其更清晰。很明显,函数S
是 5 乘 5 调用的,尽管我设置throttlelimit
为 10(首先我们有start sleep 6..10
,10 秒后,我们有start sleep 1..5
,10 秒后start sleep 11..15
,10 秒后start sleep 16..20
)。
json - 将一组 json 对象从一个 powershell 工作流传递到另一个
我想将 $output(它是一个 json 对象数组)传递给 $json,它是 mod3 中的一个 json 对象数组,它是一个 powershell 工作流。我正在使用此代码,但它总是会导致错误:
在 mod3 的内联脚本中也使用了 $json。我该怎么做呢?
azure - 如何隐藏 Select-AzureRmSubscription 的控制台输出
有谁知道如何在作为 powershell 工作流运行的 azure 工作簿中隐藏命令 Select-AzureRmSubscription 的输出
谢谢
windows - ADDSForrest 安装脚本完成后不会重新启动
在您尝试回复标题之前
我正在使用 -force 和 -confirm:$false 参数。
我的任务是编写一个脚本,该脚本将完全自动将服务器提升到新的活动目录林,但是,一旦完成从Install-ADDSForest
命令实际提升服务器,我的程序就会挂起。它完成了域控制器操作,但无法将执行返回给脚本,并且无法自动重新启动计算机。我已经尝试过使用命令的自动重启,并禁止自动重启并进行手动重启,但没有骰子:控制永远不会从命令返回。
当我将它作为作业运行时,强制它继续的唯一手动方法是关闭任务所在的窗口,打开另一个 powershell 窗口并恢复作业。计算机会立即按应有的方式重新启动。我可以编写这个关闭原始窗口并从其他地方继续的过程,但这似乎是一个可怕的黑客攻击。我是唯一一个有软件开发背景的人,其他人都是 IT,所以我不确定我可以解释为什么我需要在文档中这样做,这会使维护代码变得更加困难。
我正在使用 powershell 工作流程。该问题在 powershell 工作流程之外不存在,但我需要工作流程来运行带有检查点的脚本,以便我可以在重新启动后继续。我可以使用多个文件和变量来跟踪进度,但这会使我的代码几乎不可扩展。
下面的相关日志条目(包括我厌倦并在离开我的程序过夜后使用我的解决方法重新启动的点)
记录我的问题的最小代码示例如下:
powershell - 在工作流旁边使用递归函数
我有一个 PowerShell 脚本,其目的是获取文件列表,然后对每个文件做一些工作。
文件列表由递归函数生成,如下所示:
与此功能分开,我执行一个工作流,该工作流采用文件列表并对每个文件进行(并行)工作。代码看起来像这样:
然后将这两部分与以下逻辑结合起来:
问题是这会产生错误:
当递归函数和工作流分开时,为什么会发生这种情况?有没有办法解决这个问题?
multithreading - Powershell Foreach - 并行未达到油门限制
我有一个使用工作流的脚本Foreach -Parallel -ThrottleLimit 15
,如果循环内的代码很简单,比如写输出或一些基本的数学和睡眠语句,它工作正常,但是当我交换实际逻辑(为特定客户端更新产品)时,它会限制在5同时运行。
不幸的是,我无法发布完整的源代码,但在较高级别上,更新过程偶尔会从一些配置文件中读取,写入日志文件(每个线程的单独日志),读取/写入几个数据库,没有什么会导致CPU / RAM / IO 最大化或任何东西,据我们所知,线程之间没有关于这些资源的争用。
我们调查过的事情:
- Powershell 3 的硬限制为 5(我们使用的是 Powershell 5,当用简单的数学和写入输出替换实际工作时,一次能够运行超过 5 个)
- CPU/RAM/磁盘 IO 看起来都非常稳定(没有达到最大值或峰值很多)
- 查找有关此参数的 MS 文档(可用的不多,也没有提及我见过的任何奇怪行为)
我不知道在哪里可以解决这个问题。起初我们认为 ThrottleLimit 可能是一个最大值,实际数字是根据资源动态变化的,但我们有限的测试似乎表明它使用了完整的 15,即使 CPU 和内存非常高。此外,第一次迭代的上限为 5,远在任何资源实际被大量使用之前(start-sleep
更新脚本中立即有 15 分钟,因为我们允许警告用户完成他们正在做的事情,然后再继续取下数据库进行更新。)
有没有人知道我们可以检查或调查的其他可能导致这种情况的原因?我们之前的并行逻辑使用的是 Jobs,我想避免在看起来应该可以正常工作时返回该逻辑。