Azure VM'leri bir iş akışından dağıtmaya çalışıyorum, böylece paralel olarak yapılabilir. Kod, bir iş akışının dışında iyi çalışır. Ama bu hatayı bir iş akışıyla yapmaya çalışırken alınıyor.PSVirtualMachineObjects nasıl dönüştürülür?
VM parametrelerini csv dosyası aracılığıyla içe aktarıyorum. Azure VM'leri bir İş Akışı aracılığıyla dağıtmak için ek hususlar var mı?
Workflow Deploy-VMs {
$cred1= New-Object System.Management.Automation.PSCredential "User",$(ConvertTo-SecureString "Password" -asplaintext -force)
$b=Import-Csv Y:\NLG\vms1.csv -Verbose|? type -eq 'VM'
foreach ($c in $b) {
AzureRM.Resources\Login-AzureRmAccount -Credential $cred1 -SubscriptionId subscription id
$nic = New-AzureRmNetworkInterface -Name $c.Name -ResourceGroupName nlg -Location $c.Location -SubnetId $c.SubnetID
$cred= New-Object System.Management.Automation.PSCredential "nladmin",$(ConvertTo-SecureString $c.Password -asplaintext -force)
$vmConfig = New-AzureRmVMConfig -VMName $c.Name -VMSize "Standard_D1"
$vmConfig = Set-AzureRmVMOperatingSystem -VM $vmConfig -Windows -ComputerName $c.Name -Credential $cred
$vmConfig = Set-AzureRmVMSourceImage -VM $vmConfig -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer" -Skus "2012-R2-Datacenter-smalldisk" -Version "latest"
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $nic.Id
$vmConfig = Set-AzureRmVMOSDisk -VM $vmConfig -Name $c.Name -CreateOption FromImage
New-AzureRmVM -ResourceGroupName $c.RG -Location $c.Location -VM $vmConfig
}
}
ve bu hatayı uyumsuz davranırlar için satır içi komut dosyası kullanılarak Çözülmüş
Cannot bind parameter 'VM'. Cannot convert value "Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine" to type "Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine". Error: "Cannot convert the "Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine" value of type "Deserialized.Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine" to type "Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine"." + CategoryInfo : InvalidArgument: (:) [Set-AzureRmVMOperatingSystem], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Azure.Commands.Compute.SetAzureVMOperatingSystemCommand + PSComputerName : [localhost]
Powershell modüllerini güncelleştirmeyi denediniz mi? – 4c74356b41
Evet. Yardım etmiyor. Ben Powershell v5.1 kullanıyorum –
Ben laboratuvarımda test ediyorum. Seninle aynı sonucu elde ediyorum. Belki de paralel olarak VM oluşturmak için [example] (https://blogs.inframon.com/2016/09/deploy-in-parallel-multiple-azure-virtual-machines-powershell-workflow-script/) kullanabilirsiniz. –