通过 Powershell 连接到 ***
Posted
技术标签:
【中文标题】通过 Powershell 连接到 ***【英文标题】:Connect to *** by Powershell 【发布时间】:2012-05-24 01:26:01 【问题描述】:我希望我的 Windows 在加载后立即连接到 *** 服务器。我如何使用 Powershell 来做到这一点?
【问题讨论】:
【参考方案1】:试试这适用于 Windows 10
$***Name = "YOUR_***_NAME";
$*** = Get-***Connection -Name $***Name;
if($***.ConnectionStatus -eq "Disconnected")
rasdial $***Name;
【讨论】:
这在技术上确实有效,但 rasdial 要求您输入以下格式的用户名和密码: rasdial $***Name $Username $password...。即使保存了密码,它也要求您拥有这些明文参数。如果您想利用保存的密码,请使用 rasphone,此处列出的步骤:***.com/questions/14180472/… 请注意:如果您已经从 Azure 设置了 ***(如 P2S),那么这是不可能的。您必须使用从 Azure 获得的信息在 Windows 上手动设置配置。以下指南可以提供帮助:dougrathbone.com/blog/2013/11/27/… 所以无法使用 PowerShell 连接 ***?对于rasdial
是 rasdial.exe
并且只是另一个可执行文件,根本不是 powershell cmdlet。我希望 win10 有一些 cmdlet……但没有?【参考方案2】:
你可以试试这样的:
我没有测试它是否有效。 我安装了PowerShell V3 Beta - 可能需要运行这些命令。
Register-ScheduledJob -name Connect*** -ScriptBlock & rasphone My***Connection
$trigger = New-JobTrigger -AtLogOn
Add-JobTrigger -Name Connect*** -Trigger $trigger
Get-ScheduledJob -Name Connect*** | Get-JobTrigger
【讨论】:
我找到了更简单的方法)我只用一个短语“rasdial my***”创建了 .bat 文件,其中 my*** - 是我之前创建的 *** 连接的名称。然后我把这个 .bat 放到 StartUp 文件夹中。 @Ann:您应该将您的评论表述为答案!这将大大提高知名度!【参考方案3】:除了其他答案外,Windows 10 还通过名为 Always On 的配置原生支持此功能。有关始终开启的更多详细信息,请访问https://docs.microsoft.com/en-us/windows/access-protection/***/***-auto-trigger-profile
您可以通过 MDM 甚至使用 WMI/Powershell 进行部署
部署参考
*** 2 CSP:https://docs.microsoft.com/en-us/windows/client-management/mdm/***v2-csp
CSP 到 WMI 桥:https://docs.microsoft.com/en-us/windows/client-management/mdm/using-powershell-scripting-with-the-wmi-bridge-provider
【讨论】:
【参考方案4】:Windows *** 设置中的“自动连接”复选框对我来说效果很好。但是在配置拆分隧道以连接到锁定到 *** IP 地址的 VM 后,需要断开/重新连接 *** 连接才能生效。问题是 rasdial /disconnect
禁用了 AutoTrigger 设置。以下似乎可以重新启用自动触发。
在此处设置特定的 *** 配置文件名称或使用从 Get-***Connection 返回的第一个:
$***ProfileName = Get-***Connection | select -first 1 -ExpandProperty Name
显示如何设置拆分隧道的可选示例:
# Enable split-tunneling to a specific address
# Name of VM restricted to *** IP addresses
$vmName = "myserver.eastus.cloudapp.azure.com"
$ip = $(Resolve-DnsName -name $vmName | where section -eq answer).IPAddress
Add-***ConnectionRoute -Name $***ProfileName -DestinationPrefix "$ip/32"
# Rasdial disconnect will turn off AutoTriggering
rasdial $***ProfileName /disconnect
# Check *** status
Get-***Connection | select Name, IsAutoTriggerEnabled, ConnectionStatus
重新启用自动触发并启动 *** 连接:
# Remove Disabled Profile
$disabledProfiles = [string[]](Get-ItemPropertyValue HKLM:SYSTEM\CurrentControlSet\Services\RasMan\Config -name AutoTriggerDisabledProfilesList)
$disabledProfiles = $disabledProfiles | where $_ -ne $***ProfileName
Set-ItemProperty HKLM:SYSTEM\CurrentControlSet\Services\RasMan\Config -name AutoTriggerDisabledProfilesList -Type MultiString -Value $disabledProfiles
# Remove AutoTriggeringDisabled
Remove-ItemProperty HKLM:SYSTEM\CurrentControlSet\Services\RasMan\Config -name AutoTriggeringDisabled
# Add trigger to a process that is certain to be running. Will trigger on process launch as well as if it is already running.
# Adding trigger even it already exists seems to be necessary to get it to trigger after rasdial /disconnect
Add-***ConnectionTriggerApplication -Name $***ProfileName –ApplicationID "C:\Windows\explorer.exe" -ErrorAction Ignore
# Check *** status
Get-***Connection | select Name, IsAutoTriggerEnabled, ConnectionStatus
【讨论】:
以上是关于通过 Powershell 连接到 ***的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Powershell 和 PSSessionConfiguration 远程连接到 Exchange 服务器
找不到引用合同的默认端点元素:通过 Powershell cmdlet 连接到 WCF 端点
如何在 ssms 中更改用户通过 powershell 连接到数据库引擎的权限?
无法通过 Powershell 或 Visual Studio 连接到受保护的 Azure Service Fabric 群集
通过powershell Enter-PSSession连接到SQL Server 2012(使用Windows身份验证)