Add-Type calls the csc compiler, which writes to disk.
$User32 =@"using System;using System.Runtime.InteropServices;public class User32 { [DllImport("user32.dll", CharSet=CharSet.Auto)] public static extern int MessageBox(IntPtr hWnd, String text, String caption, intoptions);}"@Add-Type $User32[User32]::MessageBox(0,"This is an alert","MyBox",0)
Dynamic Invocation - UnsafeNativeMethods
This snippet's purpose is to demonstrate the concept of Dynamic Invocation,
For actual operational usage I recommend using this amazing project by TheWover