Powershell 非 Cmdlet:通过 System.DirectoryServices 命名空间将用户移动到新 OU

发布于 2025-01-06 02:20:04 字数 445 浏览 0 评论 0原文

我登录到域 Y,并且我希望移动的用户所在的 AD 位于域 X(没有 ADAM 的 Windows 2003 服务器)

如何通过 System.DirectoryServices 将用户 X 从同一域内的一个 OU 移动到另一个 OU命名空间方法?

这就是我已经走了多远:

$user = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($context, $idtype, $sam)

这里没有说明: 用户主体

I am logged in on domain Y and the AD with the User I wish to move is located in domain X (windows 2003 server without ADAM)

How would one move user X from an OU to another OU within the same domain through the System.DirectoryServices Namespaces method?

This is how far I've gotten:

$user = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($context, $idtype, $sam)

Doesn't state here: UserPrincipal

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

错々过的事 2025-01-13 02:20:04

我已经有一段时间不需要在没有 QAD cmdlet 或 ADAM cmdlet 的情况下执行此操作了,因此这是未经测试的并且是根据记忆,但我认为类似:

$root = [adsi]''
$searcher = New-Object System.DirectoryServices.DirectorySearcher($root)
$searcher.Filter = "(&(ObjectClass=User)(Name=SomeUser))"
$userObject = $searcher.FindOne()
$path = $userObject.Properties.ADSPath
$targetOU = [adsi]("LDAP://OU=Target,DC=SomeDomain,DC=com")
$ADUser = [adsi]($path)
$ADUser.PSBase.moveto($targetOU)

I haven't had to do it without either the QAD cmdlets or the ADAM cmdlets for some time, so this is untested and from memory, but I think something like:

$root = [adsi]''
$searcher = New-Object System.DirectoryServices.DirectorySearcher($root)
$searcher.Filter = "(&(ObjectClass=User)(Name=SomeUser))"
$userObject = $searcher.FindOne()
$path = $userObject.Properties.ADSPath
$targetOU = [adsi]("LDAP://OU=Target,DC=SomeDomain,DC=com")
$ADUser = [adsi]($path)
$ADUser.PSBase.moveto($targetOU)
叫嚣ゝ 2025-01-13 02:20:04

这是另一个解决方案:

# MoveObject
$OuDest=[ADSI] "LDAP://mach:389/ou=Commerciaux,dc=societe,dc=fr" 
$objUODest.MoveHere("LDAP://cn=Mickey,ou=Ventes,dc=societe,dc=fr", “cn=Mickey")

如果

# Rename
$Ou=[adsi] "LDAP://mach:389/ou=Ventes,dc=societe,dc=fr"
$Ou.MoveHere("LDAP://cn=PetitMickey,ou=Ventes,dc=societe,dc=fr", "cn=PetitMickeyBis")

您需要身份验证:

$OuDest = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://FQDN name or @IP",$User,$password)

Here is an other solution :

# MoveObject
$OuDest=[ADSI] "LDAP://mach:389/ou=Commerciaux,dc=societe,dc=fr" 
$objUODest.MoveHere("LDAP://cn=Mickey,ou=Ventes,dc=societe,dc=fr", “cn=Mickey")

And

# Rename
$Ou=[adsi] "LDAP://mach:389/ou=Ventes,dc=societe,dc=fr"
$Ou.MoveHere("LDAP://cn=PetitMickey,ou=Ventes,dc=societe,dc=fr", "cn=PetitMickeyBis")

If you need to authentify :

$OuDest = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://FQDN name or @IP",$User,$password)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文