无法解析请求 - MissingJsonReferenceId:使用 PowerShell Az 命令创建 NIC 时出错

Cannot parse the request - MissingJsonReferenceId : Error while creating NIC using PowerShell Az command

我正在使用下面的 Az PowerShell 命令为虚拟机创建 NIC

  # Create a NIC for the web server VM.
  $nicVMweb = New-AzNetworkInterface -ResourceGroupName $rgName -Location $location `
    -Name $VmFrontendNICCardName -PublicIpAddress $publicipvm1 `
    -NetworkSecurityGroup $nsgfe -Subnet $virtualNetwork.Subnets[0]

Cannot parse the request. StatusCode: 400 ReasonPhrase: Bad Request ErrorCode: InvalidRequestFormat ErrorMessage: Cannot parse the request. Additional details: Code: MissingJsonReferenceId Message: Value for | reference id is missing. Path properties.ipConfigurations[0].properties.subnet. OperationID : 78525e42-a036-460f-10f9-5b993b7ca5e6

问题由以下 PowerShell 解决

$Subnet = Get-AzVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $rgName
$IPconfig = New-AzNetworkInterfaceIpConfig -Name $VmFrontendIpConfigName -PrivateIpAddressVersion IPv4 -PrivateIpAddress "10.0.0.10" -SubnetId $Subnet.Subnets[0].Id
$nicVMweb = New-AzNetworkInterface -Name $VmFrontendNICCardName -ResourceGroupName $rgName -Location $location -IpConfiguration $IPconfig

第一个命令有什么问题?

无法重现您的问题,您的第一个命令在我这边运行良好。

$virtualNetwork = Get-AzVirtualNetwork -Name "<vnet-name>" -ResourceGroupName "<group-name>"
$publicipvm1 = Get-AzPublicIpAddress -ResourceGroupName <group-name> -Name joyvm-ip2
$nsgfe = Get-AzNetworkSecurityGroup -Name joyvm-nsg -ResourceGroupName <group-name>
$nicVMweb = New-AzNetworkInterface -ResourceGroupName <group-name> -Location "West US 2" -Name "joyinter" -PublicIpAddress $publicipvm1 -NetworkSecurityGroup $nsgfe -Subnet $virtualNetwork.Subnets[0]

这个问题,可能和Az.Network模块的版本有关,我用的是3.3.0版本,尝试更新到最新版本:

Update-Module -Name Az.Network