在创建VM之前设置AzureRmVMCustomScriptExtension

时间:2017-12-27 16:23:58

标签: powershell azure azure-virtual-machine

运行以下Azure Powershell时,出现错误:

  

Set-AzureRmVMCustomScriptExtension:无法执行请求   对嵌套资源的操作。未找到父资源“mycomputer”。

$vm = New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize
$vm = Set-AzureRmVMSourceImage -VM $vm -Id $image.Id
$vm = Set-AzureRmVMOSDisk -VM $vm -StorageAccountType $vmStorageType -DiskSizeInGB $vmDiskSize -CreateOption FromImage -Caching ReadWrite
$vm = Set-AzureRmVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm = Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id
$vm = Add-AzureRmVMSecret -VM $vm -SourceVaultId $vaultId -CertificateStore "My" -CertificateUrl $certURL
$vm = Set-AzureRmVMCustomScriptExtension -ResourceGroupName $rsgName -VMName $vmName -Name $extenstionName -Location $location -StorageAccountName $storageName -StorageAccountKey $storageKey -FileName $fileName -ContainerName $containerName -Run $fileName
$vm = New-AzureRmVM -VM $vm -ResourceGroupName $rsgName -Location $location

我是否可以将CustomScriptExtension设置为构建新VM的一部分?

2 个答案:

答案 0 :(得分:0)

Set-AzureRmVMCustomScriptExtension命令可用于将自定义脚本扩展添加到现有虚拟机。现有VM。所以不,在创建虚拟机之前你不能这样做。

https://docs.microsoft.com/en-us/azure/virtual-machines/windows/extensions-customscript#powershell-deployment

答案 1 :(得分:0)

VM自定义脚本扩展是一项需要首先创建VM的单独任务。所以,只需调整脚本的执行顺序即可。

##create a VM, no need $vm
New-AzureRmVM -VM $vm -ResourceGroupName $rsgName -Location $location
##create custom script extension
Set-AzureRmVMCustomScriptExtension -ResourceGroupName $rsgName -VMName $vmName -Name $extenstionName -Location $location -StorageAccountName $storageName -StorageAccountKey $storageKey -FileName $fileName -ContainerName