Home > Mobile >  Powershell hashtable creation - Foreach loop
Powershell hashtable creation - Foreach loop

Time:06-22

I am trying to create a hashtable/dictionary (kvp), within powershell, for further usage (for excel addition). However I am getting object-based error. I am not sure what I am doing wrong, as the workflow seem to match and connect in my head.

Code:

$users = Get-ADUser -Filter * -Properties * -SearchBase "DC=corp,DC=example,DC=com" | select-object name
foreach ($name in $users) {
    $hash = [ordered]@{ $name = (Get-ADPrincipalGroupMembership $name | Select-Object name) }
}
$hash

Error:

Get-ADPrincipalGroupMembership : Cannot bind parameter 'Identity'. Cannot create object of type
"Microsoft.ActiveDirectory.Management.ADPrincipal". The adapter cannot set the value of property "name".
At line:2 char:56
      $hash = @{ $name = (Get-ADPrincipalGroupMembership $name | Select ...
                                                         ~~~~~
      CategoryInfo          : InvalidArgument: (:) [Get-ADPrincipalGroupMembership], ParameterBindingException
      FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.GetADPrinci
   palGroupMembership

CodePudding user response:

if you try with samaccountname instead of name?

$users = Get-ADUser -Filter * -Properties * -SearchBase "DC=sectest,DC=secservizi,DC=local" | select-object samaccountname
foreach ($name in $users.samaccountname) {
    $hash = [ordered]@{ $name = (Get-ADPrincipalGroupMembership -identity $name | Select-Object name) }  
}
$hash
  • Related