问题描述
我一直试图将用户从csv添加到其他OU。我不知道为什么OU路径会出错,并说OU在csv中时path参数为空。请帮忙。
Import-Module ActiveDirectory
#$password = ConvertTo-securestring "Pass123" -AsPlainText -Force
$usuarios=Import-Csv C:\Usuarios2.csv
foreach ($usuario in $usuarios)
{
$codigo = $usuario.Código
$nombre = $usuario.Nombre
$apellido = $usuario.Apellido
$facultad = $usuario.Facultad
$carrera = $usuario.Carrera
$OUpath = $usuario."Organizational Unit"
#New-ADUser -Name "$nombre $apellido" -Givenname $nombre -Surname $apellido -UserPrincipalName $codigo -Path "$OUpath" -AccountPassword $password -ChangePasswordAtlogon $True -Enabled $True
}
解决方法
根据您为错误提供的信息以及要迭代的csv的屏幕快照,在我看来,当您迭代时,您正在将1.135
分配给$OUpath
中包含的值
但是,在csv中,该列的标题实际上是“ OU”,因此您应该使用:
$usuario."Organizational Unit"
,
可能是您的ou路径未正确引用,因此仅拉起可分辨名称的第一部分。查看此示例以了解其清晰性。
$usuarios = @'
Código,Nombre,Apellido,Facultad,Carrera,OU
testupn,first,last,not used in command,also not used,OU=Some OU,DC=Domain,DC=COM
'@ | ConvertFrom-Csv
现在让我们看一下OU属性。
$usuarios.ou
OU=Some OU
在这种情况下,您可以使用自定义定界符将其保存或引用OU路径。
$usuarios = @'
Código,"OU=Some OU,DC=COM"
'@ | ConvertFrom-Csv
$usuarios.ou
OU=Some OU,DC=COM
或
$usuarios = @'
Código;Nombre;Apellido;Facultad;Carrera;OU
testupn;first;last;not used in command;also not used;OU=Some OU,DC=COM
'@ | ConvertFrom-Csv -Delimiter ';'
$usuarios.ou
OU=Some OU,DC=COM