gpt4 book ai didi

powershell - 如何使用 PowerShell 将模块导入 Azure 自动化帐户?

转载 作者:行者123 更新时间:2023-12-04 10:21:02 25 4
gpt4 key购买 nike

我试图弄清楚如何从 PowerShell 库将模块安装到 Azure 自动化帐户中,但我正在苦苦挣扎……

New-AzAutomationModule 应该能够做到这一点,但它在 Azure 自动化的模块列表中不断给出“失败”状态。
我使用的命令是这样的:

$AzMods = Find-Module az.*
ForEach ($AzMod in $AZMods)
{
New-AzAutomationModule -AutomationAccountName $AAccName -Name $AzMod.Name -ContentLinkUri "$($AZMod.RepositorySourceLocation)package/$($AzMod.Name)/$($AzMod.Version)" -ResourceGroupName $RGName -Verbose -ErrorAction Continue
Sleep 5
}

我也尝试不使用 url 的版本部分,但这并没有改变任何东西。
有谁知道如何成功地做到这一点?
遗憾的是,我发现的少数帖子已过时且不再相关。

我可以通过转到库并单击按钮以部署到 Azure 自动化来做到这一点,所以我知道它可以完成,但必须手动执行此操作并不是最佳选择。

似乎 MS 已经将 PowerShell 踢到路边一段时间了,但令我感到困惑的是,从库中安装模块甚至没有在 Get-Help 部分中列出

最佳答案

我可以重现您的问题,因为大多数模块都有其依赖项,如果尚未安装其依赖项,它将失败。

您可以通过以下命令检查它们的依赖关系。

$AzMods = Find-Module Az.*
ForEach ($AzMod in $AZMods)
{
$AzMod.Dependencies.Name
}

从上面的命令,你可以找到依赖是 Az.Accounts , Az.Profile , Az.Blueprint , 和 Az.Accounts也是 Az.Blueprint的依赖,所以要解决这个问题,我们可以安装 Az.Accounts , Az.Profile先安装 Az.Blueprint ,最后安装其他模块。

这是一个示例供您引用,在我的示例中,我只使用 Sleep ,在你的生产环境中,也可以使用一些判断语句,查看 ProvisioningStateSucceeded通过 Get-AzAutomationModule ,这取决于您的要求。
$AAccName = "<automation-account-name>"
$RGName = "<group-name>"

$deps1 = @("Az.Accounts","Az.Profile")
$deps2 = "Az.Blueprint"

foreach($dep in $deps1){
$module = Find-Module -Name $dep
$link = $module.RepositorySourceLocation + "/package/" + $module.Name + "/" + $module.Version
New-AzAutomationModule -AutomationAccountName $AAccName -Name $module.Name -ContentLinkUri $link -ResourceGroupName $RGName
}

Sleep 300

$module = Find-Module -Name $deps2
$link = $module.RepositorySourceLocation + "/package/" + $module.Name + "/" + $module.Version
New-AzAutomationModule -AutomationAccountName $AAccName -Name $module.Name -ContentLinkUri $link -ResourceGroupName $RGName

Sleep 200

$AzMods = Find-Module -Name Az.*
ForEach ($AzMod in $AZMods){

if($AzMod.Name -ne 'Az.Accounts' -and $AzMod.Name -ne 'Az.Profile' -and $AzMod.Name -ne 'Az.Blueprint'){
$link = $AzMod.RepositorySourceLocation + "/package/" + $AzMod.Name + "/" + $AzMod.Version
New-AzAutomationModule -AutomationAccountName $AAccName -Name $AzMod.Name -ContentLinkUri $link -ResourceGroupName $RGName
Sleep 10
}
}

除了 ,我注意到 Az.DevOps.Blueprint模块仍然失败,不知道为什么,即使我在门户中导入它,它也失败了,可能与模块本身有关。

关于powershell - 如何使用 PowerShell 将模块导入 Azure 自动化帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60847861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com