2017-06-06 54 views
1

我想从一个CSV文件导入到PowerShell的导入职称然后使用Get-ADUser与这些头衔返回所有活跃用户,然后导出到一个新的CSV返回职称相匹配的CSV是

可有人请帮忙?

$csvjobtitle = Import-Csv -Header csvTitle -Path c:\Job_titles.csv 

Get-ADUser -Filter {enabled -eq "true" -and Title -eq "$csvjobtitle"} - 
Properties SamAccountName, GivenName, Surname, EmailAddress, Title | select 
SamAccountName, GivenName, Surname, EmailAddress, Title | Export-CSV "C:\Ad 
Extract.csv" 
+4

你目前的代码有什么问题? – gms0ulman

+1

您的'Job_titles.csv'中有多个项目,对吧? – restless1987

回答

0

这里是一个可能的解决方案:

$csvjobtitle = (Import-Csv -Header csvTitle -Path c:\Job_titles.csv).'csvTitle' 

$csvjobtitle | ForEach-Object { 
    Get-ADUser -Filter {enabled -eq "true" -and Title -eq "$_"} -Properties SamAccountName, GivenName, Surname, EmailAddress, Title | Select SamAccountName, GivenName, Surname, EmailAddress, Title 
} | Export-CSV "C:\Ad Extract.csv" 

有两个改变你以前的代码:

  1. 我们回到刚才的 'csvTitle' 值从CSV,而不是具有csvTitle属性的对象。
  2. 我们用ForEach-Object循环遍历这些值,该循环获取每个标题的AD用户(其中​​当前标题通过$_表示)。

因为ForEach-Object支持管道(和我们Get-ADUser cmdlet将其结果返回给管道),我们可以简单地管ForEach-ObjectExport-CSV的结果。