【问题标题】:How can I use PowerShell to move a user in AD?如何使用 PowerShell 在 AD 中移动用户?
【发布时间】:2012-10-03 16:32:04
【问题描述】:

我需要一点帮助。我几乎没有 PowerShell 经验,但我正在使用我身边的袖珍指南和我的 GoogleFu。

目前,我的计划是提示输入用户名并存储它,使用 Get-ADUser 和存储的用户名来获取和存储 DistinguishedName,使用 Move-ADObject 将用户从 DistinguishedName 移动到目标路径。

我遇到的问题是存储和调用这些东西。我有这个,它给了我一个用户的信息。如何仅隔离可分辨名称并存储它?

$name = read-host "Enter user name"
Get-ADUser $name

存储DN后,Move-ADObject可以使用存储的值吗?我尝试存储单个值,例如:

Move-ADobject 'CN=$name,OU=department,OU=company,DC=Domain,DC=net' -TargetPath 'OU=NonActive,OU=company,DC=Domain,DC=net'

但这会返回“找不到目录对象”,因为它不使用存储的值。

【问题讨论】:

    标签: powershell active-directory


    【解决方案1】:

    试试这个:

    Get-ADUser $name| Move-ADObject -TargetPath 'OU=nonactive,OU=compny,DC=domain,Dc=net'

    【讨论】:

    【解决方案2】:

    顺便说一句 -

    $name 等变量被括在单引号中时,Powershell 无法识别这些变量,因为 shell 将此类值视为文字字符串。使用双引号来处理变量:

    例如。 write-host '$name' 将给出输出 $name,但 write-host "$name" 将返回变量中的值。

    所以Move-ADobject "CN=$name,OU=department,OU=company,DC=Domain,DC=net" -TargetPath 'OU=NonActive,OU=company,DC=Domain,DC=net' 应该可以按预期工作。另一方面,您将通过使用管道学到更多有趣的东西。

    【讨论】:

      【解决方案3】:

      仅出于您的个人利益:

      CB.,做管道是传递一个对象。 您应该使用带有命令的对象,而不是使用字符串:

      Move-ADObject
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-08
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-13
      相关资源
      最近更新 更多