匹配语句在数组/字符串搜索中不起作用

问题描述 投票:0回答:1

我正在尝试创建一个路由来反映我们的生产环境和上一个环境。

我遇到了一个问题,powershell 中的 -match 函数无法正常工作。

我在名为 $PrevGroupInfo 的数组中有预览组,但是当我尝试搜索产品组的名称时,它不匹配任何内容。如果我使用 .profile.name 搜索,它会返回名称,但不会返回其余信息。

任何帮助将不胜感激!


Clear-host

$ProdSite = "https://logrhythm.okta.com"


$PrevSite = "https://logrhythm.oktapreview.com"

import-module OktaAPI

Connect-Okta $ProdToken $ProdSite

#Get Prod Users & Groups
$ProdGroupInfo = Invoke-Method GET "/api/v1/groups?limit=10000"
$ProdUserInfo = Invoke-Method GET "/api/v1/users?limit=10000"

Connect-Okta $PrevToken $PrevSite

#Get Prev Users & Groups
$PrevGroupInfo = Invoke-Method GET "/api/v1/groups?limit=10000"
$PrevUserInfo = Invoke-Method GET "/api/v1/users?limit=10000"

 ForEach ($Group in $ProdGroupInfo)
    {
        If ($Group.count -gt 0)
        {
            Connect-Okta $ProdToken $ProdSite

            #Get Group Members from Prod
            $Members = Get-OktaGroupMember $Group.id
            $GroupName = $Group.profile.name

            Connect-Okta $PrevToken $PrevSite
            $NewGroup = @()

            #***** Get Preview Group Name & ID
            If ($PrevGroup = $PrevgroupInfo -match $Group.profile.name)
            {
                $NewGroup += $PrevGroup
                Write-Host "Preview Group: " $NewGroup `t`t "ID: " $NewGroup.id -ForegroundColor DarkGreen
            }
            else 
            {
                Write-Host "Group not matched in Preview: " $Group.profile.name -ForegroundColor Red
            }

<#>            If ($Members -ne $null)
            {
                ForEach ($Item in $Members)
                {
                    Write-Host `t`t "Item: " $Item.profile.displayname `t`t "ID: " $Item.id
                }
                Pause
            }#>
        }
    }

我已经尝试了所有我合作的东西,我能想出办法,但都被难住了。

powershell okta
1个回答
0
投票

要将完整的对象保留在

$PrevGroup
中,请使用
Where-Object
进行过滤,例如:

If ($PrevGroup = $PrevgroupInfo | Where-Object {$_.profile.name -match $Group.profile.name})

如果您希望

name
属性相同,那么最好使用
-like
-eq

$_.profile.name -like $Group.profile.name
© www.soinside.com 2019 - 2024. All rights reserved.