如何检查我属于哪些域和组?

如何检查我属于哪些域和组?

这与 Windows 7 和 Windows Server 2008 R2 有关,但可能也适用于其他版本。

问题 1:如何最好地从 CLI 中找出用户所属的所有域(这可能并不简单,但可以以某种方式完成)?

问题2:如何从用户当前未登录的域中找出用户所属的所有组(假设用户知道所需的凭据)?

答案1

正如 @joeqwerty 指出的那样,一个用户只能驻留在一个域中。您可能感兴趣的是如何在各个域/林之间配置信任。我为此使用的命令行工具是nltest

由于组嵌套,没有一种优雅的方法来获取所有域/林中用户的组成员身份。最好的方法是枚举每个域中的所有组,并递归检查所需用户的成员身份。

我无法访问已加入域的系统,但 PowerShell 代码应如下所示。请注意,Get-ADGroup 具有最大结果限制,可能需要根据您的环境进行调整。

Import-Module ActiveDirectory
$AllDomainGroups = Get-ADGroup -Server DomainController -LdapFilter "(sAMAccountName=*)"
$AllDomainGroups | %{ [string[]]$MemberList = Get-ADGroupMember $_ -Recursive ; if($MemberList.Contains("SomeUser")){ Write-Host "$_`tTRUE" } else { Write-Host "$_`tFALSE" } } 

答案2

以下代码可以查找用户是否在另一个域控制器上拥有帐户,然后显示该用户所属的所有组。如果您对每个域重复此代码,它可能会满足您的需求。

凭证是那些对您正在查看的 DC 具有权限的用户的凭证,服务器是您要检查的域的 DC。名称必须是用户的名称(首字母和姓氏),与帐户上显示的完全一致。

您可以修改它以获取输入或循环遍历一组域(如果您有林信任)

Import-Module ActiveDirectory

#Set Name
$Name = "Nick Young"

# Create Password
$password = "password" | ConvertTo-SecureString -asPlainText -Force

# Set Username
$username = "domain\username"

# Create Credential
$credential = New-Object System.Management.Automation.PSCredential($username,$password)

$Server = "server.fqdn.com"

$Domain1Account = @(Get-ADUser -Server $Server -Credential $credential -Filter {Name -eq $Name})

# SHow Message
Write-Host "Domain 1 Account" -forgroundcolor Yellow

# Display Info
if( $Domain1Account.count -lt 1 )
{
   echo "No Account"
}
else
{
   $Domain1Account | FT Name,UserPrincipalName
   $Domain1Account | Get-ADPrincipalGroupMembership -Server $Server | FT Name,distinguishedName
}

答案3

您是否尝试过使用https://technet.microsoft.com/en-us/library/cc732952.aspxDSQuery。如果我正确回答了你的问题,那么这个应该可以帮到你。

答案4

天哪,上面的所有脚本。有什么问题“whoami/全部“?提供您要求的所有信息,除了上面有人已经指出的,一个用户只属于一个域。

相关内容