首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数为null或空- start-job

参数为null或空- start-job
EN

Stack Overflow用户
提问于 2021-11-01 08:33:27
回答 1查看 146关注 0票数 0

当我尝试执行下面的命令时,我得到了一个参数为空的错误。有没有办法调用start-job内部的变量

代码语言:javascript
复制
$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或空的参数,然后重试该命令。

EN

回答 1

Stack Overflow用户

发布于 2021-11-12 09:03:55

无法验证参数'Name‘上的实参。参数为null或为空。请提供非null或空的参数,然后重试该命令。

如果Start-Job cmdlet中没有参数列表,我们将无法使用变量。

我们已经创建了一个PowerShell脚本,并在我们的环境中测试了以下脚本,该脚本运行良好。我们可以通过以下两种方式使用start-job创建Virtual Network Gateway:

  1. Using Variables as Argument List
  2. Using Script in Start-Job

中使用变量作为参数列表启动作业使用脚本

使用变量作为参数列表的

  • 首先,我们已经使用以下cmdlet创建了虚拟网关的所有依赖项资源:

代码语言:javascript
复制
    $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

  • 创建依赖关系后,我们使用以下Start-Job cmdlet创建虚拟网络网关:

代码语言:javascript
复制
  $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-中使用脚本:

  • 在这里,我们创建了一个启动文件( PowerShell )&存储在本地计算机中,该文件包含创建依赖资源,然后创建虚拟网络网关(使用-)。

代码语言:javascript
复制
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脚本文件路径作为参数传递给-

  • 以创建VPN网关:

代码语言:javascript
复制
start-job -filepath \<pathofPowershellScript>

以下是该参考的示例输出:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69794383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档