NovedadesWhat's New

Windows PowerShell 2,0 proporciona las siguientes características nuevas para su uso al escribir cmdlets, proveedores y aplicaciones host.Windows PowerShell 2.0 provides the following new features for use when writing cmdlets, providers, and host applications.

MódulosModules

Ahora puede empaquetar y distribuir soluciones de Windows PowerShell mediante el uso de módulos.You can now package and distribute Windows PowerShell solutions by using modules. Los módulos le permiten particionar, organizar y abstraer el código de Windows PowerShell en unidades reutilizables independientes.Modules allow you to partition, organize, and abstract your Windows PowerShell code into self-contained, reusable units. Para obtener más información sobre los módulos, consulte escribir un módulo de Windows PowerShell.For more information about modules, see Writing a Windows PowerShell Module.

La clase de PowerShellThe PowerShell class

La clase de PowerShell proporciona una solución más sencilla para crear aplicaciones, denominadas aplicaciones host, que ejecutan comandos mediante programación.The PowerShell class provides a simpler solution for creating applications, referred to as host applications, that programmatically run commands. Esta clase permite crear una canalización de comandos, especificar el espacio de ejecución que se usa para ejecutar los comandos y especificar invocar los comandos de forma sincrónica o asincrónica.This class allows you to create a pipeline of commands, specify the runspace that is used to run the commands, and specify invoking the commands synchronously or asynchronously.

La clase RunspacePoolThe RunspacePool class

Los grupos de espacio de ejecución permiten crear varios espacios de ejecución mediante una sola llamada.Runspace pools allow you to create multiple runspaces by using a single call. El método CreateRunspacePool proporciona varias sobrecargas que se pueden usar para crear espacios de inicio que tienen las mismas características, como el mismo host, el estado de sesión inicial y la información de conexión.The CreateRunspacePool method provides several overloads that can be used to create runspaces that have the same features, such as the same host, initial session state, and connection information.

La clase InitialSessionStateThe InitialSessionState class

La clase InitialSessionState permite crear una configuración de estado de sesión que se utiliza cuando se abre un espacio de ejecución.The InitialSessionState class allows you to create a session state configuration that is used when a runspace is opened. Puede crear una configuración personalizada, una configuración predeterminada que incluye los comandos proporcionados por mshshort y una configuración cuyos comandos están restringidos en función de las capacidades de la sesión.You can create a custom configuration, a default configuration that includes the commands provided by mshshort, and a configuration whose commands are restricted based on the capabilities of the session.

Espacios de control remotosRemote runspaces

Ahora puede crear espacios de ejecución que se puedan abrir en equipos remotos, lo que le permite ejecutar comandos en el equipo remoto y recopilar los resultados de forma local.You can now create runspaces that can be opened on remote computers, allowing you to run commands on the remote machine and collect the results locally. Para crear un espacio de ejecución remoto, debe especificar información sobre la conexión remota al crear el espacio de ejecución.To create a remote runspace, you must specify information about the remote connection when creating the runspace. Vea los métodos CreateRunspace y CreateRunspacePool para obtener ejemplos.See the CreateRunspace and CreateRunspacePool methods for examples. La información de conexión se define mediante la clase RunspaceConnectionInfo.The connection information is defined by the RunspaceConnectionInfo class.

Elementos Private runspacePrivate runspace elements

Ahora puede crear espacios de espacios cuyos elementos sean públicos o privados.You can now create runspaces whose elements are public or private. Esto permite crear espacios de ejecución cuyos elementos están disponibles en el espacio de ejecución, pero no están disponibles para el usuario.This allows you to create runspaces whose elements are available to the runspace, but are not available to the user. Vea la clase ConstrainedSessionStateEntry para averiguar qué elementos del espacio de ejecución se pueden convertir en privados.See the ConstrainedSessionStateEntry class to find out which elements of the runspace can be made private.

Modos de subproceso de espacio de ejecución y estado de apartamentoRunspace threading modes and apartment state

Ahora puede especificar cómo se crean y se usan los subprocesos cuando se ejecutan comandos en un espacio de ejecución.You can now specify how threads are created and used when running commands in a runspace. Vea las propiedades System. Management. Automation. espacios de ejecución. ThreadOptions y System. Management. Automation. runspace. RunspacePool. ThreadOptions.See the System.Management.Automation.Runspaces.Runspace.ThreadOptions and System.Management.Automation.Runspaces.RunspacePool.ThreadOptions properties.

Ahora puede obtener el estado de apartamento de los subprocesos que se usan para ejecutar comandos en un espacio de ejecución.You can now get the apartment state of the threads that are used to run commands in a runspace. Vea las propiedades System. Management. Automation. Runspace. Runspace. ApartmentState y System. Management. Automation. runspace. RunspacePool. ApartmentState.See the System.Management.Automation.Runspaces.Runspace.ApartmentState and System.Management.Automation.Runspaces.RunspacePool.ApartmentState properties.

Cmdlets de transaccionesTransaction cmdlets

Ahora puede crear cmdlets que se pueden usar dentro de una transacción.You can now create cmdlets that can be used within a transaction. Cuando se usa un cmdlet en una transacción, sus acciones son temporales y pueden ser aceptadas o rechazadas por los cmdlets de transacciones proporcionados por Windows PowerShell.When a cmdlet is used in a transaction, its actions are temporary, and they can be accepted or rejected by the transaction cmdlets provided by Windows PowerShell.

Para obtener más información acerca de las transacciones, consulte How to Support Transactions.For more information about transactions, see How to Support Transactions.

Proveedor de transaccionesTransaction provider

Ahora puede crear proveedores que se pueden usar dentro de una transacción.You can now create providers that can be used within a transaction. Similar a los cmdlets, cuando un proveedor se usa en una transacción, sus acciones son temporales y pueden ser aceptadas o rechazadas por los cmdlets de transacciones proporcionados por Windows PowerShell.Similar to cmdlets, when a provider is used in a transaction, its actions are temporary, and they can be accepted or rejected by the transaction cmdlets provided by Windows PowerShell.

Para obtener más información sobre cómo especificar la compatibilidad con la transacción en una clase de proveedor, vea la propiedad System. Management. Automation. Provider. CmdletProviderAttribute. ProviderCapabilities.For more information about specifying support for transaction within a provider class, see the System.Management.Automation.Provider.CmdletProviderAttribute.ProviderCapabilities property.

Cmdlets de trabajoJob cmdlets

Ahora puede escribir cmdlets que pueden realizar su acción como un trabajo.You can now write cmdlets that can perform their action as a job. Estos trabajos se ejecutan en segundo plano sin interactuar con la sesión actual.These jobs are run in the background without interacting with the current session. Para obtener más información acerca de cómo Windows PowerShell admite trabajos, consulte trabajos en segundo plano.For more information about how Windows PowerShell supports jobs, see Background Jobs.

Tipos de salida de cmdletCmdlet output types

Ahora puede especificar los tipos de .NET Framework devueltos por los cmdlets declarando el atributo OutputType al escribir los cmdlets.You can now specify the .NET Framework types that are returned by your cmdlets by declaring the OutputType attribute when writing your cmdlets. Esto permitirá que otros usuarios determinen qué tipo de objetos devuelve un cmdlet examinando la propiedad OutputType del cmdlet.This will allow others to determine what type of objects are returned by a cmdlet by looking at the OutputType property of the cmdlet.

Compatibilidad con eventosEvent support

Ahora puede escribir cmdlets que agreguen y consuman eventos.You can now write cmdlets that add and consume events. Vea la clase PSEvent.See the PSEvent class.

Comandos de proxyProxy commands

Ahora puede escribir comandos de proxy que se pueden usar para ejecutar otro comando.You can now write proxy commands that can be used to run another command. Un comando proxy permite controlar qué funcionalidad del cmdlet de origen está disponible para el usuario.A proxy command allows you to control what functionality of the source cmdlet is available to the user. Por ejemplo, puede crear un comando de proxy que quite un parámetro proporcionado por el comando de origen.For example, you can create a proxy command that removes a parameter that is supplied by the source command. Vea la clase ProxyCommand.See the ProxyCommand class.

Solicitudes de varias opcionesMultiple choice prompts

Ahora puede escribir aplicaciones que puedan proporcionar mensajes que permitan al usuario seleccionar varias opciones.You can now write applications that can provide prompts that allow the user to select multiple choices. Vea la interfaz IHostUISupportsMultipleChoiceSelectionSee the IHostUISupportsMultipleChoiceSelection interface

Sesiones interactivasInteractive sessions

Ahora puede escribir aplicaciones que pueden iniciar y detener una sesión interactiva en un equipo remoto.You can now write applications that can start and stop an interactive session on a remote computer. Vea la interfaz IHostSupportsInteractiveSession.See the IHostSupportsInteractiveSession interface.

Ayuda de cmdlet personalizada para proveedoresCustom Cmdlet Help for Providers

Ahora puede crear temas de ayuda personalizados para los cmdlets de proveedor.You can now create customized Help topics for the provider cmdlets. Los temas de ayuda de los cmdlets personalizados pueden explicar cómo funciona el cmdlet en la ruta de acceso del proveedor y documentar las características especiales, incluidos los parámetros dinámicos que el proveedor agrega al cmdlet.Custom cmdlet help topics can explain how the cmdlet works in the provider path and document special features, including the dynamic parameters that the provider adds to the cmdlet.