【发布时间】:2021-12-21 00:19:27
【问题描述】:
我想调用存储在 Azure 存储帐户中的 PowerShell 脚本来执行 VM 规模集中的命令。我可以通过 cloudshell 调用,但使用 rubbook 时显示找不到文件
Invoke-AzVmssVMRunCommand -ResourceGroupName $ResourceGroupName -VMScaleSetName $VirtualMachineScaleSetName -InstanceId $vminstances -CommandId 'RunPowerShellScript' -ScriptPath 'script.ps1'
script.ps1 包含我想在 VMS 中运行的代码
script.ps1 存在于我的存储帐户的 $Home 位置
我试过那个解决方案
【问题讨论】:
-
它是如何通过 cloudshell 工作的?你可以添加那个命令吗?似乎没有任何对存储帐户的引用。
-
运行手册如何访问存储帐户?
-
@Blue Clouds 我打开了一个云 shell,创建了 ps 脚本并运行上面的命令并给出了脚本的路径并在 VM 中执行
-
您能否检查将 cmdlet 调用包装在
InlineScript {}块中是否可以解决问题。您可以尝试类似$ValidationResult = InlineScript { $result = Invoke-AzVmssVMRunCommand -ResourceGroupName $USING:VM.ResourceGroupName -VMName $USING:VM.Name -CommandId "RunPowerShellScript" -ScriptPath $USING:ValidationScript }添加在上述代码中包含 vmscaleset 属性和实例 id 属性。作为一种解决方法,您还可以使用 Get-AzStorageFileContent cmdlet 下载文件的副本并执行相同的操作。如果有帮助,请告诉我。
标签: azure powershell azure-automation azure-runbook azure-cloud-shell