我正在尝试通过 Azure 自动化运行手册中的 set-azuremrmvmcustomscriptextension 执行 DSC 脚本。
我不想使用 Azure 自动化的 DSC,因为我的运行手册中还有其他操作需要执行(非 DSC),并且我不想使用 set-azurermvmdscextension,因为我的文件不在 Blob 存储中,但可以通过set-azurermvmcustomscriptextension 提供的 fileURI 开关。
当我通过 set-azurermvmcustomscriptextension 运行 DSC 文件 (.ps1) 时,我没有收到任何错误,它会生成本地 .mof。但是,它实际上并没有在配置括号内执行任何操作,也就是需要运行的 DSC PowerShell 代码。
.ps1 具有应用配置的 DSC 命令。如果我在通过 PowerShell ISE 远程运行到服务器时运行脚本,它运行,只有当我从 set-azurermvmcustomscriptextension 调用它时,它才不会执行配置(但仍会创建 mof)。
是否存在权限问题?我相信 DSC 在系统级别运行,并且在导入模块等时生成 mof/no 错误没有问题。这就像它只是忽略了配置。
更新 1
经过更多测试,我们发现当我们在 Set-AzureRMVMCustomScriptExtension 中使用 -Argument 时,无法运行 DSC 配置。删除它允许 DSC 配置运行......但是,我们需要从 Runbook/Set-AzureRMVMCustomScriptExtension 传递正确的参数,以使其具有正确的值。
这是我们找出 Args 的地方:如何将多个参数传递给 Set-AzureRmVMCustomScriptExtension?