问题标签 [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.

0 投票
1 回答
5587 浏览

powershell - 如何从 PSWorkflow Runbook 中的 InlineScript 将 PowerShell 脚本作为 Azure 自动化 Runbook 执行?

在 PowerShell 工作流活动中,我可以使用 InlineScript 调用本机 PowerShell 脚本:

但是在 Azure 自动化中,点路径(至少在我的测试中)正在返回c:\windows\system32,并且 Azure 自动化中的 script-as-runbook 不存在(或者更确切地说,它无法执行,因为它找不到脚本)。

  1. 是否可以像这样执行存储在 AAuto 中的本机 PS Runbook?
  2. 如果是这样,我如何指定文件的路径?
  3. 这是 Azure 自动化对工作流 Runbook 和 InlineScript 活动的解析/编译过程中的错误/疏忽,从而阻止了依赖的 Runbook 被复制到工作人员?

我做了一点搜索,发现在执行原生 PS Runbook 时:

  1. 首先检查它们是否有任何其他 Runbook 引用。
  2. 作为部署到工作人员执行的一部分,在下面创建一个随机命名的文件夹C:\Temp\
  3. 引用的 Runbook 最终会复制到此文件夹。
  4. 如果未找到引用 Runbook,则不会将它们复制到临时目录。
  5. 根 Runbook 似乎没有复制到该文件夹​​中。
  6. 执行 Workflow Runbook 时,不会创建动态命名的文件夹(在 c:\Temp 下)。
  7. 作为标准工作流编译的一部分,InlineScript 活动将其内容复制到自动生成的 xaml。我不确定链接文件,尽管基于看起来是运行时问题的行为。我的猜测是,每次执行工作流时都会进行编译(因此延迟启动),并在工作人员上进行,使用标准的 PS 工作流编译,就像本地一样。

我无法(轻松)将此脚本转换为工作流,并且它在其他工作流活动中使用。现在,我可以使这个“工作”的唯一方法是将脚本复制并粘贴到需要它的工作流中的第一个 InlineScript 中,从维护的角度来看,这显然是乏味和烦人的。

据推测,作为一种解决方法,我可以使用 Hybrid Worker,但这会带来许多其他问题,例如确保子 Runbook 在那里发布并且必须单独维护它们,或者 AAuto 不会自动将自定义模块从自动化帐户推送到工人(尽管这是计划好的)等。

0 投票
1 回答
193 浏览

powershell - 使用日志记录为并行计划的服务器重启创建工作流

我目前正在使用以下代码来安排服务器重启。这对于少数服务器来说效果很好,但是当有很多服务器(超过 80 台)时就会出现问题,因为Register-ScheduledJob每台服务器需要很长时间。

我的研究指向使用workflowand foreach -parallel

我遇到的问题是准确的日志记录。我的日志文件已创建,但列的顺序不正确。

0 投票
2 回答
265 浏览

powershell - Azure 自动化图形运行手册 - 无法将自动化帐户中的其他运行手册作为不同的画布活动执行?

图形编辑器 UI 似乎允许添加 Workflow Runbook(仅;不显示本机 PS),但是,这会破坏 GraphRunbook 定义/执行。

当我尝试测试或发布 Runbook 时,我收到图像中的错误。(同样奇怪的是,这条错误消息的前半部分是西班牙语,后半部分是英语。)

自动化帐户中的其他运行手册在技术上是否不受支持.. 尚未?

1]

测试二代码:

0 投票
1 回答
2914 浏览

powershell - 在 Powershell 工作流中使用 AzureStorageContext

我正在尝试将存储帐户内的所有容器复制到另一个存储帐户上的单个容器中。我已经在我自己的机器上完成了这项工作,没有任何问题,但我想使用 Azure 自动化来自动化它。

当运行一个标准的 powershell 脚本时,所有的异步调用都是同步发生的。为了解决这个问题,我尝试添加“Powershell Workflow”运行手册。问题是我有几个调用 Azure 存储命令需要一个AzureStorageContext. 问题是我无法将上下文绑定到任何东西,因为它将被序列化为字符串。

我有以下代码:

一个标准的解决方法是使用一个InlineScript块来处理任何需要上下文对象的东西。但是,如果我这样做,我将失去并行复制 blob 的能力。

有什么方法可以在 Azure 自动化上执行此操作,同时仍然并行启动所有 blob 的复制命令?

0 投票
1 回答
567 浏览

powershell - Powershell 工作流功能问题

我正在尝试在我的 SMA 运行手册上重用代码,但我尝试放入函数中的所有内容似乎都没有按预期工作。例如,如果我这样做,它会起作用并返回凭据的用户名:

输出:

在此处输入图像描述

但是,如果我变成这个,它就不再起作用了(返回 null):

输出: 在此处输入图像描述

我尝试了不同的事情,但没有成功。调试/详细屏幕不会返回任何不同的内容。这也不起作用:

我的目标是将几个函数放入一个单独的模块中,然后将其导入我的运行手册以实现可重用性,但这似乎真的行不通。这是在服务管理自动化 (SMA) 中创建的运行手册(powershell 工作流)。

我已经读到,与纯 Powershell 相比,Powershell 工作流程存在一些限制,但我不确定我是否遇到其中之一: https ://blogs.technet.microsoft.com/heyscriptingguy/2013/01/02/powershell -工作流程限制/

谢谢

0 投票
1 回答
195 浏览

powershell - 无法理解 Powershell 工作流 ForEach

我正在尝试使用 Powershell 工作流程和一些我需要并行完成的工作来让我的脚湿透。

在遇到第一个障碍之前我没有走多远,但我不明白我在这里做错了什么:

0 投票
2 回答
159 浏览

powershell - Powershell 工作流无法使用 -parameters 创建 VM

我在 Windows Azure Pack 管理站点中创作的 Powershell 工作流有问题。在 Powershell ISE 中,以下工作有效,但在服务管理门户管理站点运行手册创作中,它不起作用。卡住的地方是它说它无法验证传递的参数-Name。我删除了 -Name ,现在 -FullName 不起作用。该命令的所有开关参数似乎都不起作用。谁能帮我吗?

0 投票
1 回答
405 浏览

azure-automation - 暂停工作流后丢失上下文

Azure 自动化中的以下工作流不起作用。在 Hybrid Runbook Worker 上运行我得到:

  1. Azure 上下文已正确设置和显示
  2. VM对象信息正确显示
  3. 工作流暂停
  4. 暂停后立即使用门户恢复工作流
  5. Azure 上下文丢失,出现错误

    运行 Login-AzureRmAccount 登录。

在 Azure 工作人员上运行相同显示与上述相同,但会导致作业失败并出现错误

无法恢复工作流作业,原因可能是无法完全保存持久性数据,或者保存的持久性数据已损坏。您必须重新启动工作流程。(密钥在指定状态下无效。)

0 投票
1 回答
160 浏览

powershell - Powershell 检查点作为作业或工作流

下午,我正在编写一个 powershell 脚本来替换 600 - 1000 个文件夹中的文件。我已经完成了进程并在少数文件夹上对其进行了测试。

由于它更新了大量的文件夹,它可能会在一夜之间作为计划任务运行。是否可以在脚本停止时创建检查点,然后在脚本再次运行时从该检查点开始。

例如 -

  1. 脚本运行 4 小时
  2. 创建检查点
  3. 停止

明天

  1. 从上一个检查点继续......

我尝试创建一个在文件夹更改时更新的文件,然后将其用作“排除”文件夹。但想知道是否有更好的解决方案。

0 投票
3 回答
29832 浏览

function - Calling a Function From Another Function in PowerShell

First time in PowerShell 5 and I'm having trouble calling a function that writes messages to a file from another function. The following is a simplified version of what I'm doing.

Here's the error it generates:

I've tried moving the logMessage function around in the file and even tried Global scope.

In any other language I would be able to call logMessage from any other function. As that's the purpose of a function.

What's the "Workflow way" of reusing a block of code?

Do I need to create some logging module that gets loaded into the Workflow?