如何使用PowerShell在Azure上配置VM
我有一段PowerShell代码(如下所示),它将命令管道化,以便使用现有磁盘创建新的VM。我遇到的问题是,代码是一个通用函数,我不知道需要向VM添加多少数据磁盘,这使得很难将这些数据磁盘通过管道传输到一起 我尝试过使用-inputobject,但这似乎不适用于新的AzureVM命令,任何想法都值得赞赏,因为我需要在VM启动之前连接数据磁盘 谢谢,Richard如何使用PowerShell在Azure上配置VM,powershell,azure,azure-virtual-machine,Powershell,Azure,Azure Virtual Machine,我有一段PowerShell代码(如下所示),它将命令管道化,以便使用现有磁盘创建新的VM。我遇到的问题是,代码是一个通用函数,我不知道需要向VM添加多少数据磁盘,这使得很难将这些数据磁盘通过管道传输到一起 我尝试过使用-inputobject,但这似乎不适用于新的AzureVM命令,任何想法都值得赞赏,因为我需要在VM启动之前连接数据磁盘 谢谢,Richard function Build_Existing_VM($serviceName, $osDisk, $dataDisks, $avai
function Build_Existing_VM($serviceName, $osDisk, $dataDisks, $availabilitySetName, $subnetName)
{
$vmConfig = New-AzureVMConfig -Name $serviceName `
-InstanceSize Medium `
-DiskName $osDisk `
-AvailabilitySetName $availabilitySetName `
-HostCaching "ReadOnly" |
Add-AzureEndpoint -Name "rdp" -PublicPort 63000 -LocalPort 3389 -Protocol tcp |
Add-AzureEndpoint -Name "web" -PublicPort 80 -LocalPort 6080 -Protocol tcp |
Set-AzureSubnet $subnetName
$i = 0
foreach ($dd in $dataDisks.Split(','))
{
$vmConfig = (Add-AzureDataDisk -Import -LUN $i -DiskName $dd -inputobject $vmConfig)
$i++
}
New-AzureVM -ServiceName $serviceName -VNetName $virtualNetworkName -inputobject $vmConfig
}不确定-inputobject,但。。。如果要在同一个服务名称中有多个虚拟机,则需要参数化公共RDP端口号。您已经将其设置为创建非负载平衡端点,这很好。您可能需要将-LBSetName添加到“Web”端点;否则也会被转发。大卫,谢谢你的评论。目前,这些服务只有一个VM,但一旦我解决了如何添加数据磁盘的问题,我将考虑解决负载平衡问题。只是目前还不确定如何使用PowerShell管道添加数量可变的数据磁盘。