我是PowerShell的新手,但实际上我需要一个脚本,所以我开始自己阅读这些内容并找到了powershell。
我有一个用户名单,如:
此脚本应搜索我的用户列表中的所有samaccountname,并为每个samaccountname提供电子邮件地址。
Get-Content C:\ Users \ xxxxx \ Desktop \ Users.txt | forEach { Get-ADUser"我不知道如何指定用户名" |选择邮件| Export-Csv output.csv }
这是我写的脚本,但我不知道如何完成它以使其工作。我知道它做得不好但是我不想在这里写一些文字,而不是自己做点什么。
答案 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