繁体   English   中英

从Samaccountname获取电子邮件地址

[英]Get email address from Samaccountname

我是一个动力贝壳的初学者。 我需要编写一个命令,用于从活动目录中获取samccountname中的电子邮件地址。 我已将所有samaccountnames存储在Users.txt文件中。

$users=Get-content .\desktop\users.txt
get-aduser -filter{samaccountname -eq $users} -properties mail | Select -expandproperty mail 

请建议我如何继续这样做。 我在这里做错了什么。

从文件中读取后, $Users成为$Users的集合。 您无法将整个集合传递给过滤器,您需要一次处理一个用户。 您可以使用ForEach循环执行此操作:

$users = Get-Content .\desktop\users.txt
ForEach ($User in $Users) {
    Get-ADUser -Identity $user -properties mail | Select -expandproperty mail
}

这会将每个用户的电子邮件地址输出到屏幕。

根据评论,它也没有必要使用-filter ,根据上述内容,您可以直接将samaccountname直接发送到-Identity参数。

如果要将输出发送到另一个命令(例如export-csv),则可以使用ForEach-Object:

$users = Get-Content .\desktop\users.txt
$users | ForEach-Object {
    Get-ADUser -Identity $_ -properties mail | Select samaccountname,mail
} | Export-CSV user-emails.txt

在这个例子中,我们使用$_来表示管道中的当前项(例如用户),然后我们将命令的输出传递给Export-CSV。 我想你可能也希望这种输出同时具有samaccountname和mail,以便你可以交叉引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM