使用PowerShell通过AD获取用户名
问题描述:
我一直对此感到头痛,并无法弄清楚为什么这不起作用。 使用PowerShell通过AD获取用户名
Import-Module ActiveDirectory
$Users = Get-ADGroupMember -identity “Accounting” -recursive | select name | export-csv -path "D:\group.csv"
$csv = Import-Csv "D:\group.csv"
foreach ($user in $csv) {Get-ADUser -filter "'Name -eq ""$user""'"}
答
$user
是在CSV文件一行。您需要解决该行的Name
字段(您也有太多的单引号和双引号)。
foreach ($user in $csv) {Get-ADUser -filter "Name -eq '$($user.name)'"}
或者你可以让CSV文件只是名称的香草上市,而不是它读成CSV:
Get-ADGroupMember -identity “Accounting” -recursive | select -expandproperty name | out-file "c:\group.txt"
$csv = get-content -path "c:\group.txt"
foreach ($user in $csv) {Get-ADUser -filter "Name -eq '$user'"}
但是如果你只使用该文件作为组之间的管道搜索和用户查找,您可以直接将Get-ADGroupMember
的输出直接输入到Get-ADUser
,从而完全跳过该选项。
Get-ADGroupMember -identity “Accounting” -recursive | Get-ADUser;
答
你在这里有几个问题,我认为。
- 导出数据只是为了再次导入它。你甚至需要第二个数据副本吗?
-
Import-Csv
将不仅返回对象数组的名称。还有就是要解决这个问题的方法不止一种,但是这应该是更多,你在找什么
Import-Module ActiveDirectory
$Users = Get-ADGroupMember -identity “Accounting” -recursive | select name
foreach ($user in $Users) {Get-ADUser -filter {Name -eq $user.Name}}
即使是超过它需要。它的冗余自Get-ADGroupMember
已经返回您需要的类似对象。你需要怎样处理这些数据?如果您确实需要Get-AdUser
,那么只需将输出传送给它。
Get-ADGroupMember -identity “Accounting” -recursive | Get-Aduser
您收到了错误消息。你应该在你的帖子中包含这些内容以帮助那些试图帮助你的人。 – alroc 2014-09-23 15:43:15