stringtranslate.com

Potencia Shell

PowerShell es un programa de automatización de tareas y gestión de configuración de Microsoft , que consta de un shell de línea de comandos y el lenguaje de scripting asociado . Inicialmente un componente exclusivo de Windows, conocido como Windows PowerShell , se convirtió en código abierto y multiplataforma el 18 de agosto de 2016, con la introducción de PowerShell Core . [4] El primero está construido sobre .NET Framework , el segundo sobre .NET (anteriormente .NET Core).

PowerShell se incluye con todas las versiones de Windows compatibles actualmente y también se puede instalar en MacOS y Linux . [4] Desde la compilación 14971 de Windows 10 , PowerShell reemplazó al Símbolo del sistema (cmd.exe) y se convirtió en el shell de comandos predeterminado para el Explorador de archivos . [5] [6]

En PowerShell, las tareas administrativas generalmente se realizan a través de cmdlets (pronunciados command-lets ), que son clases .NET especializadas que implementan una operación particular. Estos funcionan accediendo a datos en diferentes almacenes de datos, como el sistema de archivos o el Registro de Windows , que se ponen a disposición de PowerShell a través de proveedores . Los desarrolladores externos pueden agregar cmdlets y proveedores a PowerShell. [7] [8] Los cmdlets pueden ser utilizados por scripts, que a su vez pueden empaquetarse en módulos. Los cmdlets funcionan en conjunto con la API .NET .

La compatibilidad de PowerShell con .NET Remoting , WS-Management , CIM y SSH permite a los administradores realizar tareas administrativas tanto en sistemas Windows locales como remotos. PowerShell también proporciona una API de alojamiento con la que se puede integrar el entorno de ejecución de PowerShell dentro de otras aplicaciones. Estas aplicaciones pueden utilizar la funcionalidad de PowerShell para implementar ciertas operaciones, incluidas las expuestas a través de la interfaz gráfica . Esta capacidad ha sido utilizada por Microsoft Exchange Server 2007 para exponer su funcionalidad de administración como cmdlets y proveedores de PowerShell e implementar las herramientas de administración gráfica como hosts de PowerShell que invocan los cmdlets necesarios. [7] [9] Otras aplicaciones de Microsoft, incluido Microsoft SQL Server 2008, también exponen su interfaz de administración a través de cmdlets de PowerShell. [10]

PowerShell incluye su propia ayuda extensa basada en consola (similar a las páginas de manual en los shells de Unix ) a la que se puede acceder mediante el Get-Helpcmdlet. Se pueden obtener contenidos de ayuda locales actualizados desde Internet mediante el Update-Helpcmdlet. Alternativamente, se puede obtener ayuda de la web caso por caso mediante el -onlinecambio a Get-Help.

Fondo

El intérprete de línea de comandos (CLI) ha sido una parte inseparable de la mayoría de los sistemas operativos de Microsoft . MS-DOS y Xenix dependían casi exclusivamente de la CLI (aunque MS-DOS 5 también venía con un DOS Shell gráfico complementario ). La familia Windows 9x venía con COMMAND.COM , el entorno de línea de comandos de MS-DOS. Sin embargo, las familias Windows NT y Windows CE venían con un nuevo cmd.exe que tenía fuertes similitudes con COMMAND.COM. Ambos entornos admiten algunos comandos internos básicos y un lenguaje de script primitivo ( archivos por lotes ), que se puede utilizar para automatizar varias tareas. Sin embargo, no pueden automatizar todas las facetas de la interfaz gráfica de usuario (GUI) de Windows porque los equivalentes de las operaciones en la línea de comandos son limitados y el lenguaje de script es elemental.

Microsoft intentó solucionar algunas de estas deficiencias introduciendo Windows Script Host en 1998 con Windows 98 y su host basado en línea de comandos, Windows Script Host. cscript.exeSe integra con el motor Active Script y permite escribir scripts en lenguajes compatibles, como JScript y VBScript , aprovechando las API expuestas por las aplicaciones a través del modelo de objetos de componentes ( COM ). Sus defectos son: su documentación no es muy accesible y rápidamente se ganó la reputación de ser un vector de vulnerabilidad del sistema después de que varios virus informáticos de alto perfil explotaran las debilidades en sus disposiciones de seguridad. Diferentes versiones de Windows proporcionaban varios intérpretes de línea de comandos de propósito especial (como netsh y WMIC ) con sus propios conjuntos de comandos, pero no eran interoperables. Windows Server 2003 intentó mejorar aún más la experiencia de la línea de comandos, pero el soporte de scripts seguía siendo insatisfactorio. [11]

Kermit

A finales de los años 90, Intel acudió a Microsoft en busca de ayuda para hacer de Windows, que se ejecutaba en CPU Intel, una plataforma más adecuada para soportar el desarrollo de futuras CPU Intel. En ese momento, el desarrollo de CPU Intel se llevó a cabo en computadoras Sun Microsystems que ejecutaban Solaris (una variante de Unix ) en CPU de arquitectura RISC . La capacidad de ejecutar muchos de los scripts de automatización KornShell de Intel en Windows se identificó como una capacidad clave. Internamente, Microsoft comenzó un esfuerzo para crear un puerto de Windows de Korn Shell, que recibió el nombre en código Kermit. [12] Intel finalmente giró hacia una plataforma de desarrollo basada en Linux que pudiera ejecutarse en CPU Intel, lo que hizo que el proyecto Kermit fuera redundante. Sin embargo, con un equipo completamente financiado, el gerente de programas de Microsoft, Jeffrey Snover, se dio cuenta de que había una oportunidad de crear una solución de propósito más general para el problema de automatización administrativa de Microsoft.

Monada

En 2002, Microsoft había comenzado a desarrollar un nuevo enfoque para la gestión de la línea de comandos, incluida una CLI llamada Monad (también conocida como Microsoft Shell o MSH). Las ideas detrás de ella se publicaron en agosto de 2002 en un documento técnico llamado "Manifiesto Monad" por su arquitecto jefe, Jeffrey Snover . [13] En una entrevista de 2017, Snover explica la génesis de PowerShell, diciendo que había estado tratando de hacer que las herramientas de Unix estuvieran disponibles en Windows, lo que no funcionó debido a " diferencias arquitectónicas centrales entre Windows y Linux ". Específicamente, señaló que Linux considera todo un archivo de texto , mientras que Windows considera todo una " API que devuelve datos estructurados". Eran fundamentalmente incompatibles, lo que lo llevó a adoptar un enfoque diferente. [14]

Monad iba a ser una nueva interfaz de línea de comandos extensible con un diseño renovado capaz de automatizar una variedad de tareas administrativas básicas. Microsoft presentó por primera vez Monad públicamente en la Conferencia de Desarrollo Profesional en Los Ángeles en octubre de 2003. Unos meses más tarde, abrieron una versión beta privada, que finalmente dio lugar a una versión beta pública. Microsoft publicó la primera versión beta pública de Monad el 17 de junio de 2005, la versión Beta 2 el 11 de septiembre de 2005 y la Beta 3 el 10 de enero de 2006.

Potencia Shell

La primera versión de PowerShell

El 25 de abril de 2006, poco después del anuncio inicial de Monad, Microsoft anunció que Monad había cambiado de nombre a Windows PowerShell , posicionándolo como una parte importante de sus ofertas de tecnología de gestión. [15] La versión candidata a lanzamiento (RC) 1 de PowerShell se lanzó al mismo tiempo. Un aspecto significativo tanto del cambio de nombre como de la RC fue que ahora era un componente de Windows, en lugar de un mero complemento.

La versión 2 de la versión 1 de PowerShell se lanzó el 26 de septiembre de 2006 y la versión final para la web el 14 de noviembre de 2006. PowerShell para versiones anteriores de Windows se lanzó el 30 de enero de 2007. [16] El desarrollo de PowerShell v2.0 comenzó antes de que se lanzara PowerShell v1.0. Durante el desarrollo, Microsoft lanzó tres versiones preliminares de tecnología comunitaria (CTP) . Microsoft puso estas versiones a disposición del público. La última versión CTP de Windows PowerShell v2.0 se puso a disposición en diciembre de 2008.

PowerShell v2.0 se completó y se lanzó a la fabricación en agosto de 2009, como parte integral de Windows 7 y Windows Server 2008 R2. Las versiones de PowerShell para Windows XP, Windows Server 2003, Windows Vista y Windows Server 2008 se lanzaron en octubre de 2009 y están disponibles para su descarga tanto para plataformas de 32 bits como de 64 bits. [17] En una edición de octubre de 2009 de TechNet Magazine , Microsoft calificó la competencia con PowerShell como "la habilidad más importante que un administrador de Windows necesitará en los próximos años". [18]

Windows 10 se entrega con Pester, un paquete de validación de scripts para PowerShell. [19]

PowerShell para Linux 7.3.1 en Ubuntu 22.10

El 18 de agosto de 2016, Microsoft anunció [20] que habían hecho que PowerShell fuera de código abierto y multiplataforma con soporte para Windows, macOS , CentOS y Ubuntu . [4] El código fuente se publicó en GitHub . [21] El paso al código abierto creó una segunda encarnación de PowerShell llamada "PowerShell Core", que se ejecuta en .NET Core . Es distinto de "Windows PowerShell", que se ejecuta en el .NET Framework completo . [22] A partir de la versión 5.1, PowerShell Core se incluye con Windows Server 2016 Nano Server . [23] [24]

Diseño

Una táctica de diseño clave para PowerShell fue aprovechar la gran cantidad de API que ya existían en Windows, Windows Management Instrumentation, .NET Framework y otro software. Los cmdlets de PowerShell "envuelven" la funcionalidad existente. La intención con esta táctica es proporcionar una interfaz más consistente y amigable para el administrador entre los administradores y una amplia gama de funcionalidades subyacentes. Con PowerShell, un administrador no necesita saber .NET, WMI o codificación de API de bajo nivel y, en cambio, puede concentrarse en usar los cmdlets expuestos por PowerShell. En este sentido, PowerShell crea poca funcionalidad nueva y, en cambio, se enfoca en hacer que la funcionalidad existente sea más accesible para una audiencia en particular. [25]

Gramática

Los desarrolladores de PowerShell basaron la gramática central de la herramienta en la de POSIX 1003.2 KornShell . [26]

Sin embargo, el lenguaje de PowerShell también fue influenciado por PHP , Perl y muchos otros lenguajes existentes. [27]

Comandos con nombre

Windows PowerShell puede ejecutar cuatro tipos de comandos con nombre: [28]

Si un comando es un programa ejecutable independiente, PowerShell lo inicia en un proceso separado ; si es un cmdlet, se ejecuta en el proceso de PowerShell. PowerShell proporciona una interfaz de línea de comandos interactiva , donde se pueden ingresar los comandos y mostrar su salida. La interfaz de usuario ofrece la posibilidad de completar los comandos con tabulaciones . PowerShell permite la creación de alias para cmdlets, que PowerShell traduce textualmente en invocaciones de los comandos originales. PowerShell admite parámetros posicionales y con nombre para los comandos. Al ejecutar un cmdlet, el trabajo de vincular el valor del argumento al parámetro lo realiza el propio PowerShell, pero en el caso de los ejecutables externos, los argumentos son analizados por el ejecutable externo independientemente de la interpretación de PowerShell. [29]

Sistema de tipos extendido

El sistema de tipos extendidos de PowerShell ( ETS ) se basa en el sistema de tipos de .NET, pero con una semántica extendida (por ejemplo, propertySets y extensibilidad de terceros). Por ejemplo, permite la creación de diferentes vistas de objetos al exponer solo un subconjunto de los campos de datos, propiedades y métodos, así como especificar un formato personalizado y un comportamiento de ordenación. Estas vistas se asignan al objeto original mediante archivos de configuración basados ​​en XML . [30]

Cmdlets

Los cmdlets son comandos especializados en el entorno de PowerShell que implementan funciones específicas. Estos son los comandos nativos en la pila de PowerShell. Los cmdlets siguen un patrón de nomenclatura Verbo - Sustantivo , como Get-ChildItem , que hace que sea un código autodocumentado . [31] Los cmdlets generan sus resultados como objetos y también pueden recibir objetos como entrada, lo que los hace adecuados para su uso como destinatarios en una canalización. Si un cmdlet genera varios objetos, cada objeto de la colección se transmite a través de toda la canalización antes de que se procese el siguiente objeto. [31]

Los cmdlets son clases .NET especializadas que el entorno de ejecución de PowerShell instancia e invoca en el momento de la ejecución . Los cmdlets derivan de Cmdleto de PSCmdlet, y este último se utiliza cuando el cmdlet necesita interactuar con el entorno de ejecución de PowerShell. [31] Estas clases base especifican ciertos métodos – BeginProcessing(), ProcessRecord()y EndProcessing()– que la implementación del cmdlet anula para proporcionar la funcionalidad. Siempre que se ejecuta un cmdlet, PowerShell invoca estos métodos en secuencia, y ProcessRecord()se llama con si recibe una entrada de canalización. [32] Si se canaliza una colección de objetos, se invoca el método para cada objeto de la colección. La clase que implementa el cmdlet debe tener un atributo .NET – CmdletAttribute– que especifica el verbo y el sustantivo que forman el nombre del cmdlet. Los verbos comunes se proporcionan como una enumeración . [33] [34]

Si un cmdlet recibe una entrada de canalización o una entrada de parámetros de línea de comandos, debe haber una propiedad correspondiente en la clase, con una implementación de mutador . PowerShell invoca al mutador con el valor del parámetro o la entrada de canalización, que se guarda mediante la implementación del mutador en las variables de clase. A continuación, los métodos que implementan la funcionalidad hacen referencia a estos valores. Las propiedades que se asignan a parámetros de línea de comandos están marcadas con ParameterAttribute[35] y se establecen antes de la llamada a BeginProcessing(). Las que se asignan a la entrada de canalización también están flanqueadas por ParameterAttribute, pero con el ValueFromPipelineparámetro de atributo establecido. [36]

La implementación de estas clases de cmdlet puede hacer referencia a cualquier API de .NET y puede estar en cualquier lenguaje .NET . Además, PowerShell hace que ciertas API estén disponibles, como , que se utiliza para acceder a la funcionalidad específica de PowerShell, como escribir objetos resultantes en la canalización. Los cmdlets pueden utilizar las API de acceso a datos de .NET directamente o utilizar la infraestructura de PowerShell de PowerShell Providers , que hacen que los almacenes de datos sean direccionables mediante rutas únicas . Los almacenes de datos se exponen utilizando letras de unidad y jerarquías dentro de ellas, direccionadas como directorios. Windows PowerShell se entrega con proveedores para el sistema de archivos , el registro , el almacén de certificados , así como los espacios de nombres para alias de comandos, variables y funciones. [37] Windows PowerShell también incluye varios cmdlets para administrar varios sistemas de Windows , incluido el sistema de archivos , o usar Windows Management Instrumentation para controlar los componentes de Windows . Otras aplicaciones pueden registrar cmdlets con PowerShell, lo que le permite administrarlos y, si incluyen algún almacén de datos (como una base de datos), también pueden agregar proveedores específicos. [ cita requerida ]WriteObject()

La cantidad de cmdlets incluidos en la instalación base de PowerShell generalmente ha aumentado con cada versión:

Se pueden agregar cmdlets al shell a través de complementos (obsoletos en v2) y módulos; los usuarios no están limitados a los cmdlets incluidos en la instalación base de PowerShell.

Tubería

PowerShell implementa el concepto de una canalización , que permite canalizar la salida de un cmdlet a otro cmdlet como entrada. Al igual que con las canalizaciones de Unix , las canalizaciones de PowerShell pueden construir comandos complejos, utilizando el |operador para conectar etapas. Sin embargo, la canalización de PowerShell difiere de las canalizaciones de Unix en que las etapas se ejecutan dentro del entorno de ejecución de PowerShell en lugar de como un conjunto de procesos coordinados por el sistema operativo . Además, los objetos .NET estructurados, en lugar de secuencias de bytes , se pasan de una etapa a la siguiente. El uso de objetos y la ejecución de etapas dentro del entorno de ejecución de PowerShell elimina la necesidad de serializar estructuras de datos o de extraerlas analizando explícitamente la salida de texto. [42] Un objeto también puede encapsular ciertas funciones que funcionan en los datos contenidos, que se vuelven disponibles para el comando del destinatario para su uso. [43] [44] Para el último cmdlet de una canalización, PowerShell canaliza automáticamente su objeto de salida al Out-Defaultcmdlet, que transforma los objetos en una secuencia de objetos de formato y luego los representa en la pantalla. [45] [46]

Debido a que todos los objetos de PowerShell son objetos .NET, comparten un .ToString()método que recupera la representación de texto de los datos en un objeto. Además, PowerShell permite especificar definiciones de formato, por lo que la representación de texto de los objetos se puede personalizar eligiendo qué elementos de datos se mostrarán y de qué manera. Sin embargo, para mantener la compatibilidad con versiones anteriores , si se utiliza un ejecutable externo en una canalización, recibe un flujo de texto que representa el objeto, en lugar de integrarse directamente con el sistema de tipos de PowerShell. [47] [48] [49]

Creación de guiones

Windows PowerShell incluye un lenguaje de scripts tipado dinámicamente que puede implementar operaciones complejas utilizando cmdlets de manera imperativa . El lenguaje de scripts admite variables, funciones, ramificaciones ( ), bucles ( , , , y ), manejo estructurado de errores/excepciones y cierres / expresiones lambda , [50] así como integración con .NET. Las variables en los scripts de PowerShell tienen el prefijo . A las variables se les puede asignar cualquier valor, incluida la salida de los cmdlets. Las cadenas se pueden encerrar entre comillas simples o dobles: cuando se usan comillas dobles, las variables se expandirán incluso si están dentro de las comillas. Encerrar la ruta a un archivo entre llaves precedidas por un signo de dólar (como en ) crea una referencia al contenido del archivo. Si se usa como un valor L , todo lo que se le asigne se escribirá en el archivo. Cuando se usa como un valor R , se leerá el contenido del archivo. Si se asigna un objeto, se serializa antes de almacenarse. [ cita requerida ]if-then-elsewhiledoforforeach$${C:\foo.txt}

Se puede acceder a los miembros de objetos mediante .notación, como en la sintaxis de C#. PowerShell proporciona variables especiales, como $args, que es una matriz de todos los argumentos de línea de comandos pasados ​​a una función desde la línea de comandos, y $_, que hace referencia al objeto actual en la canalización. [51] PowerShell también proporciona matrices y matrices asociativas . El lenguaje de scripts de PowerShell también evalúa expresiones aritméticas ingresadas en la línea de comandos inmediatamente y analiza abreviaturas comunes, como GB, MB y KB. [52] [53]

functionPowerShell permite crear funciones mediante la palabra clave. Una función simple tiene el siguiente aspecto general: [54]

 nombre  de la función ( [Tipo] $Param1 ,  [Tipo] $Param2 )  {  # Instrucciones }

Sin embargo, PowerShell permite funciones avanzadas que admiten parámetros con nombre, parámetros posicionales, parámetros de conmutación y parámetros dinámicos. [54]

función  verbo-sustantivo  { parámetro  ( # Definición de parámetros estáticos ) parámetro dinámico  { # Definición de parámetros dinámicos } comenzar  { # Conjunto de instrucciones a ejecutar al inicio de la canalización } proceso  { # Conjuntos de instrucciones principales, ejecutados para cada elemento en la canalización } fin  { # Conjunto de instrucciones que se ejecutarán al final de la canalización }}

La función definida se invoca en cualquiera de las siguientes formas: [54]

nombre  valor1  valor2 Verbo-Sustantivo  -Parámetro1  valor1  -Parámetro2  valor2

PowerShell permite llamar a cualquier método estático .NET proporcionando sus espacios de nombres entre corchetes ( []) y luego utilizando un par de dos puntos ( ::) para indicar el método estático. [55] Por ejemplo:

[Consola] :: WriteLine ( "PowerShell" )

Existen docenas de formas de crear objetos en PowerShell. Una vez creados, se puede acceder a las propiedades y métodos de instancia de un objeto mediante la .notación. [55]

PowerShell acepta cadenas , tanto sin formato como con caracteres de escape . Una cadena entre comillas simples es una cadena sin formato, mientras que una cadena entre comillas dobles es una cadena con caracteres de escape. PowerShell trata las comillas rectas y las comillas tipográficas como equivalentes. [56]

PowerShell admite la siguiente lista de caracteres especiales: [57]

Para el manejo de errores, PowerShell proporciona un mecanismo de manejo de excepciones basado en .NET . En caso de errores, Exceptionse lanzan objetos que contienen información sobre el error (objeto), que se capturan utilizando la try ... catchconstrucción (aunque también se admite una trapconstrucción). PowerShell se puede configurar para reanudar silenciosamente la ejecución, sin lanzar realmente la excepción; esto se puede hacer en un solo comando, una sola sesión o de forma permanente. [58]

Los scripts escritos con PowerShell pueden hacerse para que persistan entre sesiones en un .ps1archivo o en un .psm1archivo (este último se utiliza para implementar un módulo). Más tarde, se puede utilizar el script completo o funciones individuales en el script. Los scripts y las funciones funcionan de manera análoga a los cmdlets, en el sentido de que se pueden utilizar como comandos en pipelines y se pueden vincular parámetros a ellos. Los objetos de pipeline se pueden pasar entre funciones, scripts y cmdlets sin problemas. Para evitar la ejecución involuntaria de scripts, la ejecución de scripts está deshabilitada de forma predeterminada y debe habilitarse explícitamente. [59] La habilitación de scripts se puede realizar a nivel de sistema, usuario o sesión. Los scripts de PowerShell se pueden firmar para verificar su integridad y están sujetos a Code Access Security . [60]

El lenguaje de scripts de PowerShell admite una notación de prefijo binario similar a la notación científica admitida por muchos lenguajes de programación de la familia C. [61]

Hospedaje

También se puede utilizar PowerShell integrado en una aplicación de gestión, que utiliza el entorno de ejecución de PowerShell para implementar la funcionalidad de gestión. Para ello, PowerShell proporciona una API de alojamiento gestionado . A través de las API, la aplicación puede crear una instancia de un espacio de ejecución (una instancia del entorno de ejecución de PowerShell), que se ejecuta en el proceso de la aplicación y se expone como un objeto. [7] El estado del espacio de ejecución se incluye en un objeto. Cuando se crea el espacio de ejecución, el entorno de ejecución de Windows PowerShell inicializa la instanciación, incluida la inicialización de los proveedores y la enumeración de los cmdlets, y actualiza el objeto en consecuencia. A continuación, el espacio de ejecución debe abrirse para el procesamiento sincrónico o asincrónico. Después de eso, se puede utilizar para ejecutar comandos. [ cita requerida ]RunspaceSessionStateSessionState

Para ejecutar un comando, Pipelinese debe crear una canalización (representada por un objeto) y asociarla con el espacio de ejecución. Luego, el objeto de canalización se llena con los cmdlets que componen la canalización. Para operaciones secuenciales (como en un script de PowerShell), se crea un objeto Pipeline para cada instrucción y se anida dentro de otro objeto Pipeline. [7] Cuando se crea una canalización, Windows PowerShell invoca el procesador de canalización, que resuelve los cmdlets en sus respectivos ensamblajes (el procesador de comandos ) y agrega una referencia a ellos a la canalización, y los asocia con InputPipeobjetos OutputPipey ErrorOutputPipepara representar la conexión con la canalización. Los tipos se verifican y los parámetros se vinculan mediante reflexión . [7] Una vez que se configura la canalización, el host llama al Invoke()método para ejecutar los comandos, o su equivalente asincrónico, InvokeAsync(). Si la canalización tiene el Write-Hostcmdlet al final de la canalización, escribe el resultado en la pantalla de la consola. Si no, los resultados se entregan al host, que puede aplicar un procesamiento adicional o mostrar la salida en sí. [ cita requerida ]

Microsoft Exchange Server 2007 utiliza las API de alojamiento para proporcionar su interfaz gráfica de usuario de administración. Cada operación expuesta en la interfaz gráfica de usuario se asigna a una secuencia de comandos (o canalizaciones) de PowerShell. El host crea la canalización y la ejecuta. De hecho, la consola interactiva de PowerShell es en sí misma un host de PowerShell, que interpreta los scripts introducidos en la línea de comandos y crea los Pipelineobjetos necesarios y los invoca. [ cita requerida ]

Configuración del estado deseado

DSC permite especificar de forma declarativa cómo debe configurarse un entorno de software. [62]

Al ejecutar una configuración , DSC se asegurará de que el sistema obtenga el estado descrito en la configuración. Las configuraciones de DSC son idempotentes. El administrador de configuración local (LCM) sondea periódicamente el sistema mediante el flujo de control descrito por los recursos (partes imperativas de DSC) para asegurarse de que se mantenga el estado de una configuración.

Versiones

PowerShell, que inicialmente se conocía con el nombre en código "Monad", se mostró por primera vez públicamente en la Conferencia de desarrolladores profesionales de octubre de 2003 en Los Ángeles. Todas las versiones principales siguen recibiendo soporte y cada una de ellas ha sido compatible con versiones anteriores.

Windows PowerShell 1.0

Sesión de Windows PowerShell 1.0 mediante la consola de Windows

PowerShell 1.0 se lanzó en noviembre de 2006 para Windows XP SP2 , Windows Server 2003 SP1 y Windows Vista . [63] Es un componente opcional de Windows Server 2008 .

Windows PowerShell 2.0

Windows PowerShell ISE v2.0 en Windows 7 , un entorno de desarrollo integrado para scripts de PowerShell

PowerShell 2.0 está integrado con Windows 7 y Windows Server 2008 R2 [64] y se lanzó para Windows XP con Service Pack 3, Windows Server 2003 con Service Pack 2 y Windows Vista con Service Pack 1. [65] [66]

PowerShell v2 incluye cambios en el lenguaje de scripting y la API de alojamiento, además de incluir más de 240 nuevos cmdlets. [67] [68]

Las nuevas características de PowerShell 2.0 incluyen: [69] [70] [71]

Windows PowerShell 3.0

PowerShell 3.0 está integrado con Windows 8 y con Windows Server 2012. Microsoft también ha puesto PowerShell 3.0 a disposición 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. [76] [77]

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 admitir la comunicación remota. [77] Microsoft realizó varias versiones Community Technology Preview de WMF3. Una versión Community Technology Preview 2 (CTP 2) temprana de Windows Management Framework 3.0 se lanzó el 2 de diciembre de 2011. [78] Windows Management Framework 3.0 se lanzó para disponibilidad general en diciembre de 2012 [79] y se incluye con Windows 8 y Windows Server 2012 de manera predeterminada. [80]

Las nuevas características de PowerShell 3.0 incluyen: [77] [81] : 33–34 

Windows PowerShell 4.0

PowerShell 4.0 está integrado con Windows 8.1 y con Windows Server 2012 R2 . Microsoft también ha puesto PowerShell 4.0 a disposición para Windows 7 SP1 , Windows Server 2008 R2 SP1 y Windows Server 2012. [ 82]

Las nuevas características de PowerShell 4.0 incluyen:

Windows PowerShell 5.0

Icono de PowerShell 5.0

Windows Management Framework (WMF) 5.0 RTM, que incluye PowerShell 5.0, se volvió a publicar en la web el 24 de febrero de 2016, después de un lanzamiento inicial con un error grave. [86]

Características principales incluidas:

Windows PowerShell 5.1

Se lanzó junto con la actualización de aniversario de Windows 10 [89] el 2 de agosto de 2016 y en Windows Server 2016. [ 90] PackageManagement ahora admite servidores proxy, PSReadLine ahora tiene soporte para ViMode y se agregaron dos nuevos cmdlets: Get-TimeZone y Set-TimeZone. El módulo LocalAccounts permite agregar/eliminar cuentas de usuario locales. [91] Se lanzó una vista previa de PowerShell 5.1 para Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 y Windows Server 2012 R2 el 16 de julio de 2016, [92] y se lanzó el 19 de enero de 2017. [93]

PowerShell 5.1 es la primera versión que viene en dos ediciones, "Desktop" y "Core". La edición "Desktop" es la continuación del tradicional Windows PowerShell que se ejecuta en la pila .NET Framework. La edición "Core" se ejecuta en .NET Core y se incluye con Windows Server 2016 Nano Server. A cambio de un espacio más reducido, esta última carece de algunas características como los cmdlets para administrar el portapapeles o unir una computadora a un dominio, los cmdlets de WMI versión 1, los cmdlets de registro de eventos y los perfiles. [24] Esta fue la versión final de PowerShell hecha exclusivamente para Windows. Windows PowerShell 5.1 sigue preinstalado en Windows 10, Windows 11 y Windows Server 2022, mientras que .NET PowerShell debe instalarse por separado y puede ejecutarse en paralelo con Windows PowerShell. [94] [95]

PowerShell Core 6

PowerShell Core 6.0 se anunció por primera vez el 18 de agosto de 2016, cuando Microsoft presentó PowerShell Core y su decisión de hacer que el producto fuera multiplataforma , independiente de Windows, gratuito y de código abierto. [4] Logró disponibilidad general el 10 de enero de 2018 para Windows, macOS y Linux . [96] Tiene su propio ciclo de vida de soporte y se adhiere a la política de ciclo de vida de Microsoft que se introdujo con Windows 10: solo se admite la última versión de PowerShell Core. Microsoft espera lanzar una versión menor de PowerShell Core 6.0 cada seis meses. [97]

El cambio más significativo en esta versión de PowerShell es la expansión a otras plataformas. Para los administradores de Windows, esta versión de PowerShell no incluyó ninguna característica nueva importante. En una entrevista con la comunidad el 11 de enero de 2018, se le pidió al equipo de PowerShell que enumerara las 10 cosas más emocionantes que le sucederían a un profesional de TI de Windows que migrara de Windows PowerShell 5.1 a PowerShell Core 6.0; en respuesta, Angel Calvo de Microsoft solo pudo nombrar dos: multiplataforma y código abierto. [98] PowerShell 6 cambió a UTF-8 como codificación predeterminada, con algunas excepciones. [99] (PowerShell 7.4 cambia más a UTF-8) [100]

6.1

Según Microsoft, una de las nuevas características de PowerShell 6.1 es "Compatibilidad con más de 1900 cmdlets existentes en Windows 10 y Windows Server 2019 ". [101] Aún así, no se pueden encontrar detalles de estos cmdlets en la versión completa del registro de cambios. [102] Microsoft profesa más tarde que este número era insuficiente ya que PowerShell Core no logró reemplazar a Windows PowerShell 5.1 y ganar tracción en Windows. [103] Sin embargo, fue popular en Linux. [103]

6.2

PowerShell Core 6.2 se centra principalmente en mejoras de rendimiento, corrección de errores y mejoras menores de cmdlets y lenguaje que mejoraron la productividad de los desarrolladores. [104]

PowerShell 7

PowerShell 7 es el reemplazo de los productos PowerShell Core 6.x, así como de Windows PowerShell 5.1, que es la última versión compatible de Windows PowerShell. [105] [103] El objetivo del desarrollo fue hacer de PowerShell 7 un reemplazo viable para Windows PowerShell 5.1, es decir, tener una paridad cercana con Windows PowerShell en términos de compatibilidad con los módulos que se envían con Windows. [106]

Las nuevas características de PowerShell 7 incluyen: [107]

PowerShell 7.2

PowerShell 7.2 es la siguiente versión de soporte a largo plazo de PowerShell, después de la versión 7.0. Utiliza .NET 6.0 y cuenta con paquetes de instalación universales para Linux. En Windows, las actualizaciones a PowerShell 7.2 y posteriores se realizan a través del servicio Microsoft Update ; esta característica no se encuentra disponible en PowerShell 6.0 a 7.1. [108]

PowerShell 7.3

Esta versión incluye algunas actualizaciones y correcciones generales de cmdlets, pruebas para paquetes dependientes del marco en el proceso de lanzamiento, así como mejoras de compilación y empaquetado. [109]

PowerShell 7.4

PowerShell 7.4 se basa en .NET 8. Y con esa versión, los webcmdlets predeterminados usan la codificación UTF-8 (cambiando de ASCII -superset Windows-1252 también conocido como ISO-8859-1 , que no admite Unicode ). [110] [100] Anteriormente, UTF-8 era el valor predeterminado para otras cosas, pero no para todas.

Comparación de cmdlets con comandos similares

La siguiente tabla contiene una selección de los cmdlets que se incluyen con PowerShell y señala comandos similares en otros intérpretes de línea de comandos conocidos. Muchos de estos comandos similares vienen definidos de fábrica como alias dentro de PowerShell, lo que facilita el trabajo a las personas familiarizadas con otros shells comunes.

Notas

  1. ^ ab lsy manlos alias están ausentes en la versión Linux de PowerShell Core.
  2. ^ Mientras el comando ping externo permanece disponible para PowerShell, la salida de Test-Connection es un objeto estructurado que se puede inspeccionar mediante programación. [111]
  3. ^ Clear-Host se implementa como una función de PowerShell predefinida.
  4. ^ ab Disponible en Windows NT 4 , Kit de recursos de Windows 98 y Herramientas de soporte de Windows 2000
  5. ^ ab Introducido en Windows XP Professional Edition
  6. ^ También se utiliza en UNIX para enviar cualquier señal a un proceso , la señal "Terminar" es simplemente la predeterminada
  7. ^ curl y wgetlos alias están ausentes en PowerShell Core, para no interferir con la invocación de comandos nativos con nombres similares.

Extensiones de nombre de archivo

  1. ^ La biblioteca de vínculos dinámicos (DLL) no es un formato exclusivo de PowerShell. Es un formato genérico para almacenar el código compilado del ensamblado .NET.
  2. ^ XML no es un formato exclusivo de PowerShell. Es un formato popular de intercambio de información.

Soporte de aplicaciones

Implementación alternativa

Un proyecto llamado Pash , un juego de palabras con el conocido shell de Unix " bash ", ha sido una reimplementación de código abierto y multiplataforma de PowerShell a través del marco Mono . [139] Pash fue creado por Igor Moochnick, escrito en C# y fue lanzado bajo la Licencia Pública General de GNU . El desarrollo de Pash se estancó en 2008, se reinició en GitHub en 2012, [140] y finalmente cesó en 2016 cuando PowerShell se convirtió oficialmente en código abierto y multiplataforma. [141]

Véase también

Referencias

  1. ^ "Lanzamiento de la versión 7.4.5 de PowerShell". PowerShell/Repositorio de PowerShell . Microsoft . Consultado el 27 de agosto de 2024 – a través de GitHub.com .
  2. ^ "¡PowerShell para todos los sistemas!". 12 de junio de 2017 – vía GitHub.com .
  3. ^ Snover, Jeffrey (25 de mayo de 2008). "PowerShell y WPF: WTF". Blog de Windows PowerShell . Microsoft.
  4. ^ abcd Bright, Peter (18 de agosto de 2016). «PowerShell es la última versión de código abierto de Microsoft, que llegará a Linux y OS X». Ars Technica . Condé Nast . Archivado desde el original el 9 de abril de 2020 . Consultado el 12 de mayo de 2020 .
  5. ^ "Anuncio de Windows 10 Insider Preview Build 14971 para PC".
  6. ^ "PowerShell está reemplazando al Símbolo del sistema".
  7. ^ abcde "powershell" . Consultado el 13 de marzo de 2023 .
  8. ^ Truher, Jim (diciembre de 2007). "Extender Windows PowerShell con comandos personalizados". Revista MSDN . Microsoft. Archivado desde el original el 6 de octubre de 2008.
  9. ^ Lowe, Scott (4 de enero de 2007). «Exchange 2007: acostúmbrese a la línea de comandos». TechRepublic . CBS Interactive . Archivado desde el original el 16 de noviembre de 2018 . Consultado el 12 de mayo de 2020 .
  10. ^ Snover, Jeffrey (13 de noviembre de 2007). "SQL Server Support for PowerShell!". Blog de Windows PowerShell (publicación de blog). Microsoft. Archivado desde el original el 15 de noviembre de 2007. Consultado el 13 de noviembre de 2007 .
  11. ^ Dragan, Richard V. (23 de abril de 2003). "Windows Server 2003 ofrece mejoras en todos los aspectos". PCMag.com . Ziff Davis . Una característica destacada aquí es que prácticamente todas las utilidades de administración ahora funcionan desde la línea de comandos (y la mayoría están disponibles a través de telnet).
  12. ^ Jones, Don (2020). La cáscara de una idea: la historia no contada de PowerShell . Don Gannon-Jones. pág. 25. ISBN 978-1-9536450-3-6.
  13. ^ Jeffrey P. Snover (8 de agosto de 2002). "Manifiesto de la mónada" (PDF) . Blog de Windows PowerShell . Microsoft . Consultado el 2 de abril de 2021 .
  14. ^ Biggar y Harbaugh (14 de septiembre de 2017). "El hombre detrás de Windows PowerShell". To Be Continuous (podcast). Heavybit . Consultado el 14 de septiembre de 2017 .
  15. ^ "Ya llegó Windows PowerShell (Monad)". Blog de Windows PowerShell . Microsoft . 25 de abril de 2006.
  16. ^ Snover, Jeffrey (15 de noviembre de 2006). "Windows PowerShell y Windows Vista". Blog de Windows PowerShell (publicación de blog). Microsoft .
  17. ^ "Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 y BITS 4.0)". Soporte . Microsoft . 30 de septiembre de 2013. Archivado desde el original el 13 de octubre de 2013.
  18. ^ Posey, Brien (6 de octubre de 2009). «10 razones por las que debería aprender a usar PowerShell». TechRepublic . Consultado el 2 de abril de 2021 .
  19. ^ "¿Qué es Pester y por qué debería importarme?". 14 de diciembre de 2015.
  20. ^ Snover, Jeffrey (18 de agosto de 2016). "PowerShell es de código abierto y está disponible en Linux". Blog de Microsoft Azure . Microsoft .
  21. ^ "PowerShell/PowerShell". GitHub . Consultado el 18 de agosto de 2016 .
  22. ^ Hansen, Kenneth; Calvo, Angel (18 de agosto de 2016). "¡PowerShell en Linux y código abierto!". Blog de Windows PowerShell . Microsoft .
  23. ^ Foley, Mary Jo (18 de agosto de 2016). "Microsoft abre el código fuente de PowerShell y lo lleva a Linux y Mac OS X". ZDNet . CBS Interactive .
  24. ^ ab "PowerShell en Nano Server". TechNet . Microsoft . 20 de octubre de 2016.
  25. ^ Jones, Don (2020). La cáscara de una idea: la historia no contada de PowerShell . Don Gannon-Jones. pág. 45. ISBN 978-1-9536450-3-6.
  26. ^ Payette, Bruce (2008). Windows PowerShell en acción. Serie Manning Pubs Co. Manning. pág. 27. ISBN 9781932394900. Recuperado el 22 de julio de 2016. El lenguaje principal de PowerShell se basa en la gramática POSIX 1003.2 para el shell Korn .
  27. ^ Jones, Don (2020). La cáscara de una idea: la historia no contada de PowerShell . Don Gannon-Jones. pág. 109. ISBN 978-1-9536450-3-6.
  28. ^ "about_Command_Precedence". TechNet . Microsoft . 8 de mayo de 2014.
  29. ^ Wheeler, Sean (7 de septiembre de 2021). "Acerca del análisis: PowerShell". Microsoft Docs . Consultado el 5 de diciembre de 2021 .
  30. ^ "Sistema de tipos extendidos de Windows PowerShell" . Consultado el 28 de noviembre de 2007 .
  31. ^ abc "Cmdlets de Windows PowerShell" . Consultado el 28 de noviembre de 2007 .
  32. ^ "Creación del primer cmdlet" . Consultado el 28 de noviembre de 2007 .
  33. ^ "Get-Verb". TechNet . Microsoft . 8 de mayo de 2014.
  34. ^ "Descripción general de cmdlets". MSDN . Microsoft . 8 de mayo de 2014.
  35. ^ "Adición de parámetros que procesan la entrada de la línea de comandos" . Consultado el 28 de noviembre de 2007 .
  36. ^ "Adición de parámetros que procesan la entrada de la tubería" . Consultado el 28 de noviembre de 2007 .
  37. ^ "Proveedores de Windows PowerShell" . Consultado el 14 de octubre de 2010 .
  38. ^ Yoshizawa, Tomoaki; Ramos, Durval (29 de septiembre de 2012). "Cmdlets de PowerShell 1.0". Artículos de TechNet . Microsoft.
  39. ^ Yoshizawa, Tomoaki (10 de julio de 2012). "Cmdlets de PowerShell 2.0". Artículos de TechNet . Microsoft.
  40. ^ Wilson, Ed (2013). "1: Descripción general de Windows PowerShell 3.0". Windows PowerShell 3.0 paso a paso . Sebastopol, California: Microsoft Press . ISBN 978-0-7356-7000-6OCLC 829236530. Windows  PowerShell 3.0 viene con alrededor de 1000 cmdlets en Windows 8
  41. ^ Wilson, Ed (2015). "1: Descripción general de Windows PowerShell 5.0". Windows PowerShell paso a paso (tercera edición). Redmond, Washington: Microsoft Press . ISBN 978-1-5093-0043-3OCLC 927112976. Windows  PowerShell 5.0 viene con alrededor de 1300 cmdlets en Windows 10
  42. ^ "Manual del propietario de Windows PowerShell: canalización y pipeline en Windows PowerShell". TechNet . Microsoft . Consultado el 27 de septiembre de 2011 .
  43. ^ Jones, Don (2008). "Windows PowerShell – Rethinking the Pipeline". Microsoft TechNet . Microsoft . Consultado el 28 de noviembre de 2007 .
  44. ^ "Conceptos de objetos de Windows PowerShell". Archivado desde el original el 19 de agosto de 2007. Consultado el 28 de noviembre de 2007 .
  45. ^ "Cómo funciona REALMENTE el formato y la salida de PowerShell" . Consultado el 28 de noviembre de 2007 .
  46. ^ "Más información: ¿Cómo funciona realmente el formateo de PowerShell?" . Consultado el 28 de noviembre de 2007 .
  47. ^ "about_Pipelines". TechNet . Microsoft . 8 de mayo de 2014.
  48. ^ "about_Objects". TechNet . Microsoft . 8 de mayo de 2014.
  49. ^ ab "about_Format.ps1xml". TechNet . Microsoft . 8 de mayo de 2014.
  50. ^ "Funciones anónimas y bloques de código en PowerShell" . Consultado el 21 de enero de 2012 .
  51. ^ "Introducción a las variables de Windows PowerShell" . Consultado el 28 de noviembre de 2007 .
  52. ^ "Conversión de bytes". Sugerencia de la semana de Windows PowerShell . Consultado el 15 de noviembre de 2013 .
  53. ^ Ravikanth (20 de mayo de 2013). "Conversión a unidades de tamaño (KB, MB, GB, TB y PB) sin utilizar multiplicadores de PowerShell". PowerShell Magazine .
  54. ^ abc "about_Functions". Microsoft TechNet . Microsoft . 17 de octubre de 2013 . Consultado el 15 de noviembre de 2013 .
  55. ^ ab "Pruebas ligeras con Windows PowerShell" . Consultado el 28 de noviembre de 2007 .
  56. ^ Angelopoulos, Alex; Karen, Bemowski (4 de diciembre de 2007). "PowerShell se volvió inteligente con las comillas inteligentes". Windows IT Pro . Penton Media . Consultado el 15 de noviembre de 2013 .
  57. ^ "Acerca de los caracteres especiales". Powershell / Scripting. Microsoft . 8 de junio de 2017 . Consultado el 20 de junio de 2019 .
  58. ^ "Trampa [Excepción] { "En PowerShell" }" . Consultado el 28 de noviembre de 2007 .
  59. ^ "Ejecución de scripts de Windows PowerShell". Microsoft . Consultado el 28 de noviembre de 2007 .
  60. ^ "about_Signing". Microsoft TechNet . Microsoft . 17 de octubre de 2013 . Consultado el 15 de noviembre de 2013 .
  61. ^ Lee Holmes (septiembre de 2006). Referencia rápida de Windows PowerShell . O'Reilly Media.
  62. ^ eslesar (23 de mayo de 2023). "Descripción general de la configuración del estado deseado de Windows PowerShell". msdn.microsoft.com .
  63. ^ Chung, Leonard; Snover, Jeffrey; Kumaravel, Arul (14 de noviembre de 2006). "¡Es un cierre! ¡Ya se lanzó Windows PowerShell 1.0!". Blog de Windows PowerShell . Microsoft .
  64. ^ "PowerShell se instalará de forma predeterminada en Windows Server 08 R2 (WS08R2) y Windows 7 (W7)!". Blog de Windows PowerShell . Microsoft . 28 de octubre de 2008. Consultado el 27 de septiembre de 2011 .
  65. ^ "¡Ya está aquí Windows Management Framework!". 27 de octubre de 2009. Consultado el 30 de octubre de 2009 .
  66. ^ "Base de conocimientos de soporte técnico de Microsoft: Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 y BITS 4.0)". Support.microsoft.com. 23 de septiembre de 2011. Consultado el 27 de septiembre de 2011 .
  67. ^ "574 razones por las que estamos tan orgullosos y optimistas acerca de W7 y WS08R2". Blog de Windows PowerShell . Microsoft . 29 de octubre de 2008 . Consultado el 27 de septiembre de 2011 .
  68. ^ Snover, Jeffrey (2008). «PowerShell: creación de servicios web administrables». Archivado desde el original el 13 de octubre de 2008. Consultado el 19 de julio de 2015 .
  69. ^ "Novedades de CTP de PowerShell 2.0" . Consultado el 28 de noviembre de 2007 .
  70. ^ "Windows PowerShell V2 Community Technology Preview 2 (CTP2) – releaseNotes". Microsoft . Archivado desde el original el 6 de mayo de 2008 . Consultado el 5 de mayo de 2008 .
  71. ^ "Diferencias entre PowerShell 1.0 y PowerShell 2.0". Archivado desde el original el 17 de septiembre de 2010. Consultado el 26 de junio de 2010 .
  72. ^ Jones, Don (mayo de 2010). "Windows PowerShell: Cómo escribir cmdlets en secuencias de comandos". TechNet Magazine . Microsoft.
  73. ^ "GoGrid Snap-in – Managing Cloud Services with PowerShell" (Complemento GoGrid: administración de servicios en la nube con PowerShell). Blog de Windows PowerShell . Microsoft . 14 de octubre de 2008. Consultado el 27 de septiembre de 2011 .
  74. ^ "Emit-XML". Blog de Windows PowerShell . Microsoft . 17 de octubre de 2008. Consultado el 27 de septiembre de 2011 .
  75. ^ "Bloquear comentarios en V2". Blog de Windows PowerShell . Microsoft . 14 de junio de 2008. Consultado el 27 de septiembre de 2011 .
  76. ^ Lee, Thomas (13 de agosto de 2012). "PowerShell Version 3 is RTM!". Bajo las escaleras . Consultado el 13 de agosto de 2012 .
  77. ^ abc «Windows Management Framework 3.0». Centro de descargas . Microsoft . 4 de septiembre de 2012 . Consultado el 8 de noviembre de 2012 .
  78. ^ "Windows Management Framework 3.0 Community Technology Preview (CTP) #2 disponible para descarga". Blog de Windows PowerShell . Microsoft . 2 de diciembre de 2011.
  79. ^ "Windows Management Framework 3.0". Centro de descargas . Microsoft . 3 de diciembre de 2012.
  80. ^ Jofre, JuanPablo (14 de diciembre de 2016). «Requisitos del sistema de Windows PowerShell». Microsoft Developer Network . Microsoft . Consultado el 20 de abril de 2017 .
  81. ^ Honeycutt, Jerry (2012). Woolley, Valerie (ed.). Presentación de Windows 8: una descripción general para profesionales de TI. Redmond, WA: Microsoft Press . ISBN 978-0-7356-7050-1.
  82. ^ "Windows Management Framework 4.0 ya está disponible". Microsoft . 24 de octubre de 2013 . Consultado el 4 de noviembre de 2013 .
  83. ^ Levy, Shay (25 de junio de 2013). "Nuevas características de Windows PowerShell 4.0". PowerShell Magazine . Consultado el 26 de junio de 2013 .
  84. ^ "Configuración de estado deseado en Windows Server 2012 R2 PowerShell". Canal 9 . Microsoft . 3 de junio de 2013. Archivado desde el original el 26 de diciembre de 2013 . Consultado el 26 de junio de 2013 .
  85. ^ Hall, Adrian (7 de junio de 2013). "Reflexiones de Microsoft TechEd North America". Blogs: consejos y trucos . Splunk . Consultado el 26 de junio de 2013 .
  86. ^ "Se han vuelto a publicar los paquetes RTM de Windows Management Framework (WMF) 5.0". Blog de Windows PowerShell . Microsoft . 24 de febrero de 2016.
  87. ^ "Preguntas y respuestas". GitHub . Consultado el 21 de abril de 2015 .
  88. ^ Snover, Jeffrey (3 de abril de 2014). "Windows Management Framework V5 Preview". blogs.technet.com . Microsoft . Archivado desde el original el 30 de junio de 2014 . Consultado el 21 de abril de 2015 .
  89. ^ dice Jaap Brasser (2 de agosto de 2016). "#PSTip Nuevos comandos de PowerShell en la actualización de aniversario de Windows 10".
  90. ^ "Novedades de Windows Server 2016 Standard Edition, parte 9: administración y automatización". 4 de septiembre de 2016.
  91. ^ "Módulo Microsoft.PowerShell.LocalAccounts". technet.microsoft.com . 16 de junio de 2016.
  92. ^ "Anuncio de la versión preliminar de Windows Management Framework (WMF) 5.1". 16 de julio de 2016.
  93. ^ "WMF 5.1". Centro de descargas de Microsoft .
  94. ^ "¿Qué es Windows PowerShell? - PowerShell". Microsoft Learn . 7 de marzo de 2024 . Consultado el 19 de agosto de 2024 .
  95. ^ "Migración de Windows PowerShell 5.1 a PowerShell 7 - PowerShell". Microsoft Learn . 2 de abril de 2024 . Consultado el 19 de agosto de 2024 .
  96. ^ Aiello, Joey (11 de enero de 2018). "PowerShell Core 6.0: ¡Disponibilidad general (GA) y soporte!". Blog del equipo de PowerShell . Microsoft. Archivado desde el original el 11 de junio de 2018. Consultado el 11 de junio de 2018 .
  97. ^ Aiello, Joey; Wheeler, Sean (10 de enero de 2018). "Ciclo de vida de soporte de PowerShell Core". Microsoft Docs . Microsoft .
  98. ^ Calvo, Angel (11 de enero de 2018). "Las 10 razones más interesantes para migrar". PowerShell AMA . Microsoft .
  99. ^ sdwheeler (3 de agosto de 2023). "Novedades de PowerShell Core 6.0". learn.microsoft.com . Consultado el 11 de diciembre de 2023. La codificación predeterminada es UTF-8 sin BOM, excepto para New-ModuleManifest .
  100. ^ ab "Comprensión de la codificación de archivos en VS Code y PowerShell - PowerShell". learn.microsoft.com . 29 de noviembre de 2023 . Consultado el 11 de diciembre de 2023 .
  101. ^ Aiello, Joey (13 de septiembre de 2018). "Anuncio de PowerShell Core 6.1". devblogs.microsoft.com . Microsoft . Consultado el 1 de junio de 2019 .
  102. ^ "PowerShell/PowerShell". GitHub . Consultado el 22 de junio de 2020 .
  103. ^ abc Lee, Steve (5 de abril de 2019). «La próxima versión de PowerShell: PowerShell 7». Microsoft . Consultado el 1 de junio de 2019 .
  104. ^ Lee, Steve (28 de marzo de 2019). "Disponibilidad general de PowerShell Core 6.2". devblogs.microsoft.com . Microsoft . Consultado el 1 de junio de 2019 .
  105. ^ Mackie, Kurt (30 de mayo de 2019). «Microsoft lanza la versión preliminar de PowerShell 7». 1105 Media Inc. Consultado el 1 de junio de 2019 .
  106. ^ Lee, Steve (30 de mayo de 2019). "Hoja de ruta de PowerShell 7". devblogs.microsoft.com . Microsoft . Consultado el 12 de agosto de 2020 .
  107. ^ "PowerShell 7 Preview 5 | PowerShell". 23 de octubre de 2019. Archivado desde el original el 15 de febrero de 2020. Consultado el 5 de marzo de 2020 .
  108. ^ "PowerShell 7.2 es la nueva versión del shell de próxima generación de Microsoft". itsfoss.net . 12 de noviembre de 2021.
  109. ^ "Versión v7.3.0 de PowerShell · PowerShell/PowerShell". GitHub . Archivado desde el original el 9 de noviembre de 2022 . Consultado el 7 de marzo de 2022 .
  110. ^ "Los webcmdlets establecen la codificación de conjunto de caracteres predeterminada en UTF8 por CarloToso · Solicitud de incorporación de cambios n.º 18219 · PowerShell/PowerShell". GitHub . Consultado el 11 de diciembre de 2023 .
  111. ^ "Test-Connection". Documentación de PowerShell . Microsoft . 9 de agosto de 2015.
  112. ^ "Tar y Curl llegan a Windows! - Comunidad tecnológica de Microsoft - 382409". 22 de marzo de 2019. Archivado desde el original el 11 de septiembre de 2020. Consultado el 17 de mayo de 2020 .
  113. ^ Wheeler, Sean (2 de junio de 2020). "Acerca de los scripts". Microsoft Docs . Microsoft.
  114. ^ Wheeler, Sean; Smatlak, David; Wilson, Chase (16 de octubre de 2019). "Cómo escribir un manifiesto de módulo de PowerShell". Docs . Microsoft.
  115. ^ Wheeler, Sean; Smatlak, David (22 de noviembre de 2019). "Cómo escribir un módulo de script de PowerShell". Microsoft Docs . Microsoft.
  116. ^ Wheeler, Sean (13 de noviembre de 2016). "Cómo escribir un módulo binario de PowerShell". Microsoft Docs . Microsoft.
  117. ^ Wheeler, Sean; Jofre, Juan Pablo; Vorobev, Sergei; Nikolaev, Kirill; Coulter, David (2 de junio de 2020). "Acerca de Types.ps1xml". Microsoft Docs . Microsoft.
  118. ^ Wheeler, Sean. "Export-Clixml". Documentos de Microsoft . Microsoft.
  119. ^ Wheeler, Sean; Jofre, Juan Pablo; Vorobev, Sergei; Nikolaev, Kirill; Coulter, David. "Exportar-Consola". Microsoft Docs . Microsoft.
  120. ^ Wheeler, Sean (2 de junio de 2020). "Acerca de los archivos de configuración de sesión". Microsoft Docs . Microsoft.
  121. ^ Wheeler, Sean (2 de junio de 2020). "New-PSRoleCapabilityFile". Documentos de Microsoft . Microsoft.
  122. ^ "Microsoft Transporter Suite para Lotus Domino". Microsoft . Consultado el 7 de marzo de 2008 .
  123. ^ "PowerTools for Open XML" (Herramientas de potencia para Open XML) . Consultado el 20 de junio de 2008 .
  124. ^ "MO74: WebSphere MQ – Biblioteca de Windows PowerShell" . Consultado el 5 de diciembre de 2007 .
  125. ^ "Opciones de línea de comandos de complementos básicos de IoT" . Consultado el 13 de junio de 2020 .
  126. ^ "Comandos de PowerShell para Active Directory de Quest Software" . Consultado el 2 de julio de 2008 .
  127. ^ "Comunicación remota de PowerShell mediante directiva de grupo" . Consultado el 7 de diciembre de 2007 .
  128. ^ "VMware vSphere PowerCLI". Archivado desde el original el 30 de diciembre de 2014 . Consultado el 9 de septiembre de 2014 .
  129. ^ "IIS7 PowerShell Provider Tech Preview 2". Blog de Windows PowerShell . Archivado desde el original el 4 de febrero de 2010. Consultado el 3 de julio de 2008 .
  130. ^ "Felicitaciones al equipo de diagnóstico de Win7" . Consultado el 15 de junio de 2009 .
  131. ^ Michael, Niehaus (10 de julio de 2009). «MDT 2010 New Feature #16: PowerShell support» (Nueva función n.° 16 de MDT 2010: compatibilidad con PowerShell) . Consultado el 27 de octubre de 2014 .
  132. ^ "Felicitaciones a NetApp por el kit de herramientas Data ONTAP PowerShell" . Consultado el 15 de junio de 2010 .
  133. ^ "Anuncio de PowerShell Toolkit 4.2". 23 de junio de 2016. Consultado el 7 de septiembre de 2016 .
  134. ^ "Programación de trabajos heterogéneos con PowerShell" . Consultado el 15 de septiembre de 2010 .
  135. ^ "Extensiones de PowerShell de UIAutomation". Archivado desde el original el 17 de agosto de 2016 . Consultado el 16 de febrero de 2012 .
  136. ^ "EqualLogic HIT-ME con PowerShell" . Consultado el 9 de marzo de 2012 .
  137. ^ de:LOGINinventario
  138. ^ "Extensiones de Selenium PowerShell". Archivado desde el original el 19 de enero de 2013. Consultado el 20 de agosto de 2012 .
  139. ^ "Pash". FuenteForge . Dice Holdings, Inc. Consultado el 27 de septiembre de 2011 .
  140. ^ "Proyecto Pash". GitHub . Consultado el 10 de abril de 2013 .
  141. ^ "Pash ahora está obsoleto · Issue #429 · Pash-Project/Pash". GitHub . Consultado el 26 de noviembre de 2019 .

Lectura adicional

Enlaces externos