我有两个数组

  • $adg -(AD 组列表)
  • $dbs -(数据库名称列表)

  • 假设我使用这个命令$adg -match $dbs.i输出将是名称中包含字符串 $dbs 的所有 AD 组。
    但是,我的目标是找到不属于 AD 组数组的 DB。
    例如:
    $adg = @("Dev22_Owner","Test49_Owner","Rocket_Owner")
    $dbs = @("Dev22", "Confidential", "InternDB", "Rocket", "Test49")
    
    我应该采取什么方法来获得输出:

    我试过 $dbs | Where $adg -notmatch $dbs.i 但没有输出。

    最佳答案

    我会首先从广告组中删除不必要的用户部分:

    $groups = $adg | ForEach-Object {
        $_ -replace '_.*?$'
    }
    

    然后,您可以使用 Where-Object cmdlet 和 -notin 运算符来过滤它们:
    $dbs | Where-Object { $_ -notin $groups }
    

    输出:
    Confidential
    InternDB
    

    关于windows - 查找不属于另一个数组PowerShell的值的数组元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48862720/

    10-15 06:34