我在DomainA的服务器上。我可以使用Get-ADUser
并且它可以正常工作。
现在在DomainA和DomainB之间建立了一个信任。我想切换到DomainB并获取OU=New Users, DC=DomainB, DC=com
中的所有用户。
我尝试了这些,但是我收到了错误。
$FetchDomainB = Get-ADUser -SearchBase "OU=New Users, DC=DomainB, DC=com"
这要求我提供过滤器,然后我输入了电子邮件地址然后它会抛出一个错误说"下面提供的专有名称为dc = DomainA,dc = net"
以下代码也会抛出相同的错误。
PS C:\> $test = Get-ADUser -SearchBase "dc=DomainB,dc=com" -filter {EmailAddress -like "*Smith_Karla*"} -Properties EmailAddress
答案 0 :(得分:26)
尝试使用-Server
属性在DomainB中指定DC。例如:
Get-ADUser -Server "dc01.DomainB.local" -Filter {EmailAddress -like "*Smith_Karla*"} -Properties EmailAddress
答案 1 :(得分:6)
我只想补充一点,如果您不完全了解域控制器的名称,则可以获取最接近的域控制器,并将其主机名传递给-Server
参数。
$dc = Get-ADDomainController -DomainName example.com -Discover -NextClosestSite
Get-ADUser -Server $dc.HostName[0] `
-Filter { EmailAddress -Like "*Smith_Karla*" } `
-Properties EmailAddress
答案 2 :(得分:4)
get-aduser -Server "servername" -Identity %username% -Properties *
get-aduser -Server "testdomain.test.net" -Identity testuser -Properties *
当您拥有用户名时,这些工作。键入的次数也少于使用-filter
属性。
编辑:格式化。
答案 3 :(得分:1)
Drew Chapin和你们所有人的最佳解决方案TNX:
我只想补充一点,如果您不完全了解域控制器的名称,则可以获取最接近的域控制器,并将其主机名传递给-Server参数。
$dc = Get-ADDomainController -DomainName example.com -Discover -NextClosestSite
Get-ADUser -Server $dc.HostName[0] `
-Filter { EmailAddress -Like "*Smith_Karla*" } `
-Properties EmailAddress
我的脚本:
$dc = Get-ADDomainController -DomainName example.com -Discover -NextClosestSite
Get-ADUser -Server $dc.HostName[0] ` -Filter { EmailAddress -Like "*Smith_Karla*" } ` -Properties EmailAddress | Export-CSV "C:\Scripts\Email.csv
答案 4 :(得分:0)
您可以使用以下脚本一个接一个地尝试多个域:
在这里,首先我们检查用户是否存在于域中,如果存在,我们将获取电子邮件地址。否则我们检查后续域。
$users = Get-Content D:\UserBase\users.txt
foreach($user in $users)
{
if([bool] (Get-ADUser -Filter { SamAccountName -eq $user } -Server DomainA.com))
{
Get-ADUser -Filter { SamAccountName -eq $user } -Server DomainA.com -Properties Mail |Select-Object -ExpandProperty Mail | Out-file D:\UserBase\emails.txt -Append
}
elseif([bool] (Get-ADUser -Filter { SamAccountName -eq $user } -Server DomainB.com))
{
Get-ADUser -Filter { SamAccountName -eq $user } -Server DomainB.com -Properties Mail |Select-Object -ExpandProperty Mail | Out-file D:\UserBase\emails.txt -Append
}
此外,您可以使用以下脚本获取组织中的域列表:
$ForestObj = Get-ADForest -Server $env:USERDOMAIN
foreach($Domain in $ForestObj.Domains) {
Get-ADDomainController -Filter * -Server $Domain | select Domain,HostName,Site
}