当我尝试执行下面的命令时,我得到了一个参数为空的错误。有没有办法调用start-job内部的变量
$RG = "xx"
$Location1 = "xx"
$VNET1="xx"
$PublicIP1="xx"
$VNGW1 = "xx"
Start-Job {
New-AzVirtualNetworkGateway -Name $VNGW1 -ResourceGroupName $RG -Location $Location1 -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -Asn 65511 -IpConfigurations $gwipconf1 -EnableBgp $True
}无法验证参数'Name‘上的实参。参数为null或为空。请提供非null或空的参数,然后重试该命令。
发布于 2021-11-12 09:03:55
无法验证参数'Name‘上的实参。参数为null或为空。请提供非null或空的参数,然后重试该命令。
如果Start-Job cmdlet中没有参数列表,我们将无法使用变量。
我们已经创建了一个PowerShell脚本,并在我们的环境中测试了以下脚本,该脚本运行良好。我们可以通过以下两种方式使用start-job创建Virtual Network Gateway:
中使用变量作为参数列表启动作业使用脚本
使用变量作为参数列表的:
$subnet = New-AzVirtualNetworkSubnetConfig -Name 'gatewaysubnet' -AddressPrefix '10.254.0.0/27'
$ngwpip = New-AzPublicIpAddress -Name ngwpip -ResourceGroupName "vnet-gateway" -Location "UK West" -AllocationMethod Dynamic
$vnet = New-AzVirtualNetwork -AddressPrefix "10.254.0.0/27" -Location "UK West" -Name vnet-gateway -ResourceGroupName "vnet-gateway" -Subnet $subnet
$subnet = Get-AzVirtualNetworkSubnetConfig -name 'gatewaysubnet' -VirtualNetwork $vnet
$ngwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name ngwipconfig -SubnetId $subnet.Id -PublicIpAddressId $ngwpip.Id $RG = "xx"
$Location = "xx"
$gwipconf = "xx"
$VNGW = "xx"
Start-Job {
New-AzVirtualNetworkGateway -Name $args[3] -ResourceGroupName $args[0] -Location $ args[1] -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -Asn 65511 -IpConfigurations $ args[2] -EnableBgp $True
} -ArgumentList @($RG, $Location, $gwipconf, $VNGW)在Start-中使用脚本:
New-AzResourceGroup -Location "UK West" -Name "vnet-gateway"
$subnet = New-AzVirtualNetworkSubnetConfig -Name 'gatewaysubnet' -AddressPrefix '10.254.0.0/27'
$ngwpip = New-AzPublicIpAddress -Name ngwpip -ResourceGroupName "vnet-gateway" -Location "UK West" -AllocationMethod Dynamic
$vnet = New-AzVirtualNetwork -AddressPrefix "10.254.0.0/27" -Location "UK West" -Name vnet-gateway -ResourceGroupName "vnet-gateway" -Subnet $subnet
$subnet = Get-AzVirtualNetworkSubnetConfig -name 'gatewaysubnet' -VirtualNetwork $vnet
$ngwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name ngwipconfig -SubnetId $subnet.Id -PublicIpAddressId $ngwpip.Id
New-AzVirtualNetworkGateway -Name myNGW -ResourceGroupName vnet-gateway -Location "UK West" -IpConfigurations $ngwIpConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "Basic" -CustomRoute 192.168.0.0/24现在,我们已经将上面的powershell脚本文件路径作为参数传递给-
start-job -filepath \<pathofPowershellScript>以下是该参考的示例输出:

https://stackoverflow.com/questions/69794383
复制相似问题