Не удается выполнить RDP для виртуальной машины, созданной путем прикрепления неуправляемого Windows vhd (шаблон PowerShell и ARM)

#azure #powershell

#azure #powershell

Вопрос:

За последние несколько дней я сталкиваюсь со сценарием, в котором я не могу выполнить RDP для виртуальной машины Azure, созданной путем подключения неуправляемого Windows vhd. Я объясняю выполненные шаги,

  1. Создан неуправляемый образ виртуальной машины (vhd) из msdn виртуальной машины Azure

    a. Создал виртуальную машину Azure (Windows Server 2016) с неуправляемым диском операционной системы.

    б. Обобщите виртуальную машину, используя Sysprep msdn.

    c. Освободил виртуальную машину и установил состояние для обобщения с помощью PowerShell.

 Stop-AzureRmVM -ResourceGroupName '[RG]' -Name '[vhdtest]' 

Set-AzureRmVM -ResourceGroupName '[RG]' -Name '[vhdtest]' –Generalized

Save-AzureRmVMImage -ResourceGroupName '[RG]' -Name '[vhdtest]' `
    -DestinationContainerName 'newvhds' -VHDNamePrefix 'new3'
  

Я вижу, что новый VHD скопирован в системный контейнер больших двоичных объектов.

  1. Создал виртуальную машину с неуправляемым диском, подключив VHD, созданный на шаге 1, с помощью PowerShell. Для создания виртуальной машины и подключения жесткого диска были выполнены следующие шаги или команды PowerShell,
 # created Subnet
$rgName = "Technovate2020_Logicators-RG"
$subnetName = "mySubNet-attach"
$singleSubnet = New-AzureRMVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24

# created virtual Network with assignig Subnet
$location = "CentralUS"
$vnetName = "myVnetName-attach"
$vnet = New-AzureRMVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $location `
    -AddressPrefix 10.0.0.0/16 -Subnet $singleSubnet


# created Network Security Group rule to enable RDP
$nsgName = "myNsg-attach"
$rdpRule = New-AzureRMNetworkSecurityRuleConfig -Name myRdpRule -Description "Allow RDP" `
    -Access Allow -Protocol Tcp -Direction Inbound -Priority 110 `
    -SourceAddressPrefix Internet -SourcePortRange * `
    -DestinationAddressPrefix * -DestinationPortRange 3389


# created Network Security Group and assiging rules
$nsg = New-AzureRMNetworkSecurityGroup -ResourceGroupName $rgName -Location $location `
    -Name $nsgName -SecurityRules $rdpRule


# created Public IP
$ipName = "myIP-attach"
$pip = New-AzureRMPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location `
    -AllocationMethod Dynamic


# created Network Interface Card
$nicName = "myNicName-attach"
$nic = New-AzureRMNetworkInterface -Name $nicName -ResourceGroupName $rgName `
 -Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id


# created VM Configurations
$vmName = "myVM-attach"
$vmConfig = New-AzureRMVMConfig -VMName $vmName -VMSize "Standard_D4s_v3"
# Assign NIC
$vm = Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic.Id


# Unmanaged OS Disk to attach (already copied the vhd from 'system' container to 'vhds')
$osDiskUri = "https://technovate2020logicators.blob.core.windows.net/vhds/new3-osDisk.vhd"


# assigning OS Disk using 'attach' option
$osDiskName = $vmName   "osDisk"
$vm = Set-AzureRMVMOSDisk -VM $vm -Name $osDiskName -VhdUri $osDiskUri -CreateOption attach -Windows


#Create the VM
New-AzureRMVM -ResourceGroupName $rgName -Location $location -VM $vm 

  

Создана виртуальная машина с неуправляемым диском ОС.
Проблема: Не удается выполнить RDP для виртуальной машины.

Дополнительная информация: — Если я создам ту же виртуальную машину с неуправляемым диском ОС, но использую fromImage option вместо attach , то мне разрешат выполнять RDP для виртуальной машины.

Ответ №1:

Команды, которые вы запускаете для выполнения этого процесса, принадлежат устаревшему модулю powershell, AzureRM. Я бы рекомендовал вам сначала удалить модуль azurerm powershell и установить новый модуль az powershell (модули не могут сосуществовать на одном компьютере), обновить свой скрипт для использования новых командлетов модуля powershell и посмотреть, как это работает у вас.

Комментарии:

1. Спасибо, Williams за ответ и предложения.

2. Я попробовал следующее, чтобы заставить vhd работать в соответствии с моими требованиями: 1 — Создайте виртуальную машину, используя неуправляемый диск ОС. (также выполнялось ранее.) 2 — Чтобы создать из него VHD, просто удалите виртуальную машину и другие связанные ресурсы (например, общедоступный IP, сетевой адаптер, nsg и т.д.) 3 — Останется vhd виртуальной машины. 4- Создайте виртуальную машину, подключающую vhd с шага 3, и это сработает (пробовал с шаблоном ARM). В принципе, нет необходимости выполнять шаги, упомянутые в learn.microsoft.com/en-us/azure/virtual-machines/windows /…