Cmdlets are high level, task-oriented abstractions. The implementation of cmdlets can talk to anything: Web services, COM objects, WMI objects, .NET objects – anything. Depending upon how developers design their API, they can make it easier or harder to write cmdlets. Now that you can write cmdlets in PowerShell itself, here are some tips for designing your API so that it can be easily scripted against and turned into a set of cmdlets using PowerShell
Just because the Object Model lives in .NET land, doesn’t mean we can’t make it easier to use for scripters in PowerShell land
Hope this helps,Ibrahim[MSFT]