预先警告我是一个powershell noob,所以如果这是一个明显的问题,请原谅我......但我在过去的几个小时里一直在努力,我仍然没有接近让它发挥作用。
正如标题所示,我正在尝试使用 Add-VpnConnection Cmdlt 通过 powershell 添加 L2tp VPN 连接。确实使用我的预共享密钥将连接添加到 Windows,所以这是一个好的开始,但是我不知道如何像在 gui 上那样填充 vpn 的用户名和密码。
我原来的 Add-VpnConnection 行看起来像:
Add-VpnConnection -Name $User -ServerAddress $compIP -TunnelType L2tp -L2tpPsk $VPNPresharedKey -RememberCredential
为了尝试提示输入凭据,我做了:
Add-VpnConnection -Name $User -ServerAddress $compIP -TunnelType L2tp -L2tpPsk $VPNPresharedKey -EncryptionLevel Optional -AuthenticationMethod Eap -EapConfigXmlStream $((New-EapConfiguration -UseWinlogonCredential).EapConfigXmlStream) -SplitTunneling -Force
但这似乎与我的第一次尝试一样。
澄清一下,如果我通过 GUI 执行此操作,我将尝试使用此脚本填充这些字段:
我自己或其他技术人员将在脚本开头的变量中输入 VPN 的用户名和密码字符串,并且我已经有一个 $Credential 对象来传递这些。我的问题是如何将其传递给 Add-VpnConnection CMDlt ?
提前致谢!
(完整脚本:https ://pastebin.com/22V5MEjj )
Set-ExecutionPolicy Unrestricted # Allows scripts to be run if cust exec policy is still active despite running as admin,
$InstallationPath = "C:\Program Files (x86)\My Company\Company Product\Product.exe.Config"
##newDBinfo - Edit this:
$User = "" #Enter User here e.g Bob
$PWord = ConvertTo-SecureString -String "Password123" -AsPlainText -Force #Enter the password in plain text here
$compIP = "Enter Customer IP here" # Enter cust instance Public IP here
$VPNPresharedKey = "Enter Customer preshared key here" # Enter cust Pre Shared key here
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
Add-VpnConnection -Name $User -ServerAddress $compIP -TunnelType L2tp -L2tpPsk $VPNPresharedKey -RememberCredential #-AuthenticationMethod Pap