PowerShell

De ITCG Wiki
Ir a la navegaciónIr a la búsqueda
Powershell-1.jpg

PowerShell es una consola de línea que nos da la posibilidad de hacer escritura de comandos para realizar administraciones de sistema y lograr un mejor control de tareas automatizándolas. Este además incorpora la ejecución de scripts y una salida basada en objetos por lo que acepta y nos retorna objetos de .NET por que se encuentra basado en .NET CLR. Por su salida basada en objetos es que PowerShell es reconocida popularmente entre los informáticos ya que es un atributo que muchas otras líneas de comando no poseen y son conocidos como cmdlet. Otra de las innovaciones de PowerShell es su capacidad de creación de comandos extensibles ya que podemos desarrollar y crear nuevos comandos a partir de script o código compilado, lo cual es una gran ventaja si necesitamos nosotros crear nuestro propio comando.

Historia

PowerShell ha sido desarrollada por Microsoft quienes introdujeron la primera versión de este en noviembre del año 2006 donde era compatible con Windows Server 2003, Windows Vista y Windows XP, esta se dice que era muy débil y se utilizaba para hacer gestiones de SharePoint y también en Exchange 2007, posteriormente se lanzo una versión 2 la cual permitía capacidades de realizar administraciones remotas desde cualquier equipo en que se ejecutara, permitiéndose así poder llegar a muchas aplicaciones, en su versión 3 la ejecución de tareas largas de manera desconectada era posible y comenzó a estar disponible en la mayorías de los principales servidores de Microsoft, en su versión 4 se integro un DSC (Desired State Configuration) que nos permite describir la configuración deseada en un equipo mediante un archivo de texto, razón por la cual muchos se sentían atraídos por el uso de la aplicación y en su versión 5 el DSC ya había sido aún más actualizado a tal punto de recibir soporte por parte de visual studio para así llegar a abarcar a más usuarios. Gracias a todas las versiones que han sido realizadas, PowerShell es usado por millones de personas a nivel mundial pues con cada versión a sabido evolucionar y adaptarse a las grandes demandas de los usuarios, a tal punto de recibir soporte por varios proveedores para que la aplicación siga desarrollándose y ofreciendo servicios de alta calidad.

¿Por qué se debe de utilizar PowerShell?

Power2.png

PowerShell ha venido a revolucionar y solventas problemas que por lo general hemos encontrado en command.com y cmd.exe los cuales son la falta de acceso a los componentes del sistema y la gran limitación en sus funcionalidades, por lo que desde el año 2009 los servidores de Microsoft han sido compatibles con PowerShell y ha logrado solucionar muchos problemas especialmente con la administración en Windows y también a la hora de automatizarlo, esto ha sido lo llamativo de PowerShell que ha sido renovado y actualizado a tal punto de que desde el año 2016 se ofrece la consola en todas las plataformas esto con la idea principal de ser una herramienta universal para nosotros los administradores y que seamos capaces de poder utilizarla sin importar si estamos trabajando o no con Microsoft, ya que se extiende a otros sistemas operativos como Linux y MacOS.



Ventajas y desventajas de PowerShell

Ventajas

• Utiliza cmdlets que permiten el desarrollo de comandos extensibles y hacer comandos propios • Mejora la administración de Windows • Ya que tiene la capacidad de trabajar con objetos, realiza tareas más complejas • Los comandos están disponibles desde la línea de comandos • Se pueden administrar varios sistemas sin importar nuestra ubicación, pues trabaja remotamente • Tiene la capacidad de acceder a componentes internos de Windows como por ejemplo a WMI

Desventajas

Powershell esta desarrollado para ser utilizado por administradores y personal de IT, por lo que no es tan sencillo de usar si nunca se ha estudiado con anterioridad, por lo que es recomendable tener aun que sea un conocimiento básico de este para poderlo manejar e implementar.

PowerShell y el símbolo de sistema

El símbolo del sistema o en ocasiones conocido como CMD, poco a poco a comenzado a ser remplazado por PowerShell ya que desde Windows 10 este ha venido configurado como Shell predeterminado del sistema y esto es gracias a que PowerShell comparado con el CMD es mucho más actualizado e innovador, por esta razón es que Microsoft se esta enfocando a utilizar PowerShell como el comando principal del futuro. Cabe destacar de que el CMD no puede ejecutar comandos de PowerShell, pero este último si puede ejecutar comandos CMD, la principal razón es que este último es menos potente y moderno por lo que es recomendable utilizar PowerShell para una mejor administración y dejar el CMD atrás. Otra diferencia es que como PowerShell implementa los cmdlets, este tipo de comandos pueden ser utilizados para la administración de tareas, de registros y hasta para administrar el WMI de Windows, contrario al caso de CMD donde no podemos realizar este tipo de acciones.

PowerShell ISE

Este se refiere a el entorno de secuencias de comandos integrado (ISE) de PowerShell el cual es una interfaz grafica que nos da la posibilidad de perfeccionar nuestros scripts ya que nos permite a los administradores desarrollar comandos y también ejecutarlos fuera de Powershell para así poder perfeccionarlos sin necesidad de afectar el sistema o las tareas sin antes estar listo el comando.

El ISE es una gran herramienta para el uso de los administradores, pues con su interfaz nos provee herramientas de edición que ayudan al usuario a poder perfeccionar sus scripts, herramientas que no están presentes en PowerShell por lo que no es posible saber si el script esta 100% adaptado a nuestra necesidad.

Estas son algunas de las cosas que se pueden realizar en ISE: • Editar varias líneas • Coloreado basado en sintaxis • Ejecución selectiva • Compatibilidad con varios idiomas • Ayuda sensible al contexto ISE también posee una biblioteca completa de comandos del lenguaje de secuencias de comando de PowerShell, acá se pueden encontrar comandos en orden alfabético y también grupos de comandos, también este es compatible con hasta 32 entornos de ejecución simultánea.

PowerShell Modules

Estos son paquetes que contiene los cmdlets, proveedores, flujos de trabajos, funciones, variables y alias de PowerShell, estos son necesarios para que organizar y agrupar los comandos de PowerShell sea más fácil.

Modulo de secuencias de comandos

Son los módulos más comunes y son cualquier archivo que contenga funciones y código, son usados por los administradores y desarrolladores.

Módulos binarios

Acá encontramos código compilado y basado en un ensamblado de .Net y es utilizado por los desarrolladores de cmdlet para la realización de módulos.

Módulos de manifestó

Módulos que contienen un manifestó como lo es la información del autor.

Módulos Dinámicos

Es un modulo que no se escribe en el disco y que solamente es encontrado en la memoria, estos módulos están disponibles en la sesión de PowerShell hasta que la sesión es finalizada.

Fuentes Utilizadas

Soto, J. A. (23 de Julio de 2020). Geeknetic. Dirección web

WIKIPEDIA. (05 de Marzo de 2021). WIKIPEDIA. Dirección web

Enlaces Externos

Documentación de PowerShell