Although the New-Object cmdlet is powerful, it doesn’t yet handle creating generic types very elegantly. For a simple parameterized type, you can use the syntax that the .Net framework uses under the hood:

## Create the closed version of the generic type
,[Activator]::CreateInstance($closedType, $constructorParameters)

[Edit: Bruce Payette pointed out that casting a string to a [Type] does all the hard work of the previous GetType function I wrote. Also fixes a problem when you create generic types that PowerShell attempts to enumerate over when you return them.]