【发布时间】:2018-10-08 16:28:19
【问题描述】:
我的目标是通过简单的 PowerShell 脚本将 CSV 文件中的用户导入 Active Directory。尽管如此,我还是遇到了如下所示的语法错误。
更新:CSV 列格式
名字,姓氏,你 史蒂文,布恩,管理 罗德尼,费舍尔,销售 泰勒,包蒂斯塔,管理 内森,莫里斯,管理工作并解决:PowerShell 代码
Import-Module ActiveDirectory
$ADDSUsers = Import-Csv C:\0469697M_gxt.csv
foreach ($user in $ADDSUsers) {
$Name = $user.name + " " + $user.surname
$OU = $user.ou
$OUPath = "OU=$($OU),dc=intgxt,dc=allaboutfood,dc=com,dc=mt"
#Creating New AD Users
New-ADUser -Name $Name -Path $OUPath
}
错误
New-ADUser :对象名称的语法错误 在 C:\Script.ps1:9 char:5 + New-ADUser -Name "$name" -Path "$OU" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (CN=Tyler Blair,Management:String) [New-ADUser], ADException + FullyQualifiedErrorId :ActiveDirectoryServer:8335,Microsoft.ActiveDirectory.Management.Commands.NewADUser不知道哪里出错了。就我而言,这些列的解析效果很好。
【问题讨论】:
-
"就我而言,这些列被解析得很好。" - 我猜他们不是。
NotSpecified: (CN=Tyler Blair,Management:String)对我说 CSV 解析器在 OU 数据上失败了,这应该像CN=Tyler Blair,OU=This,DC=example,DC=com并且你的 CSV 没有引用,所以 Import-CSV 用逗号分割 OU,就好像它们是不同的列,然后您正在创建一个没有完整路径的对象,但它失败了。猜测,因为您的代码看起来不正确。或者,您的电子表格中的 OU 可能不是完整路径,需要是 -
是的,我有一个 ou 列,但没有 DC 列。在错误中,Management 是一个 OU,但我不知道 Management:String 是什么。 @TessellatingHeckler 你有什么建议?
-
请发布 CSV 样本。随意更改名称,但尽量保持结构完整。通过编辑您的问题而不是评论来做到这一点。
-
@EBGreen 更新了我的 CSV 列并添加了一些数据 - 感谢您的帮助 :)
-
您的 CSV 管道是分隔的、逗号分隔的还是制表符分隔的。您的示例看起来像标题是管道分隔的(有点),数据是制表符分隔的。您的示例代码暗示它是逗号分隔的。
标签: powershell csv active-directory organizational-unit