Powershell 使用两列CSV中的输入移动广告用户

Powershell 使用两列CSV中的输入移动广告用户,powershell,csv,active-directory,Powershell,Csv,Active Directory,所以我有一段代码,我试图导入数据,并最终将用户移动到另一个OU。CSV有两列,标题为User,其中User填充了用户名,OU填充了用户应该移动到的OU 例如: 用户OU smithja OU=员工,OU=002,OU=办公室,DC=域,DC=com frankro OU=员工,OU=032,OU=办公室,DC=域,DC=com 我不断收到有关无法将“system.object[]”转换为参数“Identity”所需的类型“microsoft.activedirectory.management.

所以我有一段代码,我试图导入数据,并最终将用户移动到另一个OU。CSV有两列,标题为User,其中User填充了用户名,OU填充了用户应该移动到的OU

例如:
用户OU
smithja OU=员工,OU=002,OU=办公室,DC=域,DC=com
frankro OU=员工,OU=032,OU=办公室,DC=域,DC=com

我不断收到有关无法将“system.object[]”转换为参数“Identity”所需的类型“microsoft.activedirectory.management.aduser”的错误。感谢您的帮助

# Import CSV  
$Move = Import-Csv -Path "F:\Desktop\MoveMe.csv"

$Imported_csv | ForEach-Object { 
    get-aduser -Identity $Move.User | move-adobject -TargetPath $Move.OU -whatif
    Echo "User: " $Move.User "-" $Move.OU
 } 

你得到你所得到的是因为你没有传递正确的信息,并且你有一些其他的错误

您没有名为$Imported\u csv的填充变量。您有一个名为$Move的填充变量

你的街区应该是这样的

$Move = Import-Csv -Path "F:\Desktop\MoveMe.csv"

$Move  | ForEach-Object { 
    get-aduser -Identity $_.User | move-adobject -TargetPath $_.OU -whatif
    'User:  ' + $_.User + '- ' +$_.OU
    } 
写入屏幕是默认设置,因此,不需要echo(除了出于习惯8^}),这当然是一个别名

Get-Alias -Name echo
CommandType     Name 
Alias           echo -> Write-Output 

非常感谢。这正是我需要的。除了你的建议之外,我的csv文件中还有一个“流浪”符号。在你的帮助下,我完全可以做我需要做的事情。