将用户广告从 OU 更改为 powershell 时出错

error to change user ad from OU to powershell

我正在创建一个脚本来更改某些 OU 用户,但它给出了一个参数错误并且无法正常工作。

用户和 OU 正在通过 .csv 文件列出,字符串获取信息,但将其放入代码行时不起作用。

Import-Csv -Path  C:\Users\leonan.martins\Desktop\teste1.csv -Delimiter ',' -PipelineVariable User | ForEach-Object -Process {
   
        $us = $User.user
    $OU1 = $User.Regiao
        $OU2 = $User.Diretoria
        $OU3 = $User.Area
    get-aduser $User | move-adobject -TargetPath "OU=$OU1,OU=$OU2,OU=$OU3,DC=lab,DC=suporti,DC=local"
}

你的错误的可爱原因是 $us = $User.user 上的拼写错误以及 Get-ADUser 调用中引用 $User 而不是 $us。至于 -PipelineVariable User,您可以将其替换为 $_ (also known as $PSItem),以引用正在通过管道传递的 当前对象 :

Import-Csv -Path C:\Users\leonan.martins\Desktop\teste1.csv | ForEach-Object {
    $target = [string]::Format(
        "OU={0},OU={1},OU={2},DC=lab,DC=suporti,DC=local",
        $_.Regiao, $_.Diretoria, $_.Area
    )
    Get-ADUser $_.User | Move-ADObject -TargetPath $target
}

在你的脚本中添加你的目标 OU 的 DN,你可以这样做很简单:

$Users = Import-Csv -Path "D:\Powershell\Input\UsersList.csv" #Path to CSV-File
$TargetOU = "OU=Target,OU=kj,DC=kj,DC=local" #DistinguishedName of Target OU 

foreach($User in $Users)
{
    Get-ADUser $User.SamAccountName | Move-ADObject -TargetPath $TargetOU
}