将您的本地Active Directory域服务(AD)与Azure AD集成(并进行同步)是通过使用Synchronization Service Manager GUI或通过PowerShell完成的。
有两种在本地使用Azure AD的方法 – 通过身份验证(直接将身份验证请求发送到Azure AD)或目录同步,该同步在本地AD和Azure AD之间同步密码哈希。在本篇博客文章中,我们将介绍如何设置Azure Active Directory Connect软件来同步密码哈希。
我们将介绍如何启动定期同步,以及如何使用Azure AD Connect强制进行密码哈希同步。
简而言之,要使用PowerShell强制Azure AD进行同步,需要以下步骤:
- 安装Azure Active Directory Connect
- 导入ADSync PowerShell模块
- 使用
Start-AdSyncSchedule
cmdlet读取域控制器的密码哈希并与Azure AD进行同步。
如果您更喜欢通过视频学习,请务必查看这个信息丰富的TechSnips视频。
安装Azure AD Connect
要将本地Active Directory同步到Azure AD租户,首先需要下载并安装Azure AD Connect软件。为此,您有两个选项。您可以从Azure门户下载,也可以直接访问软件包。
从Azure门户下载
如果您选择不从Microsoft网站下载软件包,则需要从Azure门户获取软件包。
在门户中搜索“Azure Active Directory”。在Azure Active Directory部分,点击Azure AD Connect。在这里,您将找到一个同步状态部分,其中包含一个链接,可用于下载Azure AD Connect。

同步工具
安装Azure AD Connect后,它会安装两个主要工具,您可以使用这些工具来安排同步或强制同步。
- ADSync PowerShell模块
- 同步服务管理器
使用这两个工具,您可以设置定期(计划)同步以定期执行Azure AD同步。或者,您可以使用其中一个来临时强制同步。这两个工具执行相同的行为。唯一的区别是一个是通过命令行(PowerShell),另一个是GUI应用程序。
设置ADSync PowerShell模块
安装Azure AD Connect时,它会安装一个名为ADSync的PowerShell模块。该模块包含可让您使用PowerShell管理同步过程的命令。
请注意,在本文中,我使用的是 Windows PowerShell 5.1。如果您使用的是较旧的版本,结果可能会有所不同。
与所有的 PowerShell 模块一样,导入模块非常简单。但是,该模块 不 位于已知的 Windows PowerShell 模块文件夹中。安装会将 PowerShell 模块安装在 C:\Program Files\Microsoft Azure AD Connect Sync\Bin 文件夹中。
要导入该模块,请打开 PowerShell 控制台并输入以下命令:
要验证模块是否已导入,请使用 Get-Module
命令。您应该看到列出了 ADSync 模块。

默认的 Azure AD 同步计划
默认情况下,Azure AD Connect 创建一个定期任务,每隔 30 分钟运行一次增量同步(仅同步不同的对象)。您可以在任务计划程序中找到计划,打开 Task Scheduler 即可。您应该在 Microsoft –> Windows 下看到一个名为 Azure AD Sync Scheduler 的计划任务。

您可以更改此计划,但请注意,30 分钟是支持的最低间隔。目标是设置同步间隔,使其发生频率足够高,以便获取更改。如果同步时间太短,您可能会使网络过载。
调度程序处理两个任务:
- 同步循环 – 导入、同步和导出更改的过程。
- 维护任务 – 为密码重置和设备注册服务(DRS)更新密钥和证书。还清理操作日志中的旧条目。
调度程序本身始终在运行,但可以配置为仅运行其中一个或不运行任何任务。
强制执行 Azure AD 连接同步
有时您可能需要强制同步对象。例如,如果您需要拥有自己的同步周期流程,可以在调度程序中禁用此任务,但仍然运行维护任务。
要使用 Azure Active Directory 连接强制执行密码同步和其他信息,可以使用同步服务管理器或 PowerShell。
使用同步服务管理器强制同步
在安装了 Azure AD 连接的服务器上,转到开始菜单,选择AD 连接,然后选择同步服务。
乍一看,它可能令人生畏,但您只需关注连接器选项卡和右侧的选择窗格。在右侧窗格中,您可以看到停止(停止)和启动(运行)同步的选项。

注意:在同步周期运行时,您不能进行配置更改。停止当前周期不会造成损害,待处理的更改将在下一次运行时生效。
使用 PowerShell 获取同步状态
在强制同步之前,最好获取当前同步周期的状态。如果在当前同步运行期间强制同步,可能会导致以后出现一些问题。
要查看当前设置,请在安装了 Azure Active Directory Connect 的服务器上打开 PowerShell 控制台,并运行 Get-ADSyncScheduler
。您将看到几个属性,每个都提供有用的信息。

Get-AdSyncScheduler
有很多信息需要解析。让我们逐行进行说明:
AllowedSyncCycleInterval
– 这是同步之间的最短时间。默认设置为30分钟,是允许的最短时间。CurrentlyEffectiveSyncCycleInterval
– 当前生效的计划。如果不比AllowedSyncInterval
更频繁,则其值与CustomizedSyncInterval
(如果已设置)相同。如果使用1.1.281版本之前的版本并更改了CustomizedSyncCycleInterval
,此更改将在下一次同步周期之后生效。从1.1.281版本开始,更改将立即生效。CustomizedSyncCycleInterval
– 如果要以非默认30分钟的频率运行调度程序,则设置此项。NextSyncCyclePolicyType
– 此参数定义下一次运行应处理的内容。如果下一次运行是完全同步,则最初会显示。NextSyncCycleStartTimeInUTC
– 这是调度程序启动下一个同步周期的时间。PurgeRunHistoryInterval
– 设置操作日志保留的时间。默认为保留日志7天。SyncCycleEnabled
– 指示调度程序是否作为其操作的一部分运行导入、同步和导出过程。MaintenanceEnabled
– 启用维护会更新证书/密钥并清除操作日志。StagingModeEnabled
– 如果启用,它会抑制导出的运行。同步。SchedulerSuspended
– 设置为临时阻止调度程序运行。
使用 PowerShell 强制同步
通过检查 NCSC 密码列表检查活动目录中的泄漏和不安全密码。
在强制同步时,您有几个选项。您可以强制进行完全同步或增量同步。完全同步会检查 AD 中的所有对象。增量同步只会检查并同步自上次运行以来的更改。
要开始完整同步,您可以使用Start-AdSyncSyncCycle
cmdlet。使用PolicyType
参数根据您想要启动的同步类型选择Full
或Delta
。任何一种方法都会强制进行一次AD同步,包括Office 365、用户标识账户和所有其他属性。
停止同步
如果您想要停止正在进行的同步,您也可以使用Stop-ADSyncSyncCycle
cmdlet。
总结
无论您选择使用GUI还是PowerShell,您现在应该知道使用Azure Active Directory Connect工具调度或强制与您的本地Active Directory环境与Azure AD同步的各种方法。