我有一段PowerShell代码(如下所示),它将命令组合在一起,以便使用现有磁盘创建新VM。我遇到的问题是代码是一个通用功能,我不知道有多少数据磁盘需要添加到VM,这使得很难将这些数据管道连接在一起。
我已经尝试过使用-inputobject,但这似乎不适用于New-AzureVM命令,因为我需要在启动VM之前连接数据磁盘,所以任何想法都会受到赞赏。
谢谢,理查德
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
}