- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法使用 powershell cmdlet 连接到 VPN。我使用构建代理中的“rasdial”连接到 VPN,以便我们可以触发自动化测试。整个过程是自动化的。
早期相同的 rasdial 命令 - Rasdial "VPNName"
在 VPN 的经典模型 (ASM) 中运行得非常好。但是,在迁移到 ARM 后,我遇到了这个问题。然而,通过 UI,即单击按钮连接到 VPN 工作正常,但我们需要通过脚本进行连接。
我收到一条消息-
This function is not supported on this system.
注意:我正在关注这篇文章-https://dzone.com/articles/deconstructing-azure-point
相同的解决方法在 ASM 中有效,但在 ARM 中无效。还有什么办法可以解决这个问题?
我正在使用下面的脚本来创建和下载 VPN 包。我不确定我的脚本中是否遗漏了导致此问题的某些内容-
$VNetName = "MYVPN"
$SubName = "Subnet-1"
$GWSubName = "GatewaySubnet"
$VNetPrefix1 = "15.3.0.0/16"
$SubPrefix = "15.3.1.0/24"
$GWSubPrefix = "15.3.200.0/26"
$VPNClientAddressPool = "158.17.201.0/24"
$RG = "VMsRG"
$Location = "West Europe"
$DNS = "15.3.0.0"
$GWName = "GateWay"
$GWIPName = "GateWayIP"
$GWIPconfName = "GateWayIPConfig"
$P2SRootCertName = "XXXXX.cer"
$DeployUserName = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4021342600282f342d21292c6e232f2d" rel="noreferrer noopener nofollow">[email protected]</a>"
$DeployUserPassword = "XXXXX"
$Azurepwd = ConvertTo-SecureString $DeployUserPassword -AsPlainText -Force
$AzureCredential = new-object -typename System.Management.Automation.PSCredential -argumentlist $DeployUserName, $Azurepwd
Add-AzureRmAccount -credential $AzureCredential -SubscriptionName Development
New-AzureRmResourceGroup -Name $RG -Location $Location
$fesub = New-AzureRmVirtualNetworkSubnetConfig -Name $SubName -AddressPrefix $SubPrefix
$gwsub = New-AzureRmVirtualNetworkSubnetConfig -Name $GWSubName -AddressPrefix $GWSubPrefix
New-AzureRmVirtualNetwork -Name $VNetName -ResourceGroupName $RG -Location $Location -AddressPrefix $VNetPrefix1 -Subnet $fesub, $gwsub -DnsServer $DNS
$vnet = Get-AzureRmVirtualNetwork -Name $VNetName -ResourceGroupName $RG
$subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
$pip = New-AzureRmPublicIpAddress -Name $GWIPName -ResourceGroupName $RG -Location $Location -AllocationMethod dynamic
$ipconf = New-AzureRmVirtualNetworkGatewayIpConfig -Name $GWIPconfName -Subnet $subnet -PublicIpAddress $pip
$MyP2SRootCertPubKeyBase64 = "XXXXX"
$p2srootcert = New-AzureRmVpnClientRootCertificate -Name "P2SVNETRootCertName" -PublicCertData $MyP2SRootCertPubKeyBase64
New-AzureRmVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG -Location $Location -IpConfigurations $ipconf -GatewayType Vpn -VpnType RouteBased -EnableBgp $false -GatewaySku Standard -VpnClientAddressPool $VPNClientAddressPool -VpnClientRootCertificates $p2srootcert
Get-AzureRmVpnClientPackage -ResourceGroupName $RG -VirtualNetworkGatewayName $GWName -ProcessorArchitecture Amd64
因为我能够使用 GUI 进行连接。我希望脚本能够完成它的工作。
最佳答案
4 个月后,我收到了 MS 的回复(因为我为此提出了一张罚单)。他们告诉 Rasdial 到目前为止不受 Azure VPN 客户端包支持。此外,即使在解构 azure-point-to-site-vpn 后也缺少添加路由,应通过显式添加路由来注意这一点。
因此,作为解决方法,我执行了博客中提供的步骤 - http://www.diaryofaninja.com/blog/2013/11/27/deconstructing-the-azure-point-to-site-vpn-for-command-line-usage
但是添加路线的最后部分有点复杂。因此,为了添加路线,我创建了自己的 PS 脚本-
$Subnet = @("10.0.1.0", "10.0.2.0","10.0.3.0")
$VPNClientAddressPool = "x.x.x"
$Mask = "255.255.0.0"
$azureIpAddress = ""
$VPNCmd = "MYVPNName"
这里 x.x.x 是 3 个八位字节,可以在 VPN 的“网关 - 点到站点配置”中找到-
$routeExists = route print | findstr $VPNClientAddressPool
if($routeExists)
{
route delete $Subnet
}
rasdial $VPNCmd > $null
$azureIPAddress = ipconfig | findstr $VPNClientAddressPool
if($azureIPAddress -ne $null)
{
$azureIpAddress = $azureIpAddress.Split(": ")
$azureIpAddress = $azureIpAddress[$azureIpAddress.Length-1]
$azureIpAddress = $azureIpAddress.Trim()
route add $Subnet MASK $Mask $azureIPAddress
}
这解决了我的目的。基本上你只需要处理路由添加部分。
关于azure - 无法在 azure ARM VPN 连接中通过 Rasdial 进行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638726/
我可以通过 Windows GUI RasDial 界面及其等效的 CLI (c:\windows\rasdial.exe) 完美连接到我的 VPN。但是,当尝试在 C 中对其进行自动化时,RasDi
我想在 Jenkins 中使用 rasdial 作为构建步骤,但收到以下错误:“远程访问错误 623 - 系统找不到此连接的电话簿条目。”当我在控制台中运行相同的命令时,它起作用了。你知道可能是什么问
我正在使用 建立到我的 VPN 的连接 RasSetEntryProperties 创建一个新的电话簿条目, RasSetCredentials 将凭据添加到该电话簿条目, RasGetEntryDi
我尝试以编程方式建立拨号连接。我尝试使用 RASdial.exe 和 RASPhone.exe,除了 RasDial.exe 在控制台中显示错误外,两者都一样,而 RasPhone.exe 在用户界面
我无法使用 powershell cmdlet 连接到 VPN。我使用构建代理中的“rasdial”连接到 VPN,以便我们可以触发自动化测试。整个过程是自动化的。 早期相同的 rasdial 命令
我无法使用 powershell cmdlet 连接到 VPN。我使用构建代理中的“rasdial”连接到 VPN,以便我们可以触发自动化测试。整个过程是自动化的。 早期相同的 rasdial 命令
在带有 .NET 的 C++ 中,我试图获取刚刚与 RasDial 连接的 RASCONN 的 IP 地址或接口(interface)名称(我有 HRASCONN 指针)。我发现 MSDN API 令
我基本上是在尝试使用 Windows API 连接到 VPN 连接。它在任何 Windows 32 位系统上都非常有用。它总是连接。但是当我尝试在 64 位系统上连接它时。它总是失败。如果我做错了什么
我是一名优秀的程序员,十分优秀!