无法验证参数'path'powershel上的参数

问题描述

我一直试图将用户从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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...