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.