从SAMaccountname获取用户电子邮件地址

时间:2014-11-25 09:49:28

标签: powershell active-directory

我是PowerShell的新手,但实际上我需要一个脚本,所以我开始自己阅读这些内容并找到了powershell。

我有一个用户名单,如:

  • xyxz
  • 域名\ xyxz.xyxc

此脚本应搜索我的用户列表中的所有samaccountname,并为每个samaccountname提供电子邮件地址。

Get-Content C:\ Users \ xxxxx \ Desktop \ Users.txt | forEach {     Get-ADUser"我不知道如何指定用户名" |选择邮件| Export-Csv output.csv }

这是我写的脚本,但我不知道如何完成它以使其工作。我知道它做得不好但是我不想在这里写一些文字,而不是自己做点什么。

2 个答案:

答案 0 :(得分:2)

你很亲密

Get-Content C:\Users\xxxxx\Desktop\Users.txt | forEach { Get-ADUser $_ -properties EmailAddress} | select -ExpandProperty EmailAddress | Out-File output.csv 

应该这样做(如果你的txt文件包含samid,每行只有一个)。

您可以使用$_访问管道内的对象。另外,要获取具有select的属性的String值,必须使用-ExpandProperty

在这种情况下,您还必须专门选择属性(EmailAddress),因为默认情况下仅报告一组有限的属性以减少工作负载(这可以通过指定-properties参数来完成。

答案 1 :(得分:1)

你的命令是正确的。但是,Get-ADUser似乎不接受UPN or Down-Level Logon Name格式的用户名 要查询当前用户登录的域以外的域,您需要使用-Server选项。此选项接受FQDN或NetBIOS域名。 另一件事:默认情况下,Get-ADUser仅返回默认属性集(请参阅this列表以了解默认属性),并且用户的电子邮件地址不是默认属性,因此我们需要使用{ {1}}选项将其添加到返回的值中。

命令如下所示:

-Properties