【问题标题】:Return job titles from Get-ADUser that match csv从 Get-ADUser 返回匹配 csv 的职位
【发布时间】:2017-06-06 11:02:19
【问题描述】:

我想将 csv 文件中的职位名称导入 Powershell,然后使用 Get-ADUser 返回具有这些职位的所有活动用户,然后导出到新的 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"

【问题讨论】:

  • 你当前的代码有什么问题?
  • 您的Job_titles.csv 中有不止一项,对吧?

标签: powershell active-directory


【解决方案1】:

这是一种可能的解决方案:

$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. 我们仅从 CSV 中获取“csvTitle”值,而不是具有 csvTitle 属性的对象。
  2. 我们使用 ForEach-Object 循环遍历这些值,该循环获取每个标题的 AD 用户(当前标题通过 $_ 表示)。

因为ForEach-Object 支持管道(并且我们的Get-ADUser cmdlet 将其结果返回到管道),我们可以简单地将ForEach-Object 的结果通过管道传输到Export-CSV

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 2019-01-20
    • 2020-05-01
    • 2021-12-30
    • 2021-07-23
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多