# Multiple Groups

**URL:** https://forums.powershell.org/t/multiple-groups/1385
**Category:** PowerShell Help
**Created:** [December 31, 2011, 6:30pm UTC](https://forums.powershell.org/t/multiple-groups/1385 "2011-12-31T18:30:00Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![archives](https://avatars.discourse-cdn.com/v4/letter/a/bb73d2/32.png) [@archives](https://forums.powershell.org/u/archives)
#### Post date: [December 31, 2011, 6:30pm UTC](https://forums.powershell.org/t/multiple-groups/1385/1 "2011-12-31T18:30:00Z")

</div>

by TomKemp at 2013-04-24 04:24:30

> I have been struggling with this for some time, so any help would be much appreciated please.  
>   
> I have a script to test membership of AD groups and act accordingly. A user might be in one group matching the pattern, more than one or none. Therefore, I have defined the variable containing the result as an array - $global:BUFA. Then I test for the value of ‘Count’ for that array.  
>   
> If the result is greater than one I use the first value, which I define as $global]. I would have said that from a Maths point of view, the ‘first’ member of a set with only one member is that single member. However, Powershell does not seem to accept $Variable[0] for results with a count of 1 - so I just use the single value directly for those.  
>   
> The problems arise when I have a count of more than 1 - i.e. the user is in two or more groups. Then I am trying to use:  
>   
> `[array]$global:BUFA = @()....if($global:BUFA.Count -gt 1) { $global:BUFA1 = $global:BUFA[0] }....`  
>   
> The result is an error  
>   
> [quote]  
> Count : 2  
> Cannot index into a null array.  
> At C:\Users\tkema\MyScripts\UserMoves\UserMoveForm11.ps1:587 char:37  
> + $global:BUFA1 = ($globalBUFA[0]).name | Out- …  
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
> + CategoryInfo : InvalidOperation: (🙂 , RuntimeException  
> + FullyQualifiedErrorId : NullArray  
>   
> [/quote]  
>   
> How can it be a null array if the count is greater than zero?  
>   
> Even more strange is that is I try to use:  
>   
> `write-host $global:BUFA[0]`  
>   
> this works and prints the name of the first group in the list.  
>   
> This suggests to me it has correctly identified and printed the value of the first item in the array.  
>   
> Any thoughts please?

by ArtB0514 at 2013-04-24 06:42:43

> Did you read your error message carefully?  
> [quote]$global:BUFA1 = ($globalBUFA[0]).name | Out- …[/quote]  
> You are missing the ":" in "$global].Name". Since there is no $globalBUFA array, you’re getting the $null array error.  
>   
> Just as an asside, why are you messing around in the $global namespace? Are you trying to make a variable visible outside your script? If so, it would be a better practice to work with parameters instead of namespaces.

by TomKemp at 2013-04-24 07:36:36

> Sorry - that was a typo in my post. The actual script does have the : in it.  
>   
> I think I may have resolved this problem now.  
>   
> I used:  
>   
> `$A1 = ($global:BUFA.ToString()).split(" ")$global:BUFA = ($A1[0]).Substring(9)`  
>   
> This converts the value of the variable to a string, then splits it at the space (i.e. between the two group names),  
> then takes the first part of that split and removes the prefix from the remaining value, which corresponds to the Domain Name.  
>   
> That gives me the name of the group, without the Domain prefix.  
>   
> Early testing suggests that is working for users in one or more groups. Not tested those not in any groups yet.  
>   
>   
> Edit - Sorry, you are correct. I DID miss out the : in the original script. How annoying.

---

<div class="post-metadata">

### Author: ![dotnVo](https://avatars.discourse-cdn.com/v4/letter/d/4af34b/32.png) [@dotnVo](https://forums.powershell.org/u/dotnVo)
#### Post date: [May 16, 2024, 9:02pm UTC](https://forums.powershell.org/t/multiple-groups/1385/2 "2024-05-16T21:02:46Z")

</div>


