Call powershell function with parameters piped from an array of hash tables
It's called "splatting" - see about_Splatting.
Basically, you call the function with a hashtable variable as a parameter, but prefix it with @
instead of $
and each key in the hashtable is treated as a named parameter.
A simple example:
$my_hashtable = @{
foo="one";
bar="some other stuff"
}
# equivalent to Get-WithKeys -foo "one" -bar "some other stuff"
Get-WithKeys @my_hashtable
In your original sample you could do this to call Get-WithKeys
once per item in your $some_keys
array:
$some_keys | foreach-object { Get-WithKeys @_ }
Where @_
is using the automatic variable $_
as the variable to splat.