Compartir a través de


Guía del programador de Windows PowerShell

Esta guía para programadores está dirigida a desarrolladores interesados en proporcionar un entorno de gestión en línea de comandos para administradores de sistemas. Windows PowerShell ofrece una forma sencilla de crear comandos de gestión que exponen objetos .NET, mientras que Windows PowerShell hace la mayor parte del trabajo por ti.

En el desarrollo tradicional de comandos, se requiere escribir un analizador de parámetros, un binder de parámetros, filtros y todas las demás funcionalidades expuestas por cada comando. Windows PowerShell ofrece lo siguiente para facilitarte la escritura de comandos:

  • Un potente entorno de ejecución de Windows PowerShell con su propio analizador y un mecanismo para vincular automáticamente parámetros de comando.

  • Utilidades para formatear y mostrar resultados de comandos usando 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.

    A bajo coste, puedes representar un objeto .NET mediante un comando rico o un conjunto de comandos que ofrecerán una experiencia completa en línea de comandos al administrador.

    La siguiente sección cubre los conceptos y términos clave de PowerShell para Windows. Familiarízate con estos conceptos y términos antes de empezar el desarrollo.

Acerca de Windows PowerShell

Windows PowerShell define varios tipos de comandos que puedes usar en desarrollo. Estos comandos incluyen: funciones, filtros, scripts, alias y ejecutables (aplicaciones). El tipo principal de comando que se discute en esta guía es un comando simple y pequeño llamado "cmdlet". Windows PowerShell proporciona un conjunto de cmdlets y soporta completamente la personalización de cmdlets para adaptarla a tu entorno. El entorno de ejecución de Windows PowerShell procesa todos los tipos de comandos igual que los cmdlets, usando pipelines.

Además de los comandos, Windows PowerShell soporta varios proveedores personalizables de Windows PowerShell que ponen a disposición conjuntos específicos de cmdlets. El shell funciona dentro de la aplicación anfitriona proporcionada por Windows PowerShell (powershell.exe), pero es igualmente accesible desde una aplicación anfitriona personalizada que puedes desarrollar para cumplir requisitos específicos. Para más información, consulta Cómo funciona PowerShell de Windows.

Windows PowerShell Cmdlets

Un cmdlet es un comando ligero que se utiliza en el entorno PowerShell de Windows. El entorno de ejecución de Windows PowerShell invoca estos cmdlets dentro del contexto de scripts de automatización que se proporcionan en la línea de comandos, y el entorno de ejecución de Windows PowerShell también los invoca programáticamente a través de las APIs de Windows PowerShell.

Para más información sobre cmdlets, consulte Escribir un cmdlet de Windows PowerShell.

Proveedores de PowerShell para Windows

Al realizar tareas administrativas, el usuario puede necesitar 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 Windows PowerShell que puede usarse para acceder a un almacén de datos específico, como el Registro de Windows. Cada proveedor soporta un conjunto de cmdlets relacionados para ofrecer al usuario una vista simétrica de los datos en la almacén.

Windows PowerShell proporciona varios proveedores predeterminados de PowerShell para Windows. Por ejemplo, el proveedor del Registro soporta 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 expones un almacén de datos al que el usuario necesitará acceder, puede que necesites escribir tu propio proveedor de PowerShell para Windows, como se describe en Creando Proveedores de Windows PowerShell. Para más información sobre los proveedores de Windows PowerShell, consulta Cómo funciona Windows PowerShell.

Aplicación de Host

Windows PowerShell incluye la aplicación anfitriona predeterminada powershell.exe, que es una aplicación de consola que interactúa con el usuario y aloja el entorno de ejecución de Windows PowerShell mediante una ventana de consola.

Solo rara vez necesitarás escribir tu propia aplicación anfitriona para Windows PowerShell, aunque la personalización sí está permitida. Un caso en el que podrías necesitar tu propia aplicación es cuando necesitas una interfaz gráfica más rica que la que proporciona la aplicación anfitriona predeterminada. También puede que quieras una aplicación personalizada cuando bases tu interfaz gráfica en la línea de comandos. Para más información, consulte Cómo crear una aplicación anfitriona de Windows PowerShell.

Tiempo de ejecución de Windows PowerShell

El entorno 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 anfitriona y los comandos y proveedores de PowerShell de Windows. El entorno de ejecución de Windows PowerShell se implementa como un objeto de espacio de ejecución para la sesión actual de PowerShell de Windows, que es el entorno operativo en el que se ejecutan el shell y los comandos. Para detalles operativos, véase Cómo funciona Windows PowerShell.

Lenguaje PowerShell de Windows

El lenguaje PowerShell de Windows proporciona funciones y mecanismos de scripting para invocar comandos. Para información completa sobre scripts, consulte la Referencia del Lenguaje de Windows PowerShell incluida con Windows PowerShell.

Sistema de tipos extendidos (ETS)

Windows PowerShell proporciona acceso a una variedad de objetos diferentes, como .NET y objetos XML. Como consecuencia, para presentar una abstracción común para todos los tipos de objetos, la shell utiliza su sistema de tipos extendido (ETS). La mayoría de las funcionalidades de ETS son transparentes para el usuario, pero el desarrollador de scripts o .NET las utiliza para los siguientes propósitos:

  • Visualizando un subconjunto de los miembros de objetos específicos. Windows PowerShell proporciona una vista "adaptada" de varios tipos específicos de objetos.

  • Añadir miembros a objetos existentes.

  • Acceso a objetos serializados.

  • Escribir objetos personalizados.

    Usando ETS, puedes crear nuevos "tipos" flexibles que sean compatibles con el lenguaje PowerShell de Windows. Si eres desarrollador .NET, puedes trabajar con objetos usando la misma semántica que aplica el lenguaje PowerShell de Windows al scripting, por ejemplo, para determinar si un objeto se evalúa como true.

    Para más información sobre ETS y cómo Windows PowerShell utiliza objetos, véase 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 el .NET Framework. No estás limitado al uso de Microsoft Visual Studio para crear módulos personalizados para Windows PowerShell, aunque los ejemplos proporcionados en esta guía son conocidos por ejecutarse en esta herramienta. Puedes usar cualquier lenguaje .NET que soporte herencia de clases y el uso de atributos. En algunos casos, las APIs PowerShell de Windows requieren que el lenguaje de programación pueda acceder a tipos genéricos.

Referencia del programador

Para referencia al desarrollar para Windows PowerShell, consulta el SDK de Windows PowerShell.

Empezar usando Windows PowerShell

Para más información sobre cómo empezar a usar el shell de Windows PowerShell, consulta el PowerShell Getting Beginning with Windows PowerShell incluido con WindowsShell. También se proporciona un documento de referencia rápida con tríplices como introducción para el uso de cmdlet.

Contenido de esta guía

Tema Definición
Cómo crear una aplicación anfitriona de Windows PowerShell Esta sección describe cómo escribir una aplicación anfitriona que manipule un espacio de ejecución y cómo escribir una aplicación anfitriona que implemente su propio anfitrión personalizado.
Cómo crear un snap-in de PowerShell para Windows Esta sección describe cómo crear un snap-in que se utilice para registrar todos los cmdlets y proveedores en un ensamblador y cómo crear un snap-in personalizado.
Conceptos de PowerShell para Windows Esta sección contiene información conceptual que te ayudará a entender Windows PowerShell desde el punto de vista de un desarrollador.

Véase también

Windows PowerShell SDK