Si tenía una VM que ha eliminado y quiere volver a usar el disco del sistema operativo para crear una nueva VM, use Get-AzDisk.
$resourceGroupName = 'myResourceGroup'
$osDiskName = 'myOsDisk'
$osDisk = Get-AzDisk `
-ResourceGroupName $resourceGroupName `
-DiskName $osDiskName
Ahora puede adjuntar este disco como disco del sistema operativo a una nueva VM.
Cree la red virtual y la subred para la máquina virtual.
Cree la subred. En este ejemplo se crea una subred llamada mySubNet, en el grupo de recursos myDestinationResourceGroup y se establece el prefijo de la dirección de subred en 10.0.0.0/24.
$subnetName = 'mySubNet'
$singleSubnet = New-AzVirtualNetworkSubnetConfig `
-Name $subnetName `
-AddressPrefix 10.0.0.0/24
Creación de la red virtual. En este ejemplo se establece el nombre de la red virtual en myVnetName, la ubicación en Oeste de EE. UU. y el prefijo de dirección de la red virtual en 10.0.0.0/16.
$vnetName = "myVnetName"
$vnet = New-AzVirtualNetwork `
-Name $vnetName -ResourceGroupName $destinationResourceGroup `
-Location $location `
-AddressPrefix 10.0.0.0/16 `
-Subnet $singleSubnet
Para poder iniciar sesión en la máquina virtual con el protocolo de escritorio remoto (RDP), debe tener una regla de seguridad que permita el acceso RDP en el puerto 3389. En nuestro ejemplo, el disco duro virtual de la nueva máquina virtual se creó a partir de una máquina virtual especializada existente de Windows, por lo que puede usar una cuenta de la máquina virtual de origen para RDP. En este ejemplo se deniega el tráfico RDP para que sea más seguro. Puede cambiar -Access
a Allow
si desea permitir el acceso RDP.
En este ejemplo se establece el nombre del grupo de seguridad de red (NSG) en myNsg y el nombre de la regla de RDP en myRdpRule.
$nsgName = "myNsg"
$rdpRule = New-AzNetworkSecurityRuleConfig -Name myRdpRule -Description "Deny RDP" `
-Access Deny -Protocol Tcp -Direction Inbound -Priority 110 `
-SourceAddressPrefix Internet -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 3389
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $destinationResourceGroup `
-Location $location `
-Name $nsgName -SecurityRules $rdpRule
Para obtener más información sobre puntos de conexión y reglas de NSG, vea Filtrar el tráfico de red con un grupo de seguridad de red.
Para permitir la comunicación con la máquina virtual en la red virtual, necesitará una dirección IP pública y una interfaz de red.
Cree la dirección IP pública. En este ejemplo, el nombre de la dirección IP pública se establece en myIP.
$ipName = "myIP"
$pip = New-AzPublicIpAddress `
-Name $ipName -ResourceGroupName $destinationResourceGroup `
-Location $location `
-AllocationMethod Dynamic
Cree la NIC. En este ejemplo, el nombre de la NIC se establece en myNicName.
$nicName = "myNicName"
$nic = New-AzNetworkInterface -Name $nicName `
-ResourceGroupName $destinationResourceGroup `
-Location $location -SubnetId $vnet.Subnets[0].Id `
-PublicIpAddressId $pip.Id `
-NetworkSecurityGroupId $nsg.Id
Establecimiento del nombre de VM y el tamaño. En este ejemplo se establece el nombre de la máquina virtual como myVM y el tamaño de la máquina virtual en Standard_A2.
$vmName = "myVM"
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize "Standard_A2"
Incorporación de la NIC.
$vm = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
Agregue el disco del sistema operativo. Agregue el disco del SO a la configuración mediante Set-AzVMOSDisk. Este ejemplo establece el tamaño del disco en 128 GB y adjunta el disco como un disco del SO Windows.
$vm = Set-AzVMOSDisk -VM $vm -ManagedDiskId $osDisk.Id -StorageAccountType Standard_LRS `
-DiskSizeInGB 128 -CreateOption Attach -Windows
Cree la VM mediante New-AzVM con las configuraciones que se acaban de crear.
New-AzVM -ResourceGroupName $destinationResourceGroup -Location $location -VM $vm
Si este comando es correcto, verá un resultado similar al siguiente:
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK OK
Debería ver la máquina virtual recién creada en el Azure Portal, en Examinar>Máquinas virtuales o mediante los comandos de PowerShell siguientes.
$vmList = Get-AzVM -ResourceGroupName $destinationResourceGroup
$vmList.Name