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");
}
}
}

