Passing a dynamic number of unnamed arguments to a script, which will be used as arguments to an executable called within the script 2
1 example [The output type of Invoke-WebRequest](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest#outputs) is the child class [BasicHtmlWebResponseObject](https://docs.microsoft.com/en-us/dotnet/api/microsoft.powershell.commands.basichtmlwebresponseobject) which inherits from parent class [WebResponseObject](https://docs.microsoft.com/en-us/dotnet/api/microsoft.powershell.commands.webresponseobject). A close comparison of those docs pages will reveal that many properties are inherited from parent to child, but that `Content` is _not_ inherited; instead - it is declared a second time. Not only this, but a deeper examination of the parent type will reveal that it is declared as a _different type_ in the child class than that of the same-named property in the parent type. Compare:
2 Through judicious use of filtering and [`Get-Member`](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-member), that's how. I've encapsulated my approach in the utility function [`Get-PropertyValues`](https://gist.github.com/petervandivier/11d9ef2c0e1c5d0728ffc8113cf831cd). The full source is at the bottom of this post (and at the link), but I'll take the space here to talk through it a bit.