PowerShell VS CMD

 

PowerShell Vs CMD

PowerShell es una solución de automatización de tareas multiplataforma formada por un shell de línea de comandos, un lenguaje de scripting y un marco de administración de configuración. PowerShell funciona en Windows 10, Linux y macOS.


Ventajas:

Facilidad de uso: La estructura de los comandos es generada mediante verbo-sustantivo lo que facilita la creación de tareas complejas y permite comprender el alcance o acción del comando. Se requiere un buen conocimiento de sistemas, es una interfaz básica y sencilla de bajo nivel orientada a usuarios intermedios o avanzados con conocimientos en programación, gestión de sistemas operativos, bases de datos, entornos de programación y lenguajes de programación. 

Alcance: PowerShell en sus ultima versiones tiene un gran alcance para gestionar diversos sistemas operativos incluyendo capacidades de gestión multiplataforma Windows, MAC o Linux. Cuenta con capacidad de creación y ejecución de scripts para apoyar la automatización y un entorno de desarrollo para la creación de herramientas por medio de programación con lenguajes como C, C++, Visual Basic, Java, etc. 

Seguridad: En PowerShell existen elementos que permiten implementar mecanismos de seguridad con el fin de asegurar el entorno de administración y automatización que provee. Permite establecer políticas de ejecución, auditoria, pueden definirse enfoques de administración granulares limitando qué procesos, comandos o parámetros puede usar cada usuario. Se pueden definir permisos Just in time, fijados por un periodo de tiempo definido y no dejarlos abiertos de forma indefinida. 

Comunidades: Existe una buena documentación por parte de Microsoft para esta herramienta con una estructura muy completa y con un temario que permite conocer desde lo básico hasta las funcionalidades mas complejas. Existe una comunidad entorno a PowerShell que genera contenido en foros, repositorios de desarrollo, grupos de desarrollo con un enfoque en particulares, recursos para desarrolladores, etc.

Desventajas:

Facilidad de uso: Como esta herramienta está diseñada para los administradores de sistemas, no tiene ninguna interfaz gráfica, se requiere tener conocimiento de los comandos y todos los parámetros. Al hacer automatizaciones o ejecutar scripts, demanda conocimiento de programación para tareas sencillas. Para actividades más complejas se requiere conocer s programación orientada a objetos para aprovechar todo el potencial y las capacidades de ejecución y de desarrollo que provee PowerShell. Un uso frecuente en la organización es la administración de active directory, para tareas de creación masiva o generación de informes. Siempre se deben construir los queries cada vez que cambien los datos requeridos en el reporte. Esto una gran carga para los administradores que generalmente no son dedicados solo para esta labor en la organización sino que además tienen responsabilidades adicionales de soporte o de administración de TI. 

Alcance: Las últimas versiones de PowerShell tienen un gran alcance, en sus inicios solo gestionaba sistemas Windows, pero sus últimas versiones vienen con soporte multiplataforma, sin embargo, los scripts no se ejecutan en todas las plataformas. En algunas ocasiones se deben hacer ajustes o cambiar comandos, la programación es basada en objetos y se diferencia de otros Shell basados en texto, por lo cual requiere de un tiempo de adaptación. PowerShell requiere de un servidor web para usar las funcionalidades remotas. 

Seguridad: Ya hemos mencionado la gran capacidad de ejecución y automatización de PowerShell, por ello también es riesgoso tenerlo implementado en un entorno sin las correspondientes medidas de seguridad y protección que permitan controlar y mitigar los riesgos. Puede haber un temor generalizado cuando se hace uso de las funcionalidades remotas: pueden quedar algunos huecos o brechas de seguridad permitiendo que se instalen virus, malware o en general software de alto riesgo. Esto permite la inyección de un código malicioso sin necesidad de tenerlo en el disco por lo cual los atacantes pueden generar daños sin usar archivos externos. En este artículo de Forbes podemos leer algunos ejemplos de casos en los que los hackers hacen uso de las capacidades de PowerShell para facilitar su ataques. Dado las capacidades de la herramienta en algunos entornos es difícil lograr el cumplimiento que permita a las organizaciones usar de forma segura esta herramienta. 

Comunidades: Es una comunidad en desarrollo promovida por Microsoft que esta en fase de desarrollo, por lo cual no es tan fuerte y completa como otras comunidades de otros entornos.servidor web para usar las funcionalidades remotas.

El símbolo del sistema (CMD) está integrado en el sistema operativo Windows y en su mayoría está casi oculto en Windows.
Así es como se realizan acciones avanzadas usando comandos de texto.


Ventajas:

  • Fácil de aprender y usar. 
  • Una variedad de comandos útiles como chkdsk o scannow.
  •  Huella de sistema reducida.

Desventajas:

  • Conjunto limitado de comandos.
  • Difícil escribir scripts reutilizables. 
  • No se pueden establecer tareas automatizadas. 
  • No todas las acciones de la GUI tienen sus equivalentes en la línea de comandos.


Referencias:

PowerShell

CMD

Comentarios