I want to write cmdlet in c# just inside powershell script, so that I don't need to compile it myself, and also can leverage the WriteObject()/WriteError() functions, but it doesn't work, anyone know how to do this?
$code = @"
using System;
using System.Management.Automation;
[Cmdlet("Write", "Hello")]
public class WriteHello : PSCmdlet
{
[Parameter(Position =0)]
public String Msg { get; set; }
protected override void ProcessRecord()
{
//WriteObject("Hello: " + Msg);
Console.WriteLine("Hello: " + Msg);
}
}
"@
Add-Type $code
$cmdlet = [WriteHello]::new()
# Error when invoke().
$cmdlet.Invoke()