You are on page 1of 11

Nuevas caractersticas de Windows PowerShell 5.

0
Nuevas caractersticas de Windows PowerShell

A partir de Windows PowerShell 5.0, se admite el desarrollo


mediante clases, a travs de una semntica y una sintaxis
formales que son similares a las de otros lenguajes de
programacin orientados a objetos. Class, Enum y otras palabras
clave se agregaron al nuevo lenguaje de Windows PowerShell para
admitir la nueva caracterstica. Para obtener informacin sobre el
uso de las clases, consulte about_Classes.

Windows PowerShell 5.0 presenta una nueva secuencia de


informacin estructurada que puede usar para transmitir datos
estructurados entre un script y los autores de la llamada (o el
entorno de hospedaje). Ahora puede usar Write-Host para emitir la
salida en la secuencia de informacin. Las secuencias de
informacin tambin funcionan con PowerShell.Streams, los
trabajos, los trabajos programados y los flujos de trabajo. Las
caractersticas siguientes admiten la secuencia de informacin.
o Un nuevo cmdlet Write-Information que permite especificar
cmo Windows PowerShell administra los datos de la
secuencia de informacin de un comando. Write-Host es un
contenedor para Write-Information. Write-Information
tambin es una actividad de flujo de trabajo admitida.
o Dos nuevos parmetros comunes, InformationVariable y
InformationAction, permiten determinar cmo se muestran
las secuencias de informacin desde un comando. Los
valores vlidos para InformationAction son Continuar sin
mensajes, Detener, Continuar, Consultar, Omitir o
Suspender, siendo Continuar sin mensajes el valor
predeterminado. InformationVariable especifica una cadena
como el nombre de una variable en la que desea guardar los
datos de Write-Host de un comando.
o Una nueva variable de preferencia, InformationPreference,
especifica su preferencia predeterminada para los datos de
la secuencia de informacin en una sesin de Windows
PowerShell. El valor predeterminado es Continuar sin
mensajes.
o Se agregaron dos nuevos parmetros de flujo de trabajo
comunes, PSInformation e InformationAction.
o Cuando usa el comando Format-Table, las columnas de la
tabla se formatean ahora automticamente evaluando los

primeros 300 ms de datos que pasan a travs de la


secuencia.

En colaboracin con Microsoft Research, se ha agregado un nuevo


cmdlet ConvertFrom-String. ConvertFrom-String permite extraer y
analizar objetos estructurados del contenido de las cadenas de
texto. Para ms informacin, consulte ConvertFrom-String.

Un nuevo cmdlet Convert-String formatea automticamente el


texto segn un ejemplo que se proporciona en un parmetro
-Example.

Un nuevo mdulo, Microsoft.PowerShell.Archive, incluye cmdlets


que permiten comprimir archivos y carpetas en archivos de
almacenamiento (tambin conocidos como ZIP), extraer los
archivos de archivos ZIP existentes y actualizar archivos ZIP con
versiones ms recientes de los archivos comprimidos que
contienen.

Un nuevo mdulo, PackageManagement, permite detectar e


instalar paquetes de software en Internet. El mdulo
PackageManagement (conocido anteriormente como OneGet) es
un administrador o multiplexor de administradores de paquetes
existentes (tambin denominados proveedores de paquetes)
destinado a unificar la administracin de paquetes de Windows
con una nica interfaz de Windows PowerShell.

Un nuevo mdulo, PowerShellGet, permite buscar, instalar,


publicar y actualizar los mdulos y recursos de DSC en la Galera
de PowerShell, o en un repositorio de mdulos interno que puede
configurar ejecutando el cmdlet Register-PSRepository.

Una nueva palabra clave del lenguaje, Hidden, se agreg para


especificar que un miembro (una propiedad o un mtodo) no se
muestra en los resultados de Get-Member de forma
predeterminada (a menos que se agregue el parmetro -Force).
Las propiedades o los mtodos marcados como ocultos no se
muestran en los resultados de IntelliSense, a menos que est en
un contexto donde el miembro deba ser visible; por ejemplo, la
variable automtica $This debera mostrar los miembros ocultos
en el mtodo de clase.

New-Item, Remove-Item y Get-ChildItem se han mejorado para


admitir la creacin y administracin de vnculos simblicos. El
parmetro ItemType de New-Item acepta un nuevo
valor, SymbolicLink. Ahora puede crear vnculos simblicos en
una nica lnea ejecutando el cmdlet New-Item.

Get-ChildItem tambin tiene un nuevo parmetro -Depth, que se


usa con el parmetro Recurse para limitar la recursin. Por
ejemplo, Get-ChildItem Recurse Depth 2 devuelve resultados de
la carpeta actual, de todas las carpetas secundarias dentro de la
carpeta actual y de todas las carpetas dentro de las carpetas
secundarias.

Copy-Item permite ahora copiar archivos o carpetas de una sesin


de Windows PowerShell en otra, lo que significa que puede copiar
archivos en sesiones conectadas a equipos remotos (incluidos los
equipos que ejecutan Nano Server y que, por tanto, no tienen
ninguna otra interfaz). Para copiar archivos, especifique los
identificadores de PSSession como el valor de los nuevos
parmetros -FromSession y -ToSession, y agregue Path y
Destination para especificar la ruta de acceso de origen y el
destino, respectivamente. Por ejemplo, Copy-Item -Path
c:\myFile.txt -ToSession $s -Destination d:\destinationFolder.

La transcripcin de Windows PowerShell se mejor para aplicarse a


todas las aplicaciones de hospedaje (como Windows PowerShell
ISE) en lugar de solo al host de consola (powershell.exe). Las
opciones de transcripcin (incluida la habilitacin de una
transcripcin de todo el sistema) pueden configurarse habilitando
la opcin de directiva de grupo Activar la transcripcin de
PowerShell, que se encuentra en Plantillas
administrativas/Componentes de Windows/Windows PowerShell.

Una nueva caracterstica de seguimiento detallado de scripts


permite habilitar el seguimiento detallado y el anlisis del uso de
scripting de Windows PowerShell en un sistema. Despus de
habilitar el seguimiento detallado de scripts, Windows PowerShell
registra todos los bloques de scripts en el registro de eventos de
Seguimiento de eventos para Windows (ETW), MicrosoftWindows-PowerShell/Operational.

A partir de Windows PowerShell 5.0, los nuevos cmdlets de sintaxis


de mensajes de cifrado admiten el cifrado y descifrado de
contenido mediante el formato estndar IETF para proteger los
mensajes de manera criptogrfica segn se documenta
en RFC5652. Los cmdlets Get-CmsMessage, Protect-CmsMessage y
Unprotect-CmsMessage se han agregado al
mdulo Microsoft.PowerShell.Security.

Los nuevos cmdlets del mdulo Microsoft.PowerShell.Utility, GetRunspace, Debug-Runspace, Get-RunspaceDebug, EnableRunspaceDebug y Disable-RunspaceDebug, permiten establecer
opciones de depuracin, as como iniciar y detener la depuracin,
en un espacio de ejecucin. Para depurar espacios de ejecucin

arbitrarios, es decir, espacios de ejecucin que no son el


predeterminado de una consola de Windows PowerShell o una
sesin de Windows PowerShell ISE, Windows PowerShell permite
establecer puntos de interrupcin en un script y hacer que los
puntos de interrupcin agregados detengan la ejecucin del script
hasta que se pueda conectar un depurador para depurar el script
del espacio de ejecucin. Se ha agregado compatibilidad para la
depuracin anidada para los espacios de ejecucin arbitrarios en
el depurador de scripts de Windows PowerShell para los espacios
de ejecucin.

Un nuevo cmdlet Format-Hex se ha agregado al


mdulo Microsoft.PowerShell.Utility. Format-Hex permite ver datos
de texto o binarios en formato hexadecimal.

Los cmdlets Get-Clipboard y Set-Clipboard se agregaron al


mdulo Microsoft.PowerShell.Utility; estos facilitan la transferencia
de contenido hacia y desde la sesin de Windows PowerShell. Los
cmdlets Clipboard admiten imgenes, archivos de audio, listas de
archivos y texto.

Se agreg un nuevo cmdlet, Clear-RecycleBin, al


mdulo Microsoft.PowerShell.Management; este cmdlet vaca la
Papelera de reciclaje de una unidad fija, que incluye las unidades
externas. De forma predeterminada, se le pedir que confirme un
comando Clear-RecycleBin, porque la propiedad ConfirmImpact del
cmdlet est establecida en ConfirmImpact.High.

Un nuevo cmdlet, New-TemporaryFile, permite crear un archivo


temporal como parte del scripting. De forma predeterminada, el
nuevo archivo temporal se crea en C:\Users\<user
name>\AppData\Local\Temp.

Los cmdlets Out-File, Add-Content y Set-Content tienen ahora un


nuevo parmetro NoNewline, que omite una nueva lnea despus
de la salida.

El cmdlet New-Guid aprovecha la clase Guid de .NET Framework


para generar un GUID, que resulta til al escribir scripts o recursos
de DSC.

Dado que la informacin de la versin de archivo puede ser


confusa, especialmente despus de aplicar una revisin a un
archivo, las nuevas propiedades de script FileVersionRaw y
ProductVersionRaw estn disponibles para los objetos FileInfo. Por
ejemplo, puede ejecutar el siguiente comando para mostrar los
valores de estas propiedades de PowerShell.exe, donde $pid

contiene el id. de proceso de una sesin en ejecucin de Windows


PowerShell: Get-Process -Id $pid -FileVersionInfo | Format-List *version*
-Force

Los nuevos cmdlets Enter-PSHostProcess y Exit-PSHostProcess le


permiten depurar scripts de Windows PowerShell en procesos
independientes del proceso actual que se ejecuta en la consola de
Windows PowerShell. Ejecute Enter-PSHostProcess para introducir,
o establecer la asociacin con, un identificador de proceso
especfico y luego ejecute Get-Runspace para devolver los
espacios de ejecucin activos dentro del proceso. Ejecute ExitPSHostProcess para desasociarse del proceso cuando acabe de
depurar el script dentro del proceso.

Un nuevo cmdlet Wait-Debugger se ha agregado al


mdulo Microsoft.PowerShell.Utility. Puede ejecutar Wait-Debugger
para detener un script en el depurador antes de ejecutar la
siguiente instruccin del script.

El depurador del flujo de trabajo de Windows PowerShell admite


ahora la finalizacin con comando o tabulacin y permite depurar
funciones de flujo de trabajo anidadas. Ahora puede
presionar Ctrl+Interrumpir para introducir el depurador en un
script en ejecucin, tanto en sesiones locales como remotas, as
como en un script de flujo de trabajo.

Se agreg un cmdlet Debug-Job al


mdulo Microsoft.PowerShell.Core para depurar scripts de trabajos
en ejecucin del flujo de trabajo de Windows PowerShell, trabajos
en segundo plano y trabajos que se ejecutan en sesiones remotas.

Se ha agregado un estado nuevo, AtBreakPoint, para los trabajos


de Windows PowerShell. El estado AtBreakpoint se aplica cuando
un trabajo ejecuta un script que incluye puntos de interrupcin
establecidos y el script alcanza un punto de interrupcin. Si un
trabajo se detiene en un punto de interrupcin de depuracin,
debe depurar el trabajo ejecutando el cmdlet Debug-Job.

Windows PowerShell 5.0 implementa la compatibilidad con varias


versiones de un nico mdulo de Windows PowerShell en la misma
carpeta en $PSModulePath. Se ha agregado una propiedad
RequiredVersion a la clase ModuleSpecification para ayudarle a
obtener la versin deseada de un mdulo; esta propiedad es
mutuamente exclusiva con la propiedad ModuleVersion.
RequiredVersion se admite ahora como parte del valor del
parmetro FullyQualifiedName de los cmdlets Get-Module, ImportModule y Remove-Module.

Ahora puede realizar la validacin de la versin de mdulo


ejecutando el cmdlet Test-ModuleManifest.

Los resultados del cmdlet Get-Command muestran ahora una


columna Version; se ha agregado una nueva propiedad Version a la
clase CommandInfo. Get-Command muestra comandos de varias
versiones del mismo mdulo. La propiedad Version tambin forma
parte de las clases derivadas de CmdletInfo: CmdletInfo y
ApplicationInfo.

Get-Command tiene un nuevo parmetro, -ShowCommandInfo,


que devuelve informacin de ShowCommand como PSObjects.
Esta funcionalidad es especialmente til cuando se ejecuta ShowCommand en Windows PowerShell ISE mediante la comunicacin
remota de Windows PowerShell. El parmetro ShowCommandInfo
reemplaza la funcin Get-SerializedCommand existente en el
mdulo Microsoft.PowerShell.Utility, pero el script GetSerializedCommand sigue estando disponible para admitir el
scripting de nivel inferior.

Un nuevo cmdlet Get-ItemPropertyValue permite obtener el valor


de una propiedad sin usar la notacin de puntos. Por ejemplo, en
las versiones anteriores de Windows PowerShell, puede ejecutar el
comando siguiente para obtener el valor de la propiedad de base
de la aplicacin de la clave del registro de PowerShellEngine: (GetItemProperty -Path
HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngin
e -Name ApplicationBase).ApplicationBase. A partir de
Windows PowerShell 5.0, puede ejecutar Get-ItemPropertyValue
-Path
HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngin
e -Name ApplicationBase.

La consola de Windows PowerShell usa ahora el color de sintaxis,


como en Windows PowerShell ISE.

Un nuevo mdulo NetworkSwitch contiene cmdlets que permiten


aplicar la configuracin de modificador, LAN virtual (VLAN) y
bsica del puerto del modificador de red de capa 2 a los
modificadores de red certificados con el logotipo de Windows
Server 2012 R2.

El parmetro FullyQualifiedName se agreg a los cmdlets ImportModule y Remove-Module para permitir el almacenamiento de
varias versiones de un mismo mdulo.

Save-Help, Update-Help, Import-PSSession, Export-PSSession, y


Get-Command tienen un nuevo parmetro, FullyQualifiedModule,
de tipo ModuleSpecification. Agregue este parmetro para
especificar un mdulo con su nombre completo.

El valor de $PSVersionTable.PSVersion se ha actualizado a 5.0.

Nuevas caractersticas de configuracin de estado deseado de Windows PowerShell

Las mejoras en el lenguaje de Windows PowerShell permiten


definir los recursos de configuracin de estado deseado (DSC) de
Windows PowerShell mediante clases. Import-DscResource es
ahora una verdadera palabra clave dinmica; Windows PowerShell
analiza el mdulo raz del mdulo especificado y busca las clases
que contienen el atributo DscResource. Ahora puede usar clases
para definir recursos de DSC, en los que no se requiere un archivo
MOF ni una subcarpeta DSCResource en la carpeta del mdulo. Un
archivo de mdulo de Windows PowerShell puede contener varias
clases de recursos de DSC.

Se ha agregado un nuevo parmetro, ThrottleLimit, a los


siguientes cmdlets en el mdulo PSDesiredStateConfiguration.
Agregue el parmetro ThrottleLimit para especificar el nmero de
dispositivos o equipos de destino en los que quiere que el
comando funcione al mismo tiempo.
o Get-DscConfiguration
o Get-DscConfigurationStatus
o Get-DscLocalConfigurationManager
o Restore-DscConfiguration
o Test-DscConfiguration
o Compare-DscConfiguration
o Publish-DscConfiguration
o Set-DscLocalConfigurationManager
o Start-DscConfiguration
o Update-DscConfiguration

Con los informes de errores de DSC centralizados, no solo se


registra informacin de error completa en el registro de eventos,

sino que tambin se enva a una ubicacin central para su


posterior anlisis. Puede usar esta ubicacin central para
almacenar los errores de configuracin de DSC que se han
producido para cualquier servidor de su entorno. Despus de
definir el servidor de informes en la metaconfiguracin, todos los
errores se envan al servidor de informes y, luego, se almacenan
en una base de datos. Puede configurar esta funcionalidad
independientemente de si se configura un nodo de destino para
extraer las configuraciones de un servidor de extraccin.

Las mejoras en Windows PowerShell ISE facilitan la creacin de


recursos de DSC. Ahora puede hacer lo siguiente.
o Enumeracin de todos los recursos de DSC en un bloque
de configuracin o un bloque
de nodoescribiendo Ctrl+Space en una lnea en blanco
dentro del bloque.
o Finalizacin automtica de propiedades de recurso de
tipo enumeracin.
o Finalizacin automtica de la propiedad DependsOn de los
recursos de DSC, en funcin de otras instancias de recurso
de la configuracin.
o Finalizacin con tabulacin mejorada de los valores de
propiedad de recurso.

Un usuario puede ejecutar ahora un recurso en un conjunto de


credenciales especificado agregando el
atributoPSDscRunAsCredential a un bloque de nodo. Por
ejemplo, PSDscRunAsCredential = Get-Credential Contoso\DscUser.
Esta funcionalidad es til para crear configuraciones que ejecuten
Windows Installer e instaladores ejecutables, accedan al subrbol
del Registro por usuario o realicen otras tareas fuera del contexto
del usuario actual.

Se agreg compatibilidad con la versin de 32 bits (basada en


x86) para la palabra clave Configuration.

Windows PowerShell ahora ofrece compatibilidad con la ayuda


personalizada para configuraciones de DSC, que se define
mediante la adicin de [CmdletBinding()] a la funcin de
configuracin generada.

Un nuevo atributo DscLocalConfigurationManager designa un


bloque de configuracin como una metaconfiguracin, que se usa
para configurar el Administrador de configuracin local de DSC.

Este atributo restringe una configuracin para que nicamente


contenga elementos que configuren el Administrador de
configuracin local de DSC. Durante el procesamiento, esta
configuracin genera un archivo *.meta.mof que se enva a los
nodos de destino apropiados mediante el cmdlet SetDscLocalConfigurationManager.

Ahora se admiten configuraciones parciales en Windows


PowerShell 5.0. Puede entregar documentos de configuracin a un
nodo en fragmentos. Para que un nodo reciba varios fragmentos
de un documento de configuracin, su Administrador de
configuracin local debe estar establecido para especificar los
fragmentos esperados.

La sincronizacin entre equipos es una novedad de DSC en


Windows PowerShell 5.0. Con los recursos integrados WaitFor*
(WaitForAll, WaitForAny y WaitForSome), ahora puede
especificar las dependencias entre equipos durante las
ejecuciones de configuracin, sin orquestacin externa. Estos
recursos ofrecen sincronizacin de nodo a nodo a travs de
conexiones CIM en el protocolo WS-Man. Una configuracin puede
esperar el cambio de estado del recurso especfico de otro equipo.

Just Enough Administration (JEA), una nueva caracterstica de


seguridad de delegacin, aprovecha DSC y los espacios de
ejecucin restringidos de Windows PowerShell para ayudar a las
empresas a evitar la prdida de datos o riesgos causados por
empleados, ya sea intencionada o de manera involuntaria. Para
obtener ms informacin sobre JEA, incluida la ubicacin donde
puede descargar el recurso DSC de xJEA, consulte Just Enough
Administration, Step by Step (Just Enough Administration, paso a
paso).

Se agregaron los siguientes cmdlets nuevos al mdulo


PSDesiredStateConfiguration.
o Un nuevo cmdlet Get-DscConfigurationStatus obtiene
informacin de alto nivel acerca del estado de configuracin
desde un nodo de destino. Puede obtener el estado de todas
las configuraciones o solo de la ltima.
o Un nuevo cmdlet Compare-DscConfiguration compara una
configuracin especificada con el estado real de uno o varios
nodos de destino.
o Un nuevo cmdlet Publish-DscConfiguration copia un archivo
MOF de configuracin en un nodo de destino, pero no aplica
la configuracin. La configuracin se aplica durante el

siguiente paso de coherencia o cuando se ejecuta el cmdlet


Update-DscConfiguration.
o Un nuevo cmdlet Test-DscConfiguration permite comprobar
si una configuracin resultante coincide con la configuracin
deseada, para lo cual devuelve True si la configuracin
coincide con la configuracin deseada o False si no coincide.
o Un nuevo cmdlet Update-DscConfiguration fuerza el
procesamiento de una configuracin. Si el Administrador de
configuracin Local est en modo de extraccin, el cmdlet
obtiene la configuracin del servidor de extraccin antes de
aplicarla.
Nuevas caractersticas de Windows PowerShell ISE

Ahora puede editar scripts y archivos de Windows PowerShell


remoto en una copia local de Windows PowerShell ISE. Para ello,
debe ejecutar Enter-PSSession para iniciar una sesin remota en el
equipo que almacena los archivos que desea editar y, despus,
ejecutar PSEdit . Esta caracterstica facilita la edicin de archivos
de Windows PowerShell que estn almacenados en la opcin de
instalacin Server Core de Windows Server, donde Windows
PowerShell ISE no puede ejecutarse.

El cmdlet Start-Transcript se admite ahora en Windows PowerShell


ISE.

Ahora puede depurar scripts remotos en Windows PowerShell ISE.

Un nuevo comando de men, Break-All (Ctrl+B) entra en el


depurador para los scripts que se ejecutan de forma local y
remota.

Nuevas caractersticas de servicios web de Windows PowerShell (Extensin IIS Management


OData)

A partir de Windows PowerShell 5.0, puede generar un conjunto de


cmdlets de Windows PowerShell segn la funcionalidad expuesta
por un punto de conexin de OData determinado, mediante el
cmdlet Export-ODataEndpointProxy, que se encuentra en el nuevo
mdulo Microsoft.PowerShell.OdataUtils.

Correcciones de errores importantes en Windows PowerShell 5.0

Windows PowerShell 5.0 incluye una nueva implementacin de


COM, que ofrece importantes mejoras de rendimiento para el
trabajo con objetos COM. Para ver una demostracin en vdeo del
efecto, consulteCom_Perf_Improvements.

Se realizaron mejoras de rendimiento importantes en la primera


finalizacin con tabulacin en una sesin de Windows PowerShell,
lo que reduce el tiempo de finalizacin con tabulacin en casi 500
ms.