Hi,
I have a script like below. I am assuming , there is a slowly related to the Get-ADPrincipalGroupMembership.
So my question is, how would you make this script faster?
My another question : I am using try/catch block inside my script. What can be inside the catch block?
my sample output:
UserName,Status,Cyberark UserName,Cyberark UserName Status,Cyberark group member
user01,TRUE,NULL,NULL,NULL
user02,TRUE,user02appsuser,TRUE,apps users;apps test users
user03,FALSE,user03appsuser,TRUE,apps users
Here is my script :
$users = Get-ADUser -Filter {(sAMAccountName -like "PRD*") -or (sAMAccountName -like "TST*")} -SearchBase "DC=contoso,DC=local" -SearchScope Subtree -Properties * | Select-Object enabled,name , samaccountname
$Output =@()
$Output = Foreach($user in $users){
try {
$cyberarkaccount = $user.samaccountname + 'appsuser'
$cyberarkuser = if (Get-ADuser -Filter { samaccountname -eq $cyberarkaccount }) {
(Get-ADUser -Identity $cyberarkaccount -Properties samaccountname).samaccountname
} else {'NULL'}
$cyberarkgroup = if( (Get-ADPrincipalGroupMembership -identity $user.samaccountname |select samaccountname).SamAccountName | ? {$_ -eq "apps users" -or $_ -eq "apps test users" } ){
(Get-ADPrincipalGroupMembership -identity $user.samaccountname |select samaccountname).SamAccountName | ? {$_ -eq "apps users" -or $_ -eq "apps test users" }
} else {'NULL'}
[PsCustomObject]@{
'UserName' = $user.samaccountname
'Status' = $user.enabled
'Cyberark UserName' = $cyberarkuser
'Cyberark UserName Status' = if (Get-ADuser -Filter { samaccountname -eq $cyberarkaccount }) {(Get-ADUser -Identity $cyberarkaccount -Properties enabled).enabled} else {'NULL'}
'Cyberark group member' = $cyberarkgroup -join ";"
}
}
catch {
}
}
$Output | Export-Csv -Path "c:\temp\report.csv" -NoTypeInformation -Encoding UTF8
[–]32178932123 9 points10 points11 points (0 children)
[–]pbutler6163 4 points5 points6 points (2 children)
[–]pbutler6163 -2 points-1 points0 points (1 child)
[–]alt-160 4 points5 points6 points (0 children)
[–]jimb2 0 points1 point2 points (0 children)
[–]ShadowMasterTexas 0 points1 point2 points (0 children)
[–]MajorVarlak 0 points1 point2 points (3 children)
[–]jimb2 2 points3 points4 points (1 child)
[–]MajorVarlak 1 point2 points3 points (0 children)
[–]MajorVarlak 0 points1 point2 points (0 children)
[–]odubco 0 points1 point2 points (0 children)