Назад | Перейти на главную страницу

Командлет Powershell запрашивает необязательные параметры как обязательные при запуске как скрипт

Я пытаюсь использовать PowerShell для создания сценария, который я использую для добавления VPN-подключений к машинам с Windows 8.1. Для этого Microsoft создала командлет add-vpnconnection.

При запуске add-vpnconnection вручную и указании обязательных параметров командлет работает нормально.

При использовании моего сценария для запуска командлета - мне требуется каждый необязательный параметр перед его функционированием. Кто-нибудь знает почему? Как я могу предотвратить это?

Скрипт 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

После тестирования кажется, что ваш скрипт должен иметь больше обязательных параметров - 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, в вашем скрипте) также будет обязательным.