Guía del programador de Windows PowerShell
Esta guía para programadores está dirigida a desarrolladores interesados en proporcionar un entorno de administración de línea de comandos para administradores de sistemas. Windows PowerShell proporciona una forma sencilla de crear comandos de administración que exponen objetos .NET y, al mismo tiempo, permite que Windows PowerShell haga la mayor parte del trabajo por usted.
En el desarrollo de comandos tradicional, es necesario escribir un analizador de parámetros, un enlazador de parámetros, filtros y todas las demás funciones expuestas por cada comando. Windows PowerShell proporciona lo siguiente para facilitarle la escritura de comandos:
Un potente tiempo de ejecución de Windows PowerShell (motor de ejecución) con su propio analizador y un mecanismo para vincular automáticamente los parámetros de comando.
Utilidades para formatear y mostrar resultados de comandos utilizando un intérprete de línea de comandos (CLI).
Soporte para altos niveles de funcionalidad (a través de proveedores de Windows PowerShell) que facilitan el acceso a los datos almacenados.
Por un coste reducido, puede representar un objeto .NET mediante un comando completo o un conjunto de comandos que ofrecerán una experiencia de línea de comandos completa al administrador.
La siguiente sección cubre los conceptos y términos clave de Windows PowerShell. Familiarícese con estos conceptos y términos antes de comenzar el desarrollo.
Acerca de Windows PowerShell
Windows PowerShell define varios tipos de comandos que puede usar en el desarrollo. Estos comandos incluyen: funciones, filtros, scripts, alias y ejecutables (aplicaciones). El tipo de comando principal que se analiza en esta guía es un comando pequeño y simple llamado "cmdlet". Windows PowerShell proporciona un conjunto de cmdlets y admite totalmente la personalización de cmdlets para adaptarlos a su entorno. El tiempo de ejecución de Windows PowerShell procesa todos los tipos de comandos tal como lo hace con los cmdlets, mediante canalizaciones.
Además de los comandos, Windows PowerShell admite varios proveedores de Windows PowerShell personalizables que ponen a disposición conjuntos específicos de cmdlets. El shell funciona dentro de la aplicación host proporcionada por Windows PowerShell (Windows PowerShell.exe), pero también se puede acceder a él desde una aplicación host personalizada que puede desarrollar para cumplir requisitos específicos. Para obtener más información, consulte Cómo funciona Windows PowerShell.
Cmdlets de Windows PowerShell
Un cmdlet es un comando ligero que se utiliza en el entorno de Windows PowerShell. El tiempo de ejecución de Windows PowerShell invoca estos cmdlets dentro del contexto de los scripts de automatización que se proporcionan en la línea de comandos, y el tiempo de ejecución de Windows PowerShell también los invoca mediante programación a través de las API de Windows PowerShell.
Para obtener más información sobre los cmdlets, consulte Escritura de un cmdlet de Windows PowerShell.
Proveedores de Windows PowerShell
Al realizar tareas administrativas, es posible que el usuario necesite examinar los datos almacenados en un almacén de datos (por ejemplo, el sistema de archivos, el Registro de Windows o un almacén de certificados). Para facilitar estas operaciones, Windows PowerShell define un módulo llamado proveedor de Windows PowerShell que se puede utilizar para acceder a un almacén de datos específico, como el Registro de Windows. Cada proveedor admite un conjunto de cmdlets relacionados para brindar al usuario una vista simétrica de los datos en el almacén.
Windows PowerShell proporciona varios proveedores predeterminados de Windows PowerShell. Por ejemplo, el proveedor del Registro admite la navegación y manipulación del Registro de Windows. Las claves del registro se representan como elementos y los valores del registro se tratan como propiedades.
Si expone un almacén de datos al que el usuario necesitará acceder, es posible que deba escribir su propio proveedor de Windows PowerShell, como se describe en Creación de proveedores de Windows PowerShell. Para obtener más información sobre los proveedores de Windows PowerShell, consulte Cómo funciona Windows PowerShell.
Aplicación anfitriona
Windows PowerShell incluye la aplicación host predeterminada powershell.exe, que es una aplicación de consola que interactúa con el usuario y aloja el tiempo de ejecución de Windows PowerShell mediante una ventana de consola.
Rara vez necesitará escribir su propia aplicación host para Windows PowerShell, aunque se admite la personalización. Un caso en el que podría necesitar su propia aplicación es cuando necesita una interfaz GUI que sea más rica que la interfaz proporcionada por la aplicación host predeterminada. Es posible que también desee una aplicación personalizada cuando base su GUI en la línea de comando. Para obtener más información, consulte Cómo crear una aplicación host de Windows PowerShell.
Tiempo de ejecución de Windows PowerShell
El tiempo de ejecución de Windows PowerShell es el motor de ejecución que implementa el procesamiento de comandos. Incluye las clases que proporcionan la interfaz entre la aplicación host y los comandos y proveedores de Windows PowerShell. El tiempo de ejecución de Windows PowerShell se implementa como un objeto de espacio de ejecución para la sesión actual de Windows PowerShell, que es el entorno operativo en el que se ejecutan el shell y los comandos. Para obtener detalles operativos, consulte Cómo funciona Windows PowerShell.
Idioma de Windows PowerShell
El lenguaje Windows PowerShell proporciona funciones y mecanismos de secuencias de comandos para invocar comandos. Para obtener información completa sobre secuencias de comandos, consulte la Referencia del lenguaje de Windows PowerShell incluida con Windows PowerShell.
Sistema de tipo extendido (ETS)
Windows PowerShell proporciona acceso a una variedad de objetos diferentes, como objetos .NET y XML. Como consecuencia, para presentar una abstracción común para todos los tipos de objetos, el shell utiliza su sistema de tipos extendido (ETS). La mayor parte de la funcionalidad de ETS es transparente para el usuario, pero el script o el desarrollador de .NET la utiliza para los siguientes propósitos:
Ver un subconjunto de los miembros de objetos específicos. Windows PowerShell proporciona una vista "adaptada" de varios tipos de objetos específicos.
Agregar miembros a objetos existentes.
Acceso a objetos serializados.
Escritura de objetos personalizados.
Con ETS, puede crear nuevos "tipos" flexibles que sean compatibles con el lenguaje Windows PowerShell. Si es desarrollador de .NET, puede trabajar con objetos utilizando la misma semántica que el lenguaje Windows PowerShell aplica a las secuencias de comandos, por ejemplo, para determinar si un objeto se evalúa como
true.Para obtener más información sobre ETS y cómo Windows PowerShell usa objetos, consulte Conceptos de objetos de Windows PowerShell.
Programación para Windows PowerShell
Windows PowerShell define su código para comandos, proveedores y otros módulos de programa utilizando .NET Framework. No está limitado al uso de Microsoft Visual Studio para crear módulos personalizados para Windows PowerShell, aunque se sabe que los ejemplos proporcionados en esta guía se ejecutan en esta herramienta. Puede utilizar cualquier lenguaje .NET que admita la herencia de clases y el uso de atributos. En algunos casos, las API de Windows PowerShell requieren el lenguaje de programación para poder acceder a tipos genéricos.
Referencia del programador
Como referencia al desarrollar para Windows PowerShell, consulte el SDK de Windows PowerShell.
Introducción al uso de Windows PowerShell
Para obtener más información sobre cómo comenzar a utilizar el shell de Windows PowerShell, consulte Introducción a Windows PowerShell incluido con Windows PowerShell. También se proporciona un documento tríptico de referencia rápida como introducción para el uso de cmdlets.
Contenido de esta guía
- How to Create a Windows PowerShell Provider
Esta sección describe cómo crear un proveedor de Windows PowerShell para Windows PowerShell.
- How to Create a Windows PowerShell Host Application
Esta sección describe cómo escribir una aplicación host que manipule un espacio de ejecución y cómo escribir una aplicación host que implemente su propio host personalizado.
- How to Create a Windows PowerShell Snap-in
Esta sección describe cómo crear un complemento que se utiliza para registrar todos los cmdlets y proveedores en un ensamblado y cómo crear un complemento personalizado.
- How to Create a Console Shell
Esta sección describe cómo crear un shell de consola que no sea extensible.
- Windows PowerShell Concepts
Esta sección contiene información conceptual que le ayudará a comprender Windows PowerShell desde el punto de vista de un desarrollador.
Ver también
SDK de Windows PowerShell