O C# permite executar uma linha de comando usando o namespace System.Diagnostics que contêm tipos que permitem interagir com processos do sistema, logs de eventos e medidores de desempenho. Os namespaces filho contêm tipos para interagir com ferramentas de análise de código, oferecer suporte a contratos, estender o suporte em tempo de design para a instrumentação e monitoramento de aplicativos, registrar dados de eventos usando o subsistema Rastreamento de Eventos para Windows (ETW), ler e gravar logs de evento, coletar dados de desempenho e ler e gravar informações de símbolos de depuração.
O Método Process.Start (String) inicia um recurso do processo especificando o nome de um documento ou um arquivo de aplicativo e associa o recurso com um novo componente de Process.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1{ class Program { static void Main(string[] args) { System.Diagnostics.Process.Start(@"C:\\Windows\\notepad.exe"); // ou System.Diagnostics.Process.Start("Shutdown", "-f -s"); } } }