Public/Okta/Get-OktaGroupMemberReport.ps1
function Get-OktaGroupMemberReport { Param ( [Parameter()] [String[]]$GroupID, [Parameter()] [string] $SearchString ) $Url = $OKTACredential.GetNetworkCredential().username $Token = $OKTACredential.GetNetworkCredential().Password $Headers = @{ "Authorization" = "SSWS $Token" "Accept" = "application/json" "Content-Type" = "application/json" } if (-not $GroupID) { $RestSplat = @{ Uri = "https://$Url.okta.com/api/v1/groups/" Headers = $Headers Method = 'Get' } } else { $RestSplat = @{ Uri = "https://$Url.okta.com/api/v1/groups/$GroupID" Headers = $Headers Method = 'Get' } } $Group = Invoke-RestMethod @RestSplat foreach ($CurGroup in $Group) { $GName = $CurGroup.profile.name $GId = $CurGroup.id $RestSplat = @{ Uri = "https://$Url.okta.com/api/v1/groups/$GId/users" Headers = $Headers Method = 'Get' } $GrpMember = Invoke-RestMethod @RestSplat foreach ($CurGrpMember in $GrpMember) { [PSCustomObject]@{ Name = $GName Type = $CurGroup.Type Login = $CurGrpMember.Profile.login FirstName = $CurGrpMember.Profile.firstName LastName = $CurGrpMember.Profile.lastName GroupId = $GId } } } } |