我有一个包含samids的文本文件:
XXXXXXX
YYYYYYY
ZZZZZZZ
对于每一个我需要阅读它,用它来查询AD:
dsquery user forestroot -samid XXXXXXX | dsget user -email
并将响应写入另一个文件。请帮帮我:)。
答案 0 :(得分:2)
使用Get-ADUser
PowerShell模块中的ActiveDirectory
代替ds工具:
Import-Module ActiveDirectory
Get-Content 'C:\path\to\input.txt' |
Get-ADUser -SearchBase 'DC=example,DC=org' -Property mail |
select -Expand mail | Out-File 'C:\path\to\output.txt'
其中DC=example,DC=org
是您的林根域的专有名称(DN)。
要以编程方式确定林根域的DN,您可以使用:
([ADSI]"LDAP://RootDSE").RootDomainNamingContext
答案 1 :(得分:0)
最后,我设法在另一篇文章中以这种方式解决它:
$a = Get-Content .\input.txt
for ($i=0 ; $i -lt $a.Length; $i++){
dsquery user forestroot -samid $a[$i] | dsget user -email | Select-String '@' | select -Expand Line >> output.txt
}
谢谢