If you run the following code in LINQPad (on Windows):
Command.Run(@"C:\Windows\System32\osk.exe").Wait();
you get:
Win32Exception: An error occurred trying to start process 'C:\Windows\System32\osk.exe' with working directory '...'. The requested operation requires elevation.
at this line.
Should the consumer catch Win32Exception?