一个月间隔后手动执行Runbook时模块无法加载错误

我对Automation Runbook有一般疑问。

我有Runbook,它获取VM清单详细信息,并且我经常在需要时手动运行它。

问题:如果我们在一段时间内(未计划运行)不使用Automation Runbook,它将无法正常工作吗?就像我们一样,如果我们在某个时间后(例如1个月后)运行Runbook,将会收到任何模块错误。

因为我以前运行它可以很好地工作并获得预期的结果,但是如果我在2或3周内没有运行它,那么当我尝试再次运行它时,它提示我“无法加载模块”错误。 当我再次尝试重新导入模块并运行几次时,它可以正常工作。是预期的吗?有人遇到过此错误吗?

任何建议都会有所帮助。谢谢。

ss1stshoo 回答:一个月间隔后手动执行Runbook时模块无法加载错误

模块不应仅仅因为您长时间不运行Runbook而消失,至少不是设计使然。但是,即使这些更改似乎与运行手册没有直接关系,在同一Automation帐户上导入,删除或更新模块也可能导致模块加载问题。如果您确定对此自动化帐户未执行任何更改,则绝对不希望出现这种情况。

不过,“未安装/导入的模块”有点含糊。您收到的确切错误消息是什么?在哪里看到它?

根据评论进行编辑:

此错误消息(“在模块Y中找到了X命令,但无法加载该模块”)意味着按预期在文件系统上找到了该模块,但是无法自动加载到当前文件中PS会话。发生这种情况的原因可能很多。如果您从运行手册中明确调用Import-Module Az.Accounts(如果仍然可以重现此错误),则会收到更详细的错误消息。

重要的是要了解,Azure自动化上下文中的“导入模块”意味着两件事:

  • 将模块导入自动化帐户。完成后,模块和版本将显示在门户网站的列表中。现在,自动化服务将确保将模块文件部署到沙箱进程上的文件系统中。
  • 将模块导入PS会话。这就是Import-Module的工作,这也是PS调用此模块中定义的命令(自动加载)时自动尝试执行的操作。这是您遇到的失败的步骤。

此错误的一个常见原因是PS会话和沙箱进程可以在Azure自动化中重用,有时您获得的会话已导入了不兼容的模块。例如,使用 Az 模块时,应格外小心,不要意外加载 AzureRM 模块(有关更多详细信息,请参见https://docs.microsoft.com/azure/automation/az-modules)。即使您没有显式加载 AzureRM 模块,如果您尝试从该自动化帐户上的任何运行簿调用AzureRM命令,或者在此自动化帐户上更新或添加AzureRM模块,也将加载它们

这只是一个示例,但是您可能还会将其他冲突的模块和模块版本导入到您的自动化帐户中。无论如何,从运行手册中调用Import-Module可以为您提供有关特定情况的更多详细信息。我认为仅过了2-3周就不会破坏您的运行记录。我怀疑此自动化帐户上正在发生其他事情,这使重用的PS会话与此运行手册不兼容。有效地导入或删除此Automation帐户上的任何模块,可以使下一个工作进入全新的沙箱流程中的全新PS会话,并且我相信这可以解决您的问题。

本文链接:https://www.f2er.com/2970865.html

大家都在问