【问题标题】:Move AD Users with Input from Two-Column CSV使用来自两列 CSV 的输入移动 AD 用户
【发布时间】:2018-01-05 00:29:27
【问题描述】:

所以我有一些代码 sn-p 我正在尝试导入数据并最终将用户移动到另一个 OU。 CSV 有两列带有标题,用户 - 填充用户名,OU - 填充用户应移动到的 OU。

前:
用户OU
smithja OU=Employees,OU=002,OU=Offices,DC=Domain,DC=com
frankro OU=Employees,OU=032,OU=Offices,DC=Domain,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
 } 

【问题讨论】:

    标签: powershell csv active-directory


    【解决方案1】:

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

    您没有名为 $Imported_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
        } 
    

    写入屏幕是默认设置,因此,实际上不需要回显(出于习惯 8^} 除外),这当然是别名。

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

    【讨论】:

    • 谢谢。这正是我所需要的。除了您的建议之外,我的 csv 文件中还有一个杂散的 " 符号。在您的帮助下,我已经能够完成我需要做的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 2015-08-10
    • 2021-11-27
    • 1970-01-01
    • 2021-02-04
    • 2014-10-23
    相关资源
    最近更新 更多