Windows PowerShell

De ITCG Wiki
Ir a la navegaciónIr a la búsqueda

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.

Caracteristicas

La característica distintiva de PowerShell es que es un intérprete de comandos orientado a objetos. La información de entrada y de salida en cada etapa del proceso (cmdlet, "comándulo") es un conjunto de instancias de objeto, a diferencia de lo que ocurre con los intérpretes de comandos tradicionales, que solo devuelven y reciben texto.

Alias de comandos En Powershell se pueden crear alias al estilo de Unix, es decir, nombrar de diferentes maneras a los comandos. Por ejemplo para mostrar directorios se usa dir, ls, gci. El programador puede apodar el comando como quiera. Esto facilita trabajar con el entorno de programación. Utilizando una única sentencia, mediante Powershell se pueden realizar fácilmente las siguientes acciones:

  • Monitorizar contadores.
  • Apagar o detener servicios.
  • Modificar registros del sistema.

Ventajas y desventajas de PowerShell

Ventaja

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

Desventaja

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 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.

Versiones

  • PowerShell 1.0 se lanzó en noviembre de 2006 para Windows XP SP2, Windows Server 2003 SP1 y Windows Vista. Es un componente opcional de Windows Server 2008.
  • PowerShell 2.0 Windows PowerShell ISE v2.0 en Windows 7, un entorno de desarrollo integrado para los scripts de PowerShell. PowerShell 2.0 está integrado con Windows 7 y Windows Server 2008 R2 y se lanza para Windows XP con Service Pack 3, Windows Server 2003 con Service Pack 2 y Windows Vista con Service Pack 1. PowerShell 2.0 incluye cambios en el lenguaje de scripts y en la API de hospedaje; además, incluye más de 240 nuevos cmdlets.
  • PowerShell 3.0 está integrado con Windows 8 y con Windows Server 2012. Microsoft también ha puesto a disposición PowerShell 3.0 para Windows 7 con Service Pack 1, para Windows Server 2008 con Service Pack 1 y para Windows Server 2008 R2 con Service Pack 1. PowerShell 3.0 es parte de un paquete más grande, Windows Management Framework 3.0 (WMF3), que también contiene el servicio WinRM para apoyar el remoting. Microsoft hizo varias versiones de Community Technology Preview de WMF3. El 2 de diciembre de 2011 se publicó una versión temprana de la Community Technology Preview 2 (CTP 2) de Windows Management Framework 3.0. Windows Management Framework 3.0 se publicó para su disponibilidad general en diciembre de 2012 y se incluye con Windows 8 y Windows Server 2012 de forma predeterminada.
  • PowerShell 4.0 está integrado con Windows 8.1 y con Windows Server 2012 R2. Microsoft también ha hecho que PowerShell 4.0 esté disponible para Windows 7 SP1, Windows Server 2008 R2 SP1 y Windows Server 2012.
  • PowerShell 5.0 Windows Management Framework (WMF) 5.0 RTM, que incluye PowerShell 5.0, se lanzó a la web el 24 de febrero de 2016 después de un lanzamiento inicial con un grave bug. Las características clave incluyen cmdlets OneGet PowerShell para soportar la administración de paquetes basada en el repositorio de Chocolatey y la ampliación del soporte para la administración de conmutadores a los conmutadores de red de capa 2.
  • PowerShell Core 6.0 se anunció por primera vez el 18 de agosto de 2016, cuando Microsoft dio a conocer PowerShell Core y su decisión de hacer que el producto sea multiplataforma, independiente de Windows, de código libre y abierto. Alcanzó la disponibilidad general el 10 de enero de 2018 para Windows, macOS y Linux. Tiene su propio ciclo de vida de soporte y se adhiere a la política de ciclo de vida de Microsoft que se introduce con Windows 10: sólo la última versión de PowerShell Core es compatible. Microsoft espera lanzar una versión menor para PowerShell Core 6.0 cada seis meses.​
  • PowerShell Core 6.1 Las nuevas características de PowerShell Core 6.1 incluyen:
  1. Compatibilidad con los más de 1900 cmdlets existentes en Windows 10 y Windows Server 2019.
  2. Construido sobre .NET Core 2.1.
  3. Soporte para las últimas versiones de Windows, macOS y Linux.
  4. Mejoras significativas en el rendimiento.
  • PowerShell Core 6.2 El lanzamiento de PowerShell Core 6.2 está enfocado principalmente en mejoras de rendimiento, corrección de errores, y mejoras menores de cmdlet/idioma que mejoran la calidad de vida de los usuarios.
  • PowerShell 7 es el producto de reemplazo para los productos PowerShell Core 6.x y para Windows PowerShell 5.1, que es la última versión de Windows PowerShell soportada. Para que PowerShell 7 sea un reemplazo viable para Windows PowerShell 5.1 debe tener casi paridad con Windows PowerShell en términos de compatibilidad con los módulos que se envían con Windows.​

Las nuevas características de PowerShell 7 incluyen:

  1. Construido sobre .NET Core 3.1 (LTS).
  2. ForEach-Object -Parallel
  3. Envoltura de compatibilidad con Windows.
  4. Notificación de nueva versión.
  5. Nueva vista de error y cmdlet Get-Error.
  6. Operadores de la cadena de oleoductos (&& y ||).
  7. ?: operador ternario (a ? b : c).
  8. Asignación nula y operadores de coalescencia nula (??= y ??)[97].
  9. Invocación de plataforma Invoke-DscResource (experimental).
  10. Out-GridView, -ShowWindow y otros cmdlets GUI heredados están de vuelta en Windows.

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

  • «What is a Powershell? - Computer Hope» (en inglés). Computer Hope. 7 de marzo de 2020.
  • «PowerShell is Microsoft's latest open source release, coming to Linux, OS X» (en inglés). Ars Technica. 7 de marzo de 2020.
  • «PowerShell/LICENSE.txt» (en inglés). GitHub. 7 de marzo de 2020.
  • founder, Michael PietroforteMichael Pietroforte is the.«Differences between PowerShell versions». 4sysops (en inglés estadounidense). Consultado el 24 de abril de 2020.
  • Soto, J. A. (23 de Julio de 2020). Geeknetic.
  • WIKIPEDIA. (05 de Marzo de 2021). WIKIPEDIA.