【问题标题】:PowerShell array iteration or parsing problem?PowerShell 数组迭代或解析问题?
【发布时间】:2021-05-26 23:11:51
【问题描述】:

我是 PowerShell 新手。我正在尝试根据他们的职位提取用户的 Active Directory 信息并将其放在 csv 文件中。我有两个对应的数组,$title 和 $csvfile。 $title[0] 对应 $csvfile[0] 和 $title[1] 对应 $csvfile[1] 等等。此循环创建我所有的 .csv 文件,但不提取任何用户数据。我可以在脚本中手动输入任何 $title 项目,它可以工作,但是当用作数组时,我什么也得不到。

数组是否添加了任何前导或结尾空格、引号、分隔符,以及任何可能使 -and 语句无法正常工作的内容?

$title = @(
   'Director of Nursing'
   'Assistant Director of Nursing'
   'Activities Director'
)
   $csvfile = @(
  'DON'
  'ADON'
  'ACTIVITIES'
)

    for($i=0; $i -lt $title.Count; $i++)
{
    #Get-ADUser -Filter { (Title -like "Director of Nursing")  -and  (Company -like "location1") }| Export-Csv c:\temp\$($csvfile[$i]).csv"
    Get-ADUser -filter { (Title -like "$($title[$i])")  -and  (Company -like "Location1") }| Export-Csv "c:\tempPath\$($csvfile[$i]).csv"
}

【问题讨论】:

    标签: arrays powershell active-directory


    【解决方案1】:

    AD 模块重新解析 -Filter 块(并将其转换为适当的 LDAP 过滤器),最可能的解释是当这种情况发生时它无法解析 $($title[$i])

    尝试使用字符串过滤器:

    Get-ADUser -filter "Title -like '$($title[$i])'  -and  Company -like 'Location1'"| ...
    

    【讨论】:

    • @Mathias,你是从哪里找到这个的?
    • @AbrahamZinala 我使用ILSpy 反编译了 AD 模块程序集并查看了它的作用
    • 嗯,它只是分解了他们使用的代码吗?抱歉,工作时无法通过我们的网络访问它。可能会导入它并将其作为函数读取,这样我就可以看到代码。谢谢!
    猜你喜欢
    • 2012-07-09
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多