导入包含以分号分隔的代理地址的用户帐户的 CSV 文件

导入包含以分号分隔的代理地址的用户帐户的 CSV 文件

一个组织正在使用 Active Directory 域服务和 Office 365,但没有同步,因此用户帐户之间存在大量差异(姓名拼写不同、职位名称过时、 UPN 错误等)。

该组织计划迁移到新的 AD DS,保留相同的 Office 365,并通过 Azure AD Connect 使用同步(阅读:新 AD 域中的用户帐户正确非常重要)。

我已将 AD 和 AAD / O365 用户帐户导出到 CSV 并协调了差异,所以现在我需要将 CSV 导入 AD,但分号分隔的代理地址被证明是一个问题,因为它将数据作为一个值导入,而不是多个。

我在网上找不到合适的解决方案,因此写了这篇帖子。

答案1

我创建了以下 AD PowerShell 命令,效果很好:

$Users = Import-Csv "<CSV_Path>\<CSV_FileName>.csv";

ForEach ($User in $Users){
    New-ADUser -Name $User."DisplayName" -DisplayName $User."DisplayName" -GivenName $User."GivenName" -Initials $User."Initials" -Surname $User."Surname" -Title $User."Title" -City $User."City" -Office $User."Office" -Department $User."Department" -OfficePhone $User."OfficePhone" -MobilePhone $User."MobilePhone" -SamAccountName $User."SamAccountName" -UserPrincipalName $User."UserPrincipalName" -EmailAddress $User."EmailAddress" -Path "<DN to OU>";

    ForEach ($ProxyAddress in ($User."ProxyAddresses" -Split ";")){
        Set-ADUser -Identity $User."SamAccountName" -Add @{ProxyAddresses=$ProxyAddress};
    }
}

关于用户帐户属性参数的注意事项:括号中的字符串是 CSV 列标题,用括号括起来是为了处理潜在的空格。

相关内容