about_Windows_PowerShell_4.0

Se aplica a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0

TEMA

about_Windows_PowerShell_4.0

DESCRIPCIÓN BREVE

Describe las nuevas características que se incluyen en Windows PowerShell® 4.0.

DESCRIPCIÓN LARGA

Windows PowerShell 4.0 incluye varias características importantes que amplían su uso, mejoran la facilidad de uso y permiten controlar y administrar entornos basados en Windows de forma más sencilla y completa.

Windows PowerShell 4.0 es compatible con versiones anteriores. Así, los cmdlets, proveedores, módulos, complementos, scripts, funciones y perfiles diseñados para Windows PowerShell 2.0 y Windows PowerShell 3.0 funcionan en Windows PowerShell 4.0 sin tener que cambiar nada.

También puede obtener información sobre los cambios de Windows PowerShell 4.0 en el tema de Microsoft TechNet titulado "Novedades de Windows PowerShell 4.0". (https://go.microsoft.com/fwlink/?LinkId=307123)

NUEVAS CARACTERÍSTICAS

Windows PowerShell 4.0 incluye las siguientes características nuevas.

Windows PowerShell

-- Configuración de estado deseado (DSC) de Windows PowerShell es un nuevo sistema de administración de Windows PowerShell que permite implementar y administrar los datos de configuración de servicios de software y el entorno en el que se ejecutan estos servicios. Para más información sobre DSC, consulte about_Desired_State_Configuration o "Introducción a Configuración de estado deseado de Windows PowerShell" en el sitio web de Microsoft TechNet.

-- Save-Help ahora permite guardar la ayuda relativa a los módulos instalados en equipos remotos. Puede usar Save-Help para descargar la ayuda del módulo desde un cliente conectado a Internet (en el que no tienen por qué estar instalados todos los módulos de los que desea obtener ayuda). Luego, puede copiar la ayuda guardada en una carpeta compartida remota o en un equipo remoto sin acceso a Internet.

-- El depurador de Windows PowerShell se mejoró para permitir la depuración de flujos de trabajo de Windows PowerShell, así como los scripts que se ejecutan en equipos remotos. Ahora se pueden depurar los flujos de trabajo de Windows PowerShell en el nivel de script desde la línea de comandos de Windows PowerShell o el ISE de Windows PowerShell. Los scripts de Windows PowerShell, incluidos los flujos de trabajo de script, ya se pueden depurar en sesiones remotas. Las sesiones de depuración remotas se conservan en sesiones remotas de Windows PowerShell que se desconectan y, luego, se vuelven a conectar.

-- Gracias al parámetro RunNow de Register-ScheduledJob y Set-ScheduledJob, ya no es necesario definir una fecha y hora de inicio inmediatas en los trabajos mediante el parámetro Trigger.

-- Actualmente, Invoke-RestMethod e Invoke-WebRequest permiten establecer todos los encabezados con el parámetro Headers. Aunque este parámetro siempre ha existido, era uno de los diversos parámetros para cmdlets web que provocaban errores o excepciones.

-- Get-Module tiene un parámetro nuevo, FullyQualifiedName, del tipo ModuleSpecification[]. Ahora, el parámetro FullyQualifiedName de Get-Module permite especificar un módulo mediante su nombre, versión y GUID.

-- La configuración predeterminada de directiva de ejecución en Windows Server 2012 R2 es RemoteSigned. En Windows 8.1 no hay ningún cambio en la configuración predeterminada.

-- A partir de Windows PowerShell 4.0, es posible invocar métodos mediante nombres de método dinámicos. Así, se puede usar una variable para almacenar un nombre de método y, luego, invocar dinámicamente el método llamando a esa variable.

-- Las tareas de flujo de trabajo asincrónicas ya no se eliminan cuando transcurre el tiempo de espera especificado en el parámetro común de flujo de trabajo PSElapsedTimeoutSec.

-- Se agregó un nuevo parámetro (RepeatIndefinitely) a los cmdlets New-JobTrigger y Set-JobTrigger. Con este parámetro, ya no es necesario especificar un valor TimeSpan.MaxValue para el parámetro RepetitionDuration para que un trabajo programado se ejecute de forma repetida durante un período indefinido.

-- Se agregó un parámetro Passthru a los cmdlets Enable-JobTrigger y Disable-JobTrigger. El parámetro Passthru muestra los objetos que el comando crea o modifica.

Ahora, los nombres de parámetro para especificar un grupo de trabajo en los cmdlets Add-Computer y Remove-Computer son coherentes, ya que ambos cmdlets usan el parámetro WorkgroupName.

-- Se agregó un nuevo parámetro común, PipelineVariable. PipelineVariable permite guardar los resultados de un comando canalizado (o de parte de un comando canalizado) como una variable que se puede pasar a través del resto de la canalización.

-- Ahora se puede usar una sintaxis de método para filtrar colecciones. Esto significa que una colección de objetos se puede filtrar usando una sintaxis simplificada, similar a la de Where() o Where-Object, con el formato de una llamada a método. Observe el siguiente ejemplo: (Get-Process).where({$_.Name -match 'powershell'})

-- El cmdlet Get-Process tiene un nuevo parámetro de modificador, IncludeUserName.

-- Se agregó un nuevo cmdlet, Get-FileHash, que obtiene información sobre los hash de archivo.

-- En Windows PowerShell 4.0, si un módulo usa la clave DefaultCommandPrefix en su manifiesto, o si el usuario importa un módulo con el parámetro Prefix, la propiedad ExportedCommands del módulo muestra los comandos en el módulo con el prefijo. Cuando se ejecutan comandos usando la sintaxis de módulo completo (nombreDelMódulo\nombreDelComando), los nombres de comando deben incluir el prefijo.

-- El valor de $PSVersionTable.PSVersion se actualizó a 4.0.

-- Se cambió el comportamiento del operador Where(). Collection.Where('property –match name') ya no admite una expresión de cadena con el formato "Property –CompareOperator Value". Sin embargo, el operador Where() acepta expresiones de cadena con el formato de un bloque de script; esto todavía se admite.

Flujo de trabajo de Windows PowerShell

Se agregó compatibilidad con un nuevo parámetro común PipelineVariable en el contexto de las canalizaciones iterativas, como las que se usan en System Center Orchestrator, es decir, canalizaciones que ejecutan comandos simplemente de izquierda a derecha, en contraposición a la ejecución intercalada mediante streaming.

-- El enlace de parámetros se mejoró notablemente y ahora funciona fuera de escenarios de finalización con tabulación, como sucede con los comandos que no existen en el espacio de ejecución actual.

-- Se agregó compatibilidad en el flujo de trabajo de Windows PowerShell para actividades de contenedor personalizadas. Si un parámetro de actividad es de tipo Activity o Activity[] (o es una colección genérica de actividades) y el usuario especificó un bloque de script como argumento, el flujo de trabajo de Windows PowerShell convierte el bloque de script a XAML, como sucede con la compilación de script a flujo de trabajo de Windows PowerShell habitual.

-- Después de un bloqueo, el flujo de trabajo de Windows PowerShell vuelve a conectarse automáticamente a los nodos administrados.

-- Ahora, puede limitar las instrucciones de actividad de Foreach -Parallel con la propiedad ThrottleLimit.

-- El parámetro común ErrorAction tiene un nuevo valor válido, Suspend, exclusivo para flujos de trabajo.

-- Ahora, un extremo de flujo de trabajo se cierra automáticamente si no hay sesiones activas, trabajos en curso ni trabajos pendientes. Esta característica conserva los recursos en el equipo que actúa como servidor de flujo de trabajo cuando se cumplen las condiciones de cierre automático.

Entorno de scripting integrado (ISE) de Windows PowerShell

-- Windows PowerShell ISE admite tanto la depuración de flujo de trabajo de Windows PowerShell como la depuración de scripts remota.

-- Se agregó compatibilidad con IntelliSense para los proveedores y las configuraciones de Configuración deseada de estado de Windows PowerShell.

Windows PowerShell Web Services (extensión IIS Management OData)

-- Cuando se produce un error en PSWS mientras se ejecuta un cmdlet, se devuelven al llamador mensajes de error más detallados. Además, los códigos de error respetan las directrices de código de error de la API de REST de Microsoft Azure (https://msdn.microsoft.com/library/windowsazure/dd179357.aspx).

-- Ahora, un extremo puede definir la versión de API, así como exigir el uso de una versión específica de la API. Si se produce una discrepancia de versión entre el cliente y el servidor, los errores se muestran tanto en el cliente como en el servidor.

-- La administración del esquema de distribución se simplificó, ya que ahora los valores de los campos que faltan en el esquema se generan automáticamente. Los valores se generan aunque el esquema de distribución no exista, lo que constituye un punto de partida de gran ayuda.

-- El tratamiento de tipos en PSWS se mejoró y ahora admite tipos que usan un constructor diferente del constructor predeterminado, con un comportamiento similar al de PSTypeConverter en Windows PowerShell. Esto permite usar tipos complejos con PSWS.

-- Ahora, PSWS permite expandir una instancia asociada mientras se ejecuta una consulta.

-- El coste de transferencia de contenido binario de gran volumen (como imágenes, audio o vídeos) es considerable, de modo que es mejor transferir datos binarios sin codificación. PSWS usa secuencias de recurso con nombre para realizar transferencias sin codificación. La secuencia de recurso con nombre es una propiedad de una entidad de tipo Edm.Stream. Cada secuencia de recurso con nombre tiene un URI diferente para las operaciones GET o UPDATE.

-- Ahora, las acciones de OData proporcionan un mecanismo para invocar métodos distintos a Crear, Leer, Actualizar y Eliminar en un recurso (CRUD). Se puede invocar una acción enviando una solicitud HTTP POST al URI definido para la acción. Los parámetros de la acción se definen en el cuerpo de la solicitud POST.

-- A fin de mantener la coherencia con las instrucciones de Azure, es necesario simplificar todas las direcciones URL. Un cambio incluido en Key As Segment permite representar claves sencillas como segmentos. Tenga en cuenta que, como antes, las referencias en las que se usan varios valores de clave requieren valores separados por comas en la notación entre paréntesis.

-- Antes de esta versión de PSWS, la única forma de llevar a cabo operaciones de creación, actualización y eliminación consistía en invocar Post, Put o Delete en un recurso de primer nivel. La novedad en esta versión de PSWS es que las operaciones de "recursos incluidos" permiten a los usuarios lograr los mismos resultados cuando el acceso al mismo recurso es menos directo, como si ese recurso fuera un recurso incluido.

Windows PowerShell Web Access agregó las siguientes características nuevas para Windows Server 2012 R2.

-- Puede desconectarse de sesiones existentes y volver a conectarse a ellas en la consola de Windows PowerShell Web Access basada en web. Un botón de Guardar de la consola basada en web permite desconectarse de una sesión sin eliminarla y volver a conectarse a ella en otro momento.

-- Los parámetros predeterminados se pueden mostrar en la página de inicio de sesión. Para mostrar los parámetros predeterminados, configure los valores de todas las opciones que aparecen en el área Configuración de conexión opcional de la página de inicio de sesión en un archivo denominado web.config. Puede usar el archivo web.config para configurar todas las opciones de conexión opcional, excepto un segundo conjunto de credenciales o un conjunto alternativo.

-- En Windows Server 2012 R2, puede administrar de forma remota las reglas de autorización para Windows PowerShell Web Access. Ahora, los cmdlets Add-PswaAuthorizationRule y Test-PswaAuthorizationRule incluyen un parámetro Credential con el que los administradores pueden administrar reglas de autorización desde un equipo remoto o en una sesión de Windows PowerShell Web Access.

-- Ahora puede tener varias sesiones de Windows PowerShell Web Access en una única sesión del explorador, con una nueva pestaña del explorador para cada sesión. Ya no hay que abrir una nueva sesión de explorador para conectarse a una nueva sesión en la consola de Windows PowerShell basada en web.

IMPORTANTES CORRECCIONES DE ERRORES

A continuación se indican algunas de las correcciones de errores que forman parte de Windows PowerShell 4.0.

-- Get-Counter ahora puede devolver contadores que contienen un carácter de apóstrofo en las ediciones en francés de Windows.

-- Ahora el método GetType se puede ver en objetos deserializados.

-- Ahora las instrucciones #Requires permiten a los usuarios solicitar que las sesiones se ejecuten con derechos de usuario elevados (Ejecutar como administrador).

-- El cmdlet Import-Csv ahora omite las líneas vacías.

-- Se solucionó un problema que hacía que Windows PowerShell ISE usara demasiada memoria al ejecutar un comando Invoke-WebRequest.

-- Get-Module ahora muestra las versiones de módulo en una columna Versión.

-- Remove-Item –Recurse ahora quita los elementos de las subcarpetas, como se esperaba.

-- Se agregó una propiedad UserName a los objetos de salida Get-Process.

-- El cmdlet Invoke-RestMethod ahora devuelve todos los resultados disponibles.

-- Add-Member ahora se aplica a las tablas hash, aunque todavía no se accediera a esas tablas hash.

-- Select-Object –Expand ya no genera un error o una excepción si el valor de la propiedad es null o está vacío.

-- Get-Process ahora se puede usar en una canalización con otros comandos que obtienen la propiedad ComputerName de los objetos.

-- ConvertTo-Json y ConvertFrom-Json ahora pueden aceptar términos entre comillas dobles y sus mensajes de error son localizables.

-- Get-Job ahora devuelve todos los trabajos programados completados, incluso en las sesiones nuevas.

-- Se solucionaron los problemas del montaje y el desmontaje de discos duros virtuales mediante el proveedor del sistema de archivos en Windows PowerShell. Windows PowerShell ya puede detectar nuevas unidades cuando se montan en la misma sesión.

-- Ya no es necesario cargar explícitamente módulos ScheduledJob o Workflow para trabajar con sus tipos de trabajo.

-- Se realizaron mejoras de rendimiento en el proceso de importación de flujos de trabajo que definen los flujos de trabajo anidados. Este proceso es ahora más rápido.

Para más información sobre Windows PowerShell 4.0, visite los siguientes sitios web:

-- Sitio web de Windows PowerShell https://go.microsoft.com/fwlink/?LinkID=106031

-- Blog del equipo de Windows PowerShell: https://go.microsoft.com/fwlink/?LinkId=143696

-- Windows PowerShell Web Access https://technet.microsoft.com/library/hh831611.aspx

VEA TAMBIÉN

about_Debuggers

about_Desired_State_Configuration

about_Scheduled_Jobs

about_Updatable_Help

Add-Computer

Disable-JobTrigger

Enable-JobTrigger

Get-Module

Get-Process

Invoke-RestMethod

New-JobTrigger

Register-ScheduledJob

Remove-Computer

Save-Help

Set-ExecutionPolicy

Set-JobTrigger

Set-ScheduledJob

Update-Help

PALABRAS CLAVE

Novedades de Windows PowerShell 4.0