Azure自动化模块导入 - 如何调查未作为活动导出/提取的模块成员?

时间:2016-03-03 16:42:25

标签: powershell azure powershell-ise azure-automation powershell-module

我有一个带有一些嵌入式Workflow&本机ps1 cmdlet。

导入此模块时,只有一部分cmdlet显示为Module下提取的Activities。

模块正在成功完成导入,并显示为“可用”。

是否有任何地方可以查找特定输出和任何可能的特定于成员的导入错误?

无法加载的cmdlet取决于作为程序集的一部分添加的一些新类型。 加载的cmdlet也取决于该程序集中的类型。

更令人困惑的是,当我在ISE中本地导入此模块时,一切正常并且所有cmdlet都可用/可执行。

此外:我已经在Native PowerShell cmdlet中看到了这一点,但是它也看起来好像不支持.ps1中的(单个)PowerShell工作流活动

此外,我已经在本地看到,取决于是否使用.psd1或.psm1加载我的模块,我会得到不同的行为&结果WRT依赖于装配加载。

特别是,当我尝试在本地解决不一致问题时,我已经找到了一些"无法找到类型"或者"发现一个以上的超负荷ctor与1 arg" (尽管所讨论的类型没有带有1个arg的ctor)通过[OutputType([typename])]等引用的类型的错误,当依赖于SAME程序集中的类型的OTHER cmdlet被发现时就可以了。

[编辑]
我测试的本地详细输出.psm1

  

VERBOSE:导入功能' sync-test'。
  VERBOSE:将命令导入为工作流' Sync-VsoGitRmRunbook'。

在AA中,sync-test(只是一个写字符串输出的普通Runbook)显示正常,而Sync-VsoGitRmRunbook则没有。

如果我将sync-test转换为工作流,它也会停止导入,这让我相信导出Workflow活动的模块存在限制,这些活动捆绑为.ps1文件(而不是模块中打包的C#类)

[编辑]
我创建了一个可以重现问题的模块。 https://github.com/JoeBrockhaus/AzureAutomationVsoGitSync

1 个答案:

答案 0 :(得分:0)

只能通过PowerShell模块将PowerShell cmdlet / DSC资源导入Azure自动化。如果将Workflow活动转换为cmdlet,则导入应该会成功。

您可能希望这些Workflow活动无论如何都是cmdlet,因此它们也可以在非PowerShell Workflow Runbook中使用。