【问题标题】:Importing users from CSV into AD with PowerShell使用 PowerShell 将用户从 CSV 导入 AD
【发布时间】:2015-08-10 16:26:51
【问题描述】:

我正在使用以下脚本将 100,000 个用户从 CSV 文件导入 Active Directory。但是,我遇到了很多错误,需要您的帮助来消除它们。

脚本:

Import-Csv C:\csv\100Kusers.csv | ForEach-Object {
 $userPrinc = $_."Logon Username" + "@mydomain.com"
 New-QADUser -Name $_.Name `
 -ParentContainer $_."Container" `
 -SamAccountName $_."Logon Username" `
 -UserPassword "passw0rd123" `
 -FirstName $_.FirstName `
 -LastName $_."LastName" `
 -Description $_."Department" `
 -UserPrincipalName $userPrinc `
 -DisplayName $_."Name" `
 -StreetAddress $_."StreetAddress" `
 -City $_."City" `
 -State $_."State" `
 -PostalCode $_."PostalCode" `
 -Email $_."Email" `
 -Company $_."Company" `
 -Department $_."Department" `
 -HomePhone $_."HomePhone" `
 -Title $_."Title" `
 -Manager $_."Manager" ;`
 Add-QADGroupMember -identity $_."Group" -Member $_."Logon Username" ;`
 }

这是我得到的错误:

Add-QADGroupMember : Cannot resolve directory object for the given identity: 'jm?lmhx4'.
At C:\csv\PS_import_script.ps1:22 char:2
+  Add-QADGroupMember -identity $_."Group" -Member $_."Logon Username" ;`
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Add-QADGroupMember], ObjectNotFoundException
    + FullyQualifiedErrorId : Quest.ActiveRoles.ArsPowerShellSnapIn.DirectoryAccess.ObjectNotFoundException,Qu 
   est.ActiveRoles.ArsPowerShellSnapIn.Commands.AddGroupMemberCmdlet2

    New-QADUser : A device attached to the system is not functioning.
At C:\csv\PS_import_script.ps1:3 char:2
+  New-QADUser -Name $_.Name `
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-QADUser], DirectoryServicesCOMException
    + FullyQualifiedErrorId : System.DirectoryServices.DirectoryServicesCOMException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets.NewUserCmdlet

CSV 看起来像这样:

FirstName   Surname Name    StreetAddress   City    State   PostalCode  EmailAddress    Company Department  Group   HomePhone   Title   Manager Logon Username  Container
Jose    Mullane Jose Mul    Rue de Li?ge 493    Lompret WLX 6463    JoseLMullane@superrito.com  rmit    QA  QA-FL   0495 94 79 62   Laboratory animal technologist  tgatesjr    jmuljhk2    dcui.mydomain.com/dcui_OU/Finland/Departments/QA

抱歉,无法添加更多内容 - 当我将纯 CSV 复制到帖子窗口时,格式会变得很疯狂。

【问题讨论】:

  • 第一个很明显:jm?lmhx4 不是有效的组名
  • 谢谢马蒂亚斯。我认为 Add-QADGroupMember -identity $_."Group" -Member $_."Logon Username" ;` 应该在 CSV 中查找列 Group,然后将用户分配给 AD 中的相应组。我错过了什么?
  • 我不起眼的谷歌研究告诉我“New-QADUser:连接到系统的设备无法正常工作。”当 SamAccountName 是 CSV 超过 20 个字符时可能会发生,但在我的情况下不是。
  • 绝对是编码问题,但不清楚是否可能需要使用正确的编码重新生成 CSV 文件。注意Rue de Li?ge 493 的街道地址。如果那来自 CSV,那么 CSV 不是 Unicode 编码的。

标签: powershell csv active-directory powershell-3.0


【解决方案1】:

非常感谢大家。我同意这可能是一个编码问题,是的,CSV 本身已经关闭了所有这些“?”标记,在我从 xlsx 格式保存后。我们最终使用了 Pyhthon,它也比 Pshell 快得多。

你的,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 2017-12-05
    • 2015-08-11
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多