Azure功能:Powershell命令New AzureRmVM永不返回
我有一个powershell脚本,用于构建VMAzure功能:Powershell命令New AzureRmVM永不返回,azure,azure-functions,azure-powershell,Azure,Azure Functions,Azure Powershell,我有一个powershell脚本,用于构建VM # Variables for common values $resourceGroup = "AAA-Production3" $location = "West US 2" $vmName = "AAA-Prod-SVR1" $SubnetName = "AAA-PROD-SUBNET01" $NamevNET = "AAA-PROD-VNET" $Namepublicdns = "AAA-PROD-ADF01-IP01" $NameNetwo
# Variables for common values
$resourceGroup = "AAA-Production3"
$location = "West US 2"
$vmName = "AAA-Prod-SVR1"
$SubnetName = "AAA-PROD-SUBNET01"
$NamevNET = "AAA-PROD-VNET"
$Namepublicdns = "AAA-PROD-ADF01-IP01"
$NameNetworkSecurityGroupRuleRDP = 'Default-allow-rdp'
$NameNetworkSecurityGroup = 'AAA-SVR1-NSG'
$NameVNic = "AAA-PROD-VNIC01"
$VMSize = 'Standard_D1_v2'
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
New-AzureRmResourceGroup -Name $resourceGroup -Location $location
$subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix 10.50.1.0/24
$vnet = New-AzureRmVirtualNetwork -ResourceGroupName $resourceGroup -Location $location `
-Name $NamevNET -AddressPrefix 10.50.1.0/24 -Subnet $subnetConfig
# Create a public IP address and specify a DNS name
$pip = New-AzureRmPublicIpAddress -ResourceGroupName $resourceGroup -Location $location `
-Name "$Namepublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4
# Create an inbound network security group rule for port 3389
$nsgRuleRDP = New-AzureRmNetworkSecurityRuleConfig -Name $NameNetworkSecurityGroupRuleRDP -Protocol Tcp `
-Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Allow
# Create a network security group
$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
-Name $NameNetworkSecurityGroup -SecurityRules $nsgRuleRDP
# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzureRmNetworkInterface -Name $NameVNic -ResourceGroupName $resourceGroup -Location $location `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration
$vmConfig = New-AzureRmVMConfig -VMName $vmName -VMSize $VMSize | `
Set-AzureRmVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred | `
Set-AzureRmVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version latest | `
Add-AzureRmVMNetworkInterface -Id $nic.Id
# Create a virtual machine
New-AzureRmVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig
一切运行正常,但当它结束时,新的AzureRmVM脚本永远不会返回或退出。如果我断开计算机与网络的连接,我会收到一条关于长时间运行进程的消息,但除此之外,外壳似乎被锁定
你知道如何让命令退出以便我可以重用shell吗?Azure函数有一个默认超时,创建VM可能需要一些时间。我已经使用VM一个小时了。一切按预期部署。命令行仍然没有返回,shell被冻结。不会响应Ctrl-C或任何其他键盘命令。使用“构建虚拟机脚本”的几个变体尝试了此操作,每次的结果都是一样的-一个冻结的shell。@DonaldAirey我认为您无法在Azure函数中完成脚本。因为当您运行命令“获取凭证”时,需要您在窗口中输入用户名和密码。但是Azure函数不支持用户交互。Azure函数有一个默认超时,创建VM可能需要一段时间。我已经使用VM一个小时了。一切按预期部署。命令行仍然没有返回,shell被冻结。不会响应Ctrl-C或任何其他键盘命令。使用“构建虚拟机脚本”的几个变体尝试了此操作,每次的结果都是一样的-一个冻结的shell。@DonaldAirey我认为您无法在Azure函数中完成脚本。因为当您运行命令“获取凭证”时,需要您在窗口中输入用户名和密码。但是Azure功能不支持用户交互。