我正在尝试在虚拟机上使用自定义脚本扩展运行脚本。 我可以通过扩展设置中的 UI 导航上传自定义脚本(在本地驱动器上),但无法通过 CLI/Powershell 执行相同操作
我正在寻找 az vm extension (CLI)/Set-AzVMCustomScriptExtension 命令可以帮助我执行上述操作,即
上传/运行本地磁盘或 Azure Repo 中存在的脚本的自定义脚本扩展
我尝试了各种方法,我能得到的最接近的是 Set-AzVMCustomScriptExtension -FileUri“file:///D:/scripts/TINFAD01.ps1”-ResourceGroupName p1cad-draas-sb-dev-dev -Location eastus -VMname TINFAD01 -Verbose -Name TINFAD01DSC -Run 'TINFAD01.ps1'|更新-AzVM -详细
给出错误:未找到部分路径(我已仔细检查路径并且它确实存在)
最佳答案
根据我的测试,如果要使用自定义脚本扩展运行本地文件系统上的脚本,我们需要将脚本上传到Azure存储。然后我们就可以运行脚本了。更多详情请引用document 。 例如: 1. 将脚本上传到Azure存储。
- 运行脚本
Set-AzVMCustomScriptExtension -ResourceGroupName nrg-win -VMName n-win01 -Location eastus -FileUri "https://nlistorageaccntv1.blob.core.windows.net/scripts/myScript.ps1" -Run 'myScript.ps1' -Name DemoScriptExtension
此外,如果您只想运行本地脚本而不想将其上传到 Azure 存储,则可以使用 Azure VM Run Command 功能。更多详情请引用document
例如:
Connect-AzAccount
Invoke-AzVMRunCommand -ResourceGroupName '<myResourceGroup>' -Name '<myVMName>' -CommandId 'RunPowerShellScript' -ScriptPath '<pathToScript>' -Parameter @{"arg1" = "var1";"arg2" = "var2"}
关于用于本地文件的 Azure 自定义脚本扩展 CLI/Powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58845816/