我有一段 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
}