如何使用PowerShell将用户移动到AD?

6

我需要一点帮助。虽然我有“口袋指南”和谷歌,但我几乎没有PowerShell经验。

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

我遇到的问题是如何存储和调用这些信息。我有以下代码,它可以给我一个用户的信息。如何只隔离出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'

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

14

可以尝试这个命令:

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


3
你需要了解PowerShell的管道:http://technet.microsoft.com/zh-cn/library/ee176927.aspx - CB.

7

关于这个问题的旁白:

当使用单引号将变量,例如$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' 可以如预期般工作。而使用管道可以学习到更多有趣的内容。


0

仅供您个人参考:

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

Move-ADObject

1
这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - LordWilmore
抱歉,我认为让用户了解命令未能正常工作的原因可能会有所帮助。无论如何,感谢您的澄清。 - Gaetano Parrello

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接