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

2023-11-29

我有一个 Active Directory 用户列表,可以通过以下方式检索:

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

问题是我有一组特定的用户,基于他们的描述:

  • Admins
  • 秘书
  • Mail men

我所做的就是创建这样的子列表:

$Admins = $users | Where-Object Description -eq 'Administrator'

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

我所做的是创建了一个字符串数组:

$Admin_User_Strings = @("adm", "admin", "administrator")

我想在我的子列表中使用这个数组,但这似乎不起作用:

$Admins = $users | Where-Object $Admin_User_Strings -contains Description 

我收到错误:

Where-Object:找不到接受参数“System.Object[]”的位置参数。

所以我的问题是,我怎样才能让以下行:

$Admins = $users | Where-Object Description -eq 'Administrator'

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


您有多种选择:

$users | Where-Object {$Admin_User_Strings -contains $_.Description}

or: $users | Where-Object $_.Description -in $Admin_User_Strings

or: $users | Where-Object $_.Description -match "adm|admin|administrator"

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用字符串数组在 PowerShell 中的Where-Object 中进行比较 的相关文章

随机推荐