迁移到始终启用 VPN 并解除 DirectAccess 授权
« 上一篇:计划从 DirectAccess 迁移到 Always On VPN
从 DirectAccess 迁移到 Always On VPN 需要特定的过程来迁移客户端,这有助于最大程度地减少因未按顺序执行迁移步骤而引起的争用情况。 概括而言,迁移过程包括以下四个主要步骤:
部署并行 VPN 基础结构。 当你确定迁移阶段以及要包含在部署中的功能后,将与现有 DirectAccess 基础结构并行部署 VPN 基础结构。
将证书和配置部署到客户端。 当 VPN 基础结构准备就绪后,你就可以创建所需的证书并将其发布到客户端了。 客户端收到证书后,你将部署 VPN_Profile.ps1 配置脚本。 或者,可以使用 Intune 来配置 VPN 客户端。 使用 Microsoft Endpoint Configuration Manager 或 Microsoft Intune 监视 VPN 配置部署是否成功。
从 DirectAccess 安全组中删除设备。 用户成功迁移后,可以从 DirectAccess 安全组中删除用户设备。 在从环境中删除 DirectAccess 之前,请检查 DirectAccess 安全组是否为空。 如果安全组仍包含成员,请不要删除该安全组。 如果确实删除了包含成员的安全组,可能会使员工无法从他们的设备进行远程访问。 使用 Microsoft Endpoint Configuration Manager 或 Microsoft Intune 来确定设备分配信息,并发现哪个设备属于每个用户。
解除 DirectAccess 服务器的授权。 当你成功地删除了配置设置和 DNS 记录后,就可以准备拆掉 DirectAccess 服务器了。 为此,请删除服务器管理器中的角色,或者解除服务器的授权,然后将其从 AD DS 中删除。
在开始从 DirectAccess 到 Always On VPN 的迁移过程之前,请确保已计划迁移。 如果还没有计划迁移,请参阅计划从 DirectAccess 迁移到 Always On VPN。
提示
本部分内容不是 Always On VPN 的分步部署指南,而是为了补充适用于 Windows Server 和 Windows 10 的 Always On VPN 部署,并提供特定于迁移的部署指南。
部署并行 VPN 基础结构
可以将 VPN 基础结构与现有 DirectAccess 基础结构并行部署。 有关分步详细信息,请参阅适用于 Windows Server 和 Windows 10 的 Always On VPN 部署,安装和配置 Always On VPN 基础结构。
并行部署总体包括以下任务:
创建 VPN 用户、VPN 服务器和 NPS 服务器组。
创建并发布必要的证书模板。
注册服务器证书。
为 Always On VPN 安装和配置远程访问服务。
安装和配置 NPS。
为 Always On VPN 配置 DNS 和防火墙规则。
下图为 DirectAccess 到 Always On VPN 的整个迁移过程中基础结构的变化提供了直观的参考。
将证书和 VPN 配置脚本部署到客户端
尽管部署Always On VPN 部分中有大量 VPN 客户端配置,但还需要两个额外的步骤才能成功完成从 DirectAccess 到 Always On VPN 的迁移。
必须确保 VPN_Profile.ps1 在证书颁发后出现,这样 VPN 客户端就不会在没有证书的情况下尝试连接。 为此,需要执行一个脚本,该脚本仅将已注册证书的用户添加到 VPN 部署就绪组,用于部署 Always On VPN 配置。
注意
Microsoft 建议在对任何用户迁移通道执行此过程之前,先测试这个过程。
创建并发布 VPN 证书,启用自动注册组策略对象 (GPO)。 对于传统的基于证书的 Windows 10 VPN 部署,会向设备或用户颁发证书,让它可以对连接进行身份验证。 创建并发布用于自动注册的新身份验证证书时,必须使用配置为 VPN 用户组的自动注册设置创建和部署 GPO。 有关配置证书和自动注册的步骤,请参阅配置服务器基础结构。
将用户添加到 VPN 用户组。 将迁移的用户添加到 VPN 用户组。 这些用户在迁移后会留在该安全组中,这样他们就可以在将来接收任何证书更新。 继续将用户添加到此组,直到将每个用户从 DirectAccess 迁移到 Always On VPN。
标识已收到 VPN 身份验证证书的用户。 由于是从 DirectAccess 迁移,因此需要添加一种方法来识别客户端何时收到所需的证书并准备好接收 VPN 配置信息。 运行 GetUsersWithCert.ps1 脚本,将目前获得源自指定模板名称的非撤销证书的用户添加到指定的 AD DS 安全组。 例如,运行 GetUsersWithCert.ps1 脚本后,任何从 VPN 身份验证证书模板获得有效证书的用户都将被添加到 VPN 部署就绪组。
注意
如果你没有用于识别客户端何时收到所需证书的方法,可以在将证书颁发给用户之前部署 VPN 配置,使 VPN 连接失败。 为了避免这种情况,请在证书颁发机构上或按计划运行 GetUsersWithCert.ps1 脚本,将已收到证书的用户同步到 VPN 部署就绪组。 然后,你将使用该安全组在 Microsoft Endpoint Configuration Manager 或 Intune 中以 VPN 配置部署为目标,这可确保托管客户端在收到证书之前不会收到 VPN 配置。
GetUsersWithCert.ps1
Import-module ActiveDirectory Import-Module AdcsAdministration $TemplateName = 'VPNUserAuthentication'##Certificate Template Name (not the friendly name) $GroupName = 'VPN Deployment Ready' ##Group you will add the users to $CSServerName = 'localhost\corp-dc-ca' ##CA Server Information $users= @() $TemplateID = (get-CATemplate | Where-Object {$_.Name -like $TemplateName} | Select-Object oid).oid $View = New-Object -ComObject CertificateAuthority.View $NULL = $View.OpenConnection($CSServerName) $View.SetResultColumnCount(3) $i1 = $View.GetColumnIndex($false, "User Principal Name") $i2 = $View.GetColumnIndex($false, "Certificate Template") $i3 = $View.GetColumnIndex($false, "Revocation Date") $i1, $i2, $i3 | %{$View.SetResultColumn($_) } $Row= $View.OpenView() while ($Row.Next() -ne -1){ $Cert = New-Object PsObject $Col = $Row.EnumCertViewColumn() [void]$Col.Next() do { $Cert | Add-Member -MemberType NoteProperty $($Col.GetDisplayName()) -Value $($Col.GetValue(1)) -Force } until ($Col.Next() -eq -1) $col = '' if($cert."Certificate Template" -eq $TemplateID -and $cert."Revocation Date" -eq $NULL){ $users= $users+= $cert."User Principal Name" $temp = $cert."User Principal Name" $user = get-aduser -Filter {UserPrincipalName -eq $temp} –Property UserPrincipalName Add-ADGroupMember $GroupName $user } }
部署 Always On VPN 配置。 颁发 VPN 身份验证证书后,当你运行 GetUsersWithCert.ps1 脚本时,用户被添加到 VPN 部署就绪安全组。
如果使用的是... | 则... |
---|---|
Configuration Manager | 基于该安全组的成员资格创建用户集合。![]() |
Intune | 只需在安全组同步后直接将其作为目标。 |
每次运行 GetUsersWithCert.ps1 配置脚本时,还必须运行 AD DS 发现规则来更新 Configuration Manager 中的安全组成员资格。 此外,请确保部署集合的成员资格更新足够频繁(与脚本和发现规则一致)。
有关使用 Configuration Manager 或 Intune 将 Always On VPN 部署到 Windows 客户端的更多信息,请参阅适用于 Windows Server 和 Windows 10 的 Always On VPN 部署。 但是,请务必纳入这些特定于迁移的任务。
注意
纳入这些特定于迁移的任务是简单的 Always On VPN 部署与从 DirectAccess 到 Always On VPN 的迁移之间的一个关键区别。 请务必正确地定义集合,以安全组为目标,而不是使用部署指南中的方法。
从 DirectAccess 安全组中删除设备
当用户收到身份验证证书和 VPN_Profile.ps1 配置脚本时,你将在 Configuration Manager 或 Intune 中看到相应的成功 VPN 配置脚本部署。 每次部署后,从 DirectAccess 安全组中删除该用户的设备,以便以后可以删除 DirectAccess。 Intune 和 Configuration Manager 都包含用户设备分配信息,可帮助你确定每个用户的设备。
注意
如果要通过组织单位 (OU) 而不是计算机组应用 DirectAccess GPO,请将用户的计算机对象移出 OU。
解除 DirectAccess 基础结构的授权
将所有 DirectAccess 客户端迁移到 Always On VPN 后,可以解除 DirectAccess 基础结构的授权,并从组策略中删除 DirectAccess 设置。 Microsoft 建议执行以下步骤,从环境中正常删除 DirectAccess:
删除配置设置。 通过打开远程访问管理控制台并选择“删除配置设置”,删除 GPO 和“远程访问”创建的远程访问组策略设置,如下图所示。 如果在删除配置之前删除组,可能会出现错误。
从 DirectAccess 安全组中删除设备。 用户成功迁移后,可以从 DirectAccess 安全组中删除用户设备。 在从环境中删除 DirectAccess 之前,请检查 DirectAccess 安全组是否为空。 如果安全组仍包含成员,请不要删除该安全组。 如果确实删除了包含成员的安全组,可能会使员工无法从他们的设备进行远程访问。 使用 Microsoft Endpoint Configuration Manager 或 Microsoft Intune 来确定设备分配信息,并发现哪个设备属于每个用户。
清理 DNS。 请务必从内部 DNS 服务器和公共 DNS 服务器中删除与 DirectAccess 相关的任何记录,例如,DA.contoso.com、DAGateway.contoso.com。
解除 DirectAccess 服务器的授权。 当你成功地删除了配置设置和 DNS 记录后,就可以准备拆掉 DirectAccess 服务器了。 为此,请删除服务器管理器中的角色,或者解除服务器的授权,然后将其从 AD DS 中删除。
从 Active Directory 证书服务中删除任何 DirectAccess 证书。 如果使用了计算机证书来实现 DirectAccess,请从证书颁发机构控制台的“证书模板”文件夹中删除已发布的模板。
后续步骤
你已完成从 DirectAccess 到 Always On VPN 的迁移。