我的公司使用 Office 365 进行 Exchange、SharePoint、Lync 等,包括通过 Azure Active Directory 进行内置用户管理。
现在我们想切换到 Windows Server 上的本地 AD。它将同步更改到 Azure,但主要用户和组策略管理在 Windows Server 上进行。
我们最初如何将用户帐户从 Azure AD 转移到本地(windows-server)AD?
编辑1:有人使用 Microsoft Forefront Identity Manager 研究过这个问题吗?看起来这个工具是随 DirSync 提供的。在 DirSync 服务器上打开“miisclient.exe”(位于“C:\Program Files\Windows Azure Active Directory Sync\SYNCBUS\Synchronization Service\UIShell”)。可能可以将其配置为同步其他方向……可能。
答案1
@MDMarra:谢谢你的提示,所以我这样做了:
可以使用 powershell 导出 O365 中的用户
Get-MsolUser | Select-Object City, Country, Department, DisplayName, Fax, FirstName, LastName, MobilePhone, Office, PasswordNeverExpires, PhoneNumber, PostalCode, SignInName, State, StreetAddress, Title, UserPrincipalName | Export-Csv C:\Temp\Azure_Export_2014_12_05.csv -Encoding UTF8
这会将所有列导出到 CSV,我可以在 CSV 中找到合适的映射。这些不是所有列,但其中许多列无法映射到 AD 中的属性。其他列(如密码)无法导出。
要将用户导入 AD,请在 powershell 中运行
import-csv C:\Temp\Azure_Export_2014_12_05.csv -Encoding UTF8 | foreach-object {New-ADUser -Name ($_.Firstname + "." + $_.Lastname) -SamAccountName ($_.Firstname + "." + $_.Lastname) -GivenName $_.FirstName -Surname $_.LastName -City $_.City -Department $_.Department -DisplayName $_.DisplayName -Fax $_.Fax -MobilePhone $_.MobilePhone -Office $_.Office -PasswordNeverExpires ($_.PasswordNeverExpires -eq "True") -OfficePhone $_.PhoneNumber -PostalCode $_.PostalCode -EmailAddress $_.SignInName -State $_.State -StreetAddress $_.StreetAddress -Title $_.Title -UserPrincipalName $_.UserPrincipalName -AccountPassword (ConvertTo-SecureString -string "Secret!" -AsPlainText -force) -enabled $true }
这将创建名为 Firstname.Lastname 的新用户。其他属性(如 SignInName)无法使用,因为它们不是有效的 AD 帐户名。
无法导入国家/地区,因为 AD 要求该国家/地区确实存在,而 O365 接受自由文本。
密码将被设置为“Secret!”,因为如果没有提供密码,则会创建但禁用该帐户。
在 Excel 或其他工具中编辑 CSV 文件可能很方便,但我建议仅使用 PowerShell。Excel 会从电话号码中删除前导零或重新格式化其他内容。另外,请注意 UTF8。
答案2
您可以使用 Get-MsolUser PowerShell cmdlet 从 Azure Active Directory 导出用户数据,然后使用 New-ADUser cmdlet 获取该数据并在本地创建帐户。也就是说,没有一劳永逸的方法可以做到这一点。您必须编写一些脚本。