Powershell cmdlet 在作为脚本运行时要求可选参数为必填项

Powershell cmdlet 在作为脚本运行时要求可选参数为必填项

我正在尝试使用 powershell 创建一个脚本,用于将 vpn 连接添加到 windows 8.1 计算机。为此,微软制作了 add-vpnconnection cmdlet。

手动运行 add-vpnconnection 并提供强制参数时,cmdlet 运行正常。

使用我的脚本运行 cmdlet 时 - 我需要输入每个可选参数才能运行。有人知道为什么吗?我该如何避免这种情况?

Powershell 脚本:

Param(

[Parameter(Mandatory=$true)]
[string]$Client,
[string]$Remotedns,
[string]$DNSSUFFIX ,
[string]$TunnelType = "SSTP"
) #end param
Add-VpnConnection -Name "$client VPN" -ServerAddress $Remotedns -AuthenticationMethod MSChapv2 -DnsSuffix $DNSSUFFIX = "" -SplitTunneling -TunnelType $TunnelType -AllUserConnection

答案1

经过测试后,似乎您的脚本应该具有更多强制参数 -Add-VpnConnection不会仅仅接受强制传递的参数($Client)。

运行“最小集合”时,返回要求提供更多详细信息。

Add-VpnConnection -Name "Test Name" -AuthenticationMethod MSChapv2 -SplitTunneling -AllUserConnection
cmdlet Add-VpnConnection at command pipeline position 1
Supply values for the following parameters:
ServerAddress:

如果您Get-Help反对Add-VPNConnection,那么似乎您至少需要-ServerAddress$Remotedns,在您的脚本中)也是强制性的。

相关内容