【问题标题】:retrieve list of filtered users from list从列表中检索过滤用户的列表
【发布时间】:2014-02-12 14:08:49
【问题描述】:

我很难弄清楚这一点。我正在尝试从 csv 导入办公室号码列表,该列表对应于该办公室的特定用户配置文件中的办公室号码。例如,我试图只为列出的所有办公室查找所有承包商和客户服务员工。因此,在 A 列中,它应该列出办公室,B 列应该在由 a 连接的单行中列出该办公室的用户;但出于某种原因,我没有输出没有错误。我做错了什么?

import-csv "C:\scripts\offices.csv" | 
    foreach {get-aduser -properties * -filter {office -eq "$($_.office)" -and title -eq "Independent contractor" -or office -eq "$($_.office)" -and title -eq "Sr customer service Rep"} | 
        select @{n='Name';e={$_.Name -join '; '}}} | 
            export-csv "c:\temp\users in each office.csv" -notypeinformation

【问题讨论】:

  • 运气好了吗?

标签: powershell csv filter import


【解决方案1】:

未经测试,但我认为您需要用 () 包装条件以适当地对它们进行分组。像这样的:

-filter {(office -eq "$($_.office)" -and title -eq "Independent contractor") -or (office -eq "$($_.office)" -and title -eq "Sr customer service Rep")}

或者您也可以将其更改为:

-filter {office -eq "$($.office)" -and (title -eq "Independent contractor" -or title -eq "Sr customer service Rep")}

【讨论】:

    【解决方案2】:

    没有测试,但一个明显的错误是过滤器中缺少下划线:

    -filter {office -eq "$($.office)"

    应该是:

    -filter {office -eq "$($_.office)" 
    

    【讨论】:

    • 我没听懂,由于某种原因,它没有正确地从 ps1 复制过来。脚本里有下划线,很奇怪。
    • 更新问题,然后我会删除这个答案。
    • 那我先不说了。
    • 我得到了很多帮助,而这个帮助我更接近了; $users=import-csv 'C:\Scripts\offices.csv' | Foreach-Object{ $office=$_.office Get-AdUser -Properties office -filter {office -eq $office -and (title -eq 'independent contract' -or title -eq 'sr Customer Service rep')} } $用户 |选择 $($office).Office | group office 但继承人的输出我得到 Count Name Group ----- ---- ----- 8 450 {CN=user1,OU=CSR,OU=Users,OU
    • 您应该将该评论添加到您的问题中,或使用该信息更新问题。
    猜你喜欢
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2017-05-08
    • 2021-08-18
    相关资源
    最近更新 更多