gpt4 book ai didi

powershell - 使用字符串数组在 PowerShell 中的 Where-Object 中进行比较

转载 作者:行者123 更新时间:2023-12-02 22:56:12 24 4
gpt4 key购买 nike

我有一个以这种方式检索的 Active Directory 用户列表:

$users = Get-AdUser -Filter {(Enabled -eq "True" )} -Properties Description 

问题是我有一组基于他们的描述的特定用户:
  • 管理员
  • 秘书
  • postman

  • 我所做的是创建这样的子列表:
    $Admins = $users | Where-Object Description -eq 'Administrator'

    然而问题是,没有标准化。创建用户的人可以写“Admin”或“Administrator”或“adm”,...这会导致我的子列表不包含所有作为管理员的用户。

    我所做的是创建了一个字符串数组:
    $Admin_User_Strings = @("adm", "admin", "administrator")

    我想在我的子列表中使用这个数组,但这似乎不起作用:
    $Admins = $users | Where-Object $Admin_User_Strings -contains Description 

    我得到错误:

    Where-Object : A positional parameter cannot be found that accepts argument 'System.Object[]'.



    所以我的问题是,我怎样才能让以下行:
    $Admins = $users | Where-Object Description -eq 'Administrator'

    接受更多“管理员”输入方式?

    最佳答案

    您有多种选择:
    $users | Where-Object {$Admin_User_Strings -contains $_.Description}
    或:$users | Where-Object $_.Description -in $Admin_User_Strings
    或:$users | Where-Object $_.Description -match "adm|admin|administrator"

    关于powershell - 使用字符串数组在 PowerShell 中的 Where-Object 中进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43408185/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com