CMD o Símbolo de sistema
Esta aplicación nativa de Microsoft la llevamos viendo muchos años en los sistemas operativos Microsoft , de hecho ya por el Windows 2000 podíamos ver esta funcionalidad, por lo que podríamos decir que ha estado presente desde la época moderna de los sistemas operativos.
Gracias a esta herramienta, podremos lanzar comandos básicos y preparar scripts relativamente sencillos, y es que tareas que van desde agregar una unidad en red, modificar el registro del sistema o hacer copias de seguridad de nuestros datos, están más que probadas y funcionan sin problemas.
Ahora bien, cuando ya queremos exigirle más al sistema, cuando queremos hacer desarrollos reales o cuando necesitamos acceder a ciertas áreas del sistema en busca de información, es donde CMD muestra sus carencias y donde veremos que resulta imposible llegar a un nivel profundo del sistema operativo, es decir, el símbolo del sistema lo podemos utilizar para acciones básicas y scripts sencillos, poco más.
PowerShell
A diferencia de su hermano mayor, PowerShell es una herramienta más moderna, la cual pudimos ver por primera vez en Windows Vista y que se ha mantenido hasta la fecha, de hecho, cada vez ha ido cobrando más importancia y no cabe duda que en el futuro sustituirá completamente al símbolo del sistema o CMD.
Esta herramienta ya necesita de ciertas características para funcionar, por ejemplo, .NET Framework, algo que no necesitábamos al hablar de CMD.
La principal diferencia entre ambos es que PowerShell permite una programación orientada a objetos, es decir, un programación compleja, además permite no solo trabajar con el sistema operativo Windows a nivel usuario, sino también con programas de Microsoft como SQL Server, Exchange o IIS, es decir, un alcance completo que nos permitirá automatizar tareas también a nivel de servidor.

