如何使用 PowerShell 2.0 解锁不同域上的 Active Directory 帐户?

How do you unlock an Active Directory account on a different domain using PowerShell 2.0?

我发现 LazyWinAdmin 提供了一个很棒的 PowerShell 脚本,它可以满足我的需求 - 但它仅限于当前域。我们的网络设置方式对某些类型的帐户有不同的域。

我正在尝试编写一个脚本来简单地解锁特定域上的指定用户帐户。我们的系统使用 PowerShell 2.0,这使得这变得非常困难,因为我知道更高版本具有 Active Directory 管理 cmdlet。相信我,我已经要求我们在系统上安装更新版本的 PowerShell,但公司坚决拒绝让步。

我觉得有点愚蠢,因为我过去几乎只使用较新的版本,所以我习惯了各种 cmdlet,而不必手动起草我想做的每一件事。

您需要指定搜索根以从其他域进行搜索。

原始代码在$buttonUnlock_Click:

# Search for this account in the current domain
$Searcher = [ADSISearcher]"(sAMAccountName=$Name)"
$Results = $Searcher.FindOne()

还有$buttonCheck_Click(没有搜索代码,只有评论):

# Search for this account in the current domain

两者都改为:

$searcher = New-Object DirectoryServices.DirectorySearcher
$searcher.Filter = "(sAMAccountName=$name)"
$searcher.SearchRoot = New-Object DirectoryServices.DirectoryEntry('LDAP://other.domain', 'user', 'pwd')
$results = $searcher.FindOne()

如果当前用户已经有访问其他域的权限,您可以简单地将[adsi]'LDAP://other.domain'作为搜索根。