PowerShell: hoja de trucos

Esta guía completa cubre la información esencial de PowerShell, incluidas las características, los requisitos del sistema y cómo el marco de Microsoft se extiende a la automatización y administración de tareas.

PowerShell fue desarrollado hace más de 10 años por Microsoft para expandir el poder de su interfaz de línea de comandos (CLI) al acoplarlo con un marco de administración que se utiliza para administrar sistemas Windows, macOS y Linux locales y remotos. Al hacer uso de los estándares de interfaz del Modelo de objetos componentes (COM), Instrumental de administración de Windows (WMI) y Modelo de información común (CIM), PowerShell permite que los elementos administrados de los objetos informáticos se administren independientemente del fabricante o proveedor.

Esta hoja de referencia se actualizará cuando Microsoft publique nueva información a lo largo del ciclo de vida de desarrollo de PowerShell.

Resumen

  • ¿Qué es PowerShell? PowerShell de Microsoft es un marco de administración que combina un shell de línea de comandos y lenguaje de secuencias de comandos que se basa en el marco .NET para el soporte nativo de Windows o el marco .NET Core (que es de código abierto), proporcionando soporte multiplataforma para Windows, macOS y Linux.
  • ¿Por qué ¿Importa PowerShell? PowerShell es capaz de automatizar las tareas de administración y funcionar como un lenguaje de scripting dedicado tanto para software de Microsoft como para otros. Además, PowerShell incluye comandos llamados cmdlets que agregan funcionalidad a la base principal, al tiempo que proporcionan un medio para actualizar / actualizar cmdlets para aumentar aún más la funcionalidad en las versiones futuras.
  • ¿A quién afecta PowerShell? Empresas que dependen de los servicios de Microsoft, Apple y Linux para potenciar sus funciones comerciales, y los profesionales de TI responsables de administrar esta infraestructura.
  • ¿Cuándo estará disponible PowerShell? PowerShell 5.1 (.NET) está cerrado source, la versión más reciente disponible y compatible con sistemas basados ​​en Windows. PowerShell 7 (.NET Core) es de código abierto y la versión más reciente disponible, compatible con los sistemas operativos Windows, macOS y Linux. Solo en sistemas Windows, ambas versiones pueden coexistir sin conflicto.
  • ¿Cómo puedo obtener PowerShell? PowerShell 5.1 (.NET) es una aplicación instalada de forma nativa que forma parte de todos los sistemas operativos de servidor y cliente Windows; De forma predeterminada, la aplicación se puede actualizar directamente desde el sitio web de descargas de Microsoft o mediante las actualizaciones de Microsoft. Puede obtener la última versión, PowerShell 7 (.NET Core), visitando el sitio web de GitHub de Microsoft para PowerShell y descargando la versión compatible con su sistema operativo; esta versión de PowerShell también se puede descargar y actualizar a través de la CLI nativa del sistema operativo.

Qué es PowerShell?

Lanzado como PowerShell 1.0 el 14 de noviembre de 2006, Microsoft desarrolló PowerShell para abordar las deficiencias de su CLI basada en DOS, particularmente cuando se administran objetos que utilizan lenguajes de programación complejos.

Al crear un nuevo shell desde cero, Microsoft desarrolló efectivamente un entorno extensible que sería poderoso y flexible: es capaz de automatizar las tareas de administración y funcionar como un lenguaje de scripting dedicado para software basado en Microsoft.

A través de varias revisiones, PowerShell ha agregado módulos para extender la funcionalidad a nuevos objetos, así como para introducir nuevos cmdlets para administrar más recursos, incluidos Active Directory y Exchange Server. El 18 de agosto de 2016, Microsoft anunció que PowerShell se convertiría en código abierto y proporcionó su código fuente al público, agregando soporte para sistemas operativos basados ​​en Unix, incluidas distribuciones de Linux y OS X.

PowerShell 7 es la versión más nueva de PowerShell y sirve como una consola de reemplazo para las versiones anteriores de PowerShell Core 6.xy PowerShell 5.1 solo para Windows. Este último sirve como la última versión compatible de la versión de PowerShell solo para Windows, con el objetivo del equipo de desarrollo de condensar todas las versiones anteriores de PowerShell en una que comience con la 7.0. Este movimiento, que está actualmente en marcha, hará que PowerShell 7 sea compatible lentamente con cmdlets no admitidos anteriormente, acercándolo aún más a la paridad para todas las versiones de sistemas operativos compatibles.

PowerShell incluye varios cmdlets con los que administrar cualquier cantidad de atributos, recursos y objetos del sistema, mucho más allá del alcance de esta guía. A continuación, se muestran algunas de las características, módulos y cmdlets más notables.

  • Active Directory (módulo): Este módulo es utilizado por PowerShell para extender las capacidades de administración a los objetos de Active Directory, incluyendo computadoras, usuarios y grupos y atributos almacenados dentro de las cuentas.
  • Exchange Server (módulo): PowerShell utiliza este módulo para permitir la administración completa de los servidores Exchange. En el módulo se incluyen cmdlets adicionales que son totalmente compatibles con todos los aspectos de su servidor de correo electrónico de Exchange.
  • Get-Help (cmdlet): Este cmdlet integrado en el núcleo de PowerShell proporciona información útil, incluido el uso de sintaxis y ejemplos de comandos y lo que logran.
  • Get-Command (cmdlet): Cuando se ejecuta, este cmdlet integrado dentro del núcleo de PowerShell proporciona una lista de comandos que están disponibles. Es útil para identificar qué comandos están disponibles para cada módulo.
  • Set-Variable (cmdlet): Este cmdlet integrado en PowerShell permite al usuario crear variables que se utilizan para almacenar datos, como rutas de archivo, múltiples objetos , o fragmentos de código que desea reutilizar.
  • Invoke-Command (cmdlet): Este cmdlet integrado dentro de PowerShell llama a otro cmdlet, generalmente ejecutado desde una computadora local, para ejecutar el comando invocado en computadoras remotas .
  • Canalización (|): Una de las características de PowerShell es la capacidad de encadenar comandos mediante el carácter de canalización. La canalización de comandos hace que PowerShell ejecute la primera parte del comando y luego genere los resultados para que los use el segundo comando y así sucesivamente hasta que se ejecute toda la secuencia. Es útil cuando se realiza una tarea de varios pasos, como crear un nombre de usuario, agregar el nombre de usuario a un grupo de seguridad y restablecer la contraseña predeterminada.
  • Función ({}): Similar a la función de canalización en ese Los cmdlets pueden estar vinculados, las funciones permiten un mayor control sobre el proceso de creación de scripts. Al encapsular los cmdlets entre llaves, se crea una función que sirve para ejecutar la secuencia una o más veces.
  • Archivo de salida (cmdlet): Este cmdlet integrado en PowerShell permite exportar la salida de un comando a un expediente. Usado normalmente con la función de canalización, un usuario puede obtener una lista de cuentas de usuario que están deshabilitadas en Active Directory, por ejemplo, y exportar esa lista a un archivo de texto para uso futuro.
  • Import-Module (cmdlet): Este cmdlet integrado en PowerShell importa uno o más módulos en PowerShell para mejorar su conjunto de características, cmdlets y funcionalidad.
  • Módulos de terceros: Los desarrolladores de software pueden programar código para agrupar varios cmdlets juntos como tercero módulos de fiesta que se importan a PowerShell para ampliar la funcionalidad y el soporte para aplicaciones específicas. Existen módulos de terceros notables de VMware (virtualización), Dell (servidores PowerEdge) y PowerSploit (seguridad / pentesting).

Requisitos mínimos actuales del sistema para PowerShell 7

  • procesador y sistema operativo basados ​​en x64
  • Ubuntu LTS 16.04 o 18.04
  • CentOS 7 u 8
  • Arch Linux
  • Kali Linux
  • Alpine Linux 3.8
  • Fedora 30
  • Debian 9 o 10
  • openSUSE 42.3
  • macOS 10.1
  • Windows 8.1 o 10
  • Windows (ARM)
  • Raspbian (ARM)
  • Docker
  • Internet: Acceso de banda ancha (opcional)

Recursos adicionales ¿Por qué es importante PowerShell?

Hasta el lanzamiento de Windows 95, Microsoft optó por ejecutar Windows sobre DOS, ya que era el sistema operativo de facto en uso en computadoras compatibles con IBM. A partir de Windows 95, Windows mantuvo MS-DOS ya que algunas aplicaciones heredadas todavía dependían de él.

MS-DOS también sirvió como medio para administrar dispositivos a través de métodos remotos y mediante scripts que se codificarían para ejecutar automáticamente tareas que se consideraban repetitivas y que consumían mucho tiempo para administrar computadoras con Windows.

MS-DOS se lanzó en 1981, y Microsoft no desarrolló su CLI (a diferencia de sus competidores basados ​​en Unix) hasta el desarrollo inicial de PowerShell en 2006. Al dar este salto de 25 años, PowerShell fue diseñado como algo más que un reemplazo de CLI.

Microsoft creó PowerShell como un marco de administración que combina un shell de línea de comandos y un lenguaje de scripting que se basa en .NET y .NET Core y se usa como un marco de software para estandarizar código, desarrollar aplicaciones poderosas y multiplataforma gestión de sistemas en redes heterogéneas.

Esto da como resultado que PowerShell se use para administrar hardware, software y objetos de red en la línea de comando, al tiempo que permite a los programadores usar sus capacidades de scripting para interactuar con cualquier atributo manejable para compartir datos entre ellos, incluido el código de salida para desarrollar aplicaciones para escalar, desde una computadora personal hasta grandes empresas que se extienden por todo el mundo.

PowerShell de código abierto permite una polinización cruzada de administradores de sistemas para administrar múltiples tipos de sistemas operativos de servidor desde casi cualquier sistema, por ejemplo, administrar servidores Windows desde macOS o mantener servidores Linux desde máquinas cliente Windows. Este nivel de flexibilidad no tiene precedentes y será útil para estandarizar la administración de diferentes plataformas en todas las industrias, especialmente cuando se trata de automatizar los procesos de administración del sistema, ya que los scripts de PowerShell 7 creados en sistemas Linux funcionarán de manera idéntica en sistemas macOS y Windows, aliviando la sobrecarga administrativa.

 

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*