Programmatore di Windows PowerShell'GuidaWindows PowerShell Programmer's Guide

Guida per programmatori, questo è rivolto agli sviluppatori che desiderano fornire un ambiente di gestione da riga di comando per gli amministratori di sistema.This programmer's guide is targeted at developers who are interested in providing a command-line management environment for system administrators. Windows PowerShell fornisce un modo semplice per creare i comandi di gestione che espongono gli oggetti .NET, consentendo a Windows PowerShell per eseguire la maggior parte del lavoro per l'utente.Windows PowerShell provides a simple way for you to build management commands that expose .NET objects, while allowing Windows PowerShell to do most of the work for you.

Nello sviluppo di comando tradizionali, è necessario scrivere un parser di parametri, uno strumento di associazione di parametri, filtri e tutte le altre funzionalità esposte da ogni comando.In traditional command development, you are required to write a parameter parser, a parameter binder, filters, and all other functionality exposed by each command. Windows PowerShell fornisce il comando seguente per semplificare la scrittura di comandi:Windows PowerShell provides the following to make it easy for you to write commands:

  • Un potente PowerShell di Windows runtime (motore di esecuzione) con il proprio parser e un meccanismo per l'associazione automatica tra i parametri di comando.A powerful Windows PowerShell runtime (execution engine) with its own parser and a mechanism for automatically binding command parameters.

  • Utilità per formattare e visualizzare i risultati del comando con un interprete della riga di comando (CLI).Utilities for formatting and displaying command results using a command line interpreter (CLI).

  • Supporto per alti livelli di funzionalità (tramite il provider di Windows PowerShell) che rendono più semplice accedere ai dati archiviati.Support for high levels of functionality (through Windows PowerShell providers) that make it easy to access stored data.

    Costo minimo, è possibile rappresentare un oggetto .NET da un comando complesso o un set di comandi che offrirà un'esperienza da riga di comando completa all'amministratore.At little cost, you can represent a .NET object by a rich command or set of commands that will offer a complete command-line experience to the administrator.

    Nella sezione successiva illustra i concetti principali di Windows PowerShell e le condizioni.The next section covers the key Windows PowerShell concepts and terms. Acquisire familiarità con questi concetti e termini prima di iniziare lo sviluppo.Familiarize yourself with these concepts and terms before starting development.

Informazioni su Windows PowerShellAbout Windows PowerShell

Windows PowerShell definisce diversi tipi di comandi che è possibile usare in fase di sviluppo.Windows PowerShell defines several types of commands that you can use in development. Questi comandi includono: le funzioni, filtri, script, alias e file eseguibili (applicazioni).These commands include: functions, filters, scripts, aliases, and executables (applications). Il tipo di comando principale illustrato in questa guida è un comando semplice di piccole dimensioni denominato "cmdlet".The main command type discussed in this guide is a simple, small command called a "cmdlet". Windows PowerShell offre un sistema di un set di cmdlet e supporta completamente la personalizzazione di cmdlet in base all'ambiente.Windows PowerShell furnishes a set of cmdlets and fully supports cmdlet customization to suit your environment. Il runtime di Windows PowerShell elabora tutti i tipi di comandi come i cmdlet di, con le pipeline.The Windows PowerShell runtime processes all command types just as it does cmdlets, using pipelines.

Oltre ai comandi, Windows PowerShell supporta diversi provider di Windows PowerShell personalizzabile che rendono disponibili insiemi di cmdlet specifici.In addition to commands, Windows PowerShell supports various customizable Windows PowerShell providers that make available specific sets of cmdlets. La shell viene eseguito all'interno dell'applicazione host fornita da Windows PowerShell (Windows PowerShell.exe), ma è ugualmente accessibile da un'applicazione host personalizzato che è possibile sviluppare per soddisfare requisiti specifici.The shell operates within the Windows PowerShell-provided host application (Windows PowerShell.exe), but it is equally accessible from a custom host application that you can develop to meet specific requirements. Per altre informazioni, vedere modalità di funzionamento di Windows PowerShell.For more information, see How Windows PowerShell Works.

Cmdlet di Windows PowerShellWindows PowerShell Cmdlets

Un cmdlet è un comando semplice che viene usato nell'ambiente di Windows PowerShell.A cmdlet is a lightweight command that is used in the Windows PowerShell environment. Il runtime di Windows PowerShell vengono richiamati i cmdlet nel contesto di script di automazione che vengono forniti alla riga di comando e il runtime di Windows PowerShell che richiama anche loro a livello di programmazione tramite Windows PowerShell APIs.The Windows PowerShell runtime invokes these cmdlets within the context of automation scripts that are provided at the command line, and the Windows PowerShell runtime also invokes them programmatically through Windows PowerShell APIs.

Per altre informazioni sui cmdlet, vedere scrittura di un Cmdlet di Windows PowerShell.For more information about cmdlets, see Writing a Windows PowerShell Cmdlet.

Provider di Windows PowerShellWindows PowerShell Providers

Esecuzione delle attività amministrative, l'utente potrebbe essere necessario esaminare i dati archiviati in un archivio dati (ad esempio, nel file system, Registro di sistema di Windows o un archivio certificati).In performing administrative tasks, the user may need to examine data stored in a data store (for example, the file system, the Windows Registry, or a certificate store). Per semplificare queste operazioni, Windows PowerShell consente di definire un modulo, denominato un provider di Windows PowerShell che può essere utilizzato per accedere a un archivio dati specifico, ad esempio il Registro di sistema di Windows.To make these operations easier, Windows PowerShell defines a module called a Windows PowerShell provider that can be used to access a specific data store, such as the Windows Registry. Ogni provider supporta un set di cmdlet correlati per consentire all'utente una visualizzazione dei dati nell'archivio simmetrica.Each provider supports a set of related cmdlets to give the user a symmetrical view of the data in the store.

Windows PowerShell fornisce predefiniti diversi provider di Windows PowerShell.Windows PowerShell provides several default Windows PowerShell providers. Ad esempio, il provider del Registro di sistema supporta la navigazione e modifica del Registro di sistema Windows.For example, the Registry provider supports navigation and manipulation of the Windows Registry. Le chiavi del Registro di sistema sono rappresentate come elementi e i valori del Registro di sistema vengono considerati come proprietà.Registry keys are represented as items, and registry values are treated as properties.

Se si espone un archivio dati che l'utente dovrà accedere, si potrebbe essere necessario scrivere il proprio provider di Windows PowerShell, come descritto in creazione di provider di Windows PowerShell.If you expose a data store that the user will need to access, you might need to write your own Windows PowerShell provider, as described in Creating Windows PowerShell Providers. Per altre informazioni aboutWindows provider PowerShell, vedere modalità di funzionamento di Windows PowerShell.For more information aboutWindows PowerShell providers, see How Windows PowerShell Works.

Applicazione hostHost Application

Windows PowerShell include powershell.exe l'applicazione host predefinito, ovvero un'applicazione console che interagisce con l'utente e che ospita il runtime di Windows PowerShell usando una finestra della console.Windows PowerShell includes the default host application powershell.exe, which is a console application that interacts with the user and hosts the Windows PowerShell runtime using a console window.

Solo raramente è necessario scrivere la propria applicazione host per Windows PowerShell, anche se la personalizzazione è supportata.Only rarely will you need to write your own host application for Windows PowerShell, although customization is supported. Un caso in cui un'applicazione personalizzata potrebbe essere necessario è quando si dispone di un requisito per un'interfaccia utente grafica che è più completa rispetto all'interfaccia fornita dall'applicazione host predefinito.One case in which you might need your own application is when you have a requirement for a GUI interface that is richer than the interface provided by the default host application. Un'applicazione personalizzata è possibile anche quando si basa la relativa interfaccia grafica nella riga di comando.You might also want a custom application when you are basing your GUI on the command line. Per altre informazioni, vedere come creare un'applicazione Host di Windows PowerShell.For more information, see How to Create a Windows PowerShell Host Application.

Runtime di Windows PowerShellWindows PowerShell Runtime

Il runtime di Windows PowerShell è il motore di esecuzione che implementa l'elaborazione del comando.The Windows PowerShell runtime is the execution engine that implements command processing. Include le classi che forniscono l'interfaccia tra l'applicazione host e i comandi di Windows PowerShell e i provider.It includes the classes that provide the interface between the host application and Windows PowerShell commands and providers. Il runtime di Windows PowerShell viene implementato come un oggetto dello spazio di esecuzione per la sessione di Windows PowerShell corrente, ovvero l'ambiente operativo in cui eseguire la shell e i comandi.The Windows PowerShell runtime is implemented as a runspace object for the current Windows PowerShell session, which is the operational environment in which the shell and the commands execute. Per i dettagli operativi, vedere modalità di funzionamento di Windows PowerShell.For operational details, see How Windows PowerShell Works.

Windows PowerShell LanguageWindows PowerShell Language

Il linguaggio di Windows PowerShell fornisce funzioni di scripting e un meccanismo per richiamare i comandi.The Windows PowerShell language provides scripting functions and mechanisms to invoke commands. Per informazioni sugli script completate, vedere che il riferimento al linguaggio di Windows PowerShell forniti con Windows PowerShell.For complete scripting information, see the Windows PowerShell Language Reference shipped with Windows PowerShell.

Sistema di tipi estesi (ETS)Extended Type System (ETS)

Windows PowerShell fornisce l'accesso a una varietà di oggetti diversi, ad esempio .NET e gli oggetti XML.Windows PowerShell provides access to a variety of different objects, such as .NET and XML objects. Di conseguenza, per presentare un'astrazione comune per tutti i tipi di oggetto shell utilizza un sistema di tipo esteso (ETS).As a consequence, to present a common abstraction for all object types the shell uses its extended type system (ETS). La maggior parte delle funzionalità ETS è trasparente all'utente, ma lo script o per gli sviluppatori .NET lo usa per gli scopi seguenti:Most ETS functionality is transparent to the user, but the script or .NET developer uses it for the following purposes:

  • Visualizzazione di un sottoinsieme dei membri di oggetti specifici.Viewing a subset of the members of specific objects. Windows PowerShell fornisce una visualizzazione "adattata" per diversi tipi di oggetto specifico.Windows PowerShell provides an "adapted" view of several specific object types.

  • Aggiunta di membri per gli oggetti esistenti.Adding members to existing objects.

  • L'accesso a oggetti serializzati.Access to serialized objects.

  • Scrittura di oggetti personalizzati.Writing customized objects.

    Usa ETS, è possibile creare nuovi flessibili "tipi" che sono compatibili con il linguaggio di Windows PowerShell.Using ETS, you can create flexible new "types" that are compatible with the Windows PowerShell language. Se sei uno sviluppatore .NET, si è in grado di utilizzare gli oggetti usando la stessa semantica come linguaggio di Windows PowerShell si applica alla creazione di script, ad esempio, per determinare se un oggetto viene valutato true.If you are a .NET developer, you are able to work with objects using the same semantics as the Windows PowerShell language applies to scripting, for example, to determine if an object evaluates to true.

    Per altre informazioni su ETS e come Windows PowerShell Usa gli oggetti, vedere concetti di oggetti di Windows PowerShell.For more information about ETS and how Windows PowerShell uses objects, see Windows PowerShell Object Concepts.

Programmazione per Windows PowerShellProgramming for Windows PowerShell

Windows PowerShell consente di definire il relativo codice per i comandi, provider e altri moduli di programma utilizzando .NET Framework.Windows PowerShell defines its code for commands, providers, and other program modules using the .NET Framework. Non sono limitati all'utilizzo di Microsoft Visual Studio per la creazione di moduli personalizzati per Windows PowerShell, anche se gli esempi forniti in questa guida sono noti per l'esecuzione di questo strumento.You are not confined to the use of Microsoft Visual Studio in creating customized modules for Windows PowerShell, although the samples provided in this guide are known to run in this tool. È possibile usare qualsiasi linguaggio .NET che supporta l'ereditarietà di classe e l'utilizzo di attributi.You can use any .NET language that supports class inheritance and the use of attributes. In alcuni casi, Windows PowerShell APIs richiedono il linguaggio di programmazione sia in grado di accedere a tipi generici.In some cases, Windows PowerShell APIs require the programming language to be able to access generic types.

Riferimento per programmatoriProgrammer's Reference

Come riferimento durante lo sviluppo per Windows PowerShell, vedere la Windows PowerShell SDK.For reference when developing for Windows PowerShell, see the Windows PowerShell SDK.

Introduzione all'uso di Windows PowerShellGetting Started Using Windows PowerShell

Per altre informazioni su come iniziare a usare la shell di Windows PowerShell, vedere la Introduzione a Windows PowerShell forniti con Windows PowerShell.For more information about starting to use the Windows PowerShell shell, see the Getting Started with Windows PowerShell shipped with Windows PowerShell. Nozioni di base per l'utilizzo di cmdlet viene fornito anche un documento di riferimento rapido in tre parti.A Quick Reference tri-fold document is also supplied as a primer for cmdlet use.

Contenuto della GuidaContents of This Guide

ArgomentoTopic DefinizioneDefinition
Come creare un Provider di Windows PowerShellHow to Create a Windows PowerShell Provider Questa sezione descrive come creare un provider di Windows PowerShell per Windows PowerShell.This section describes how to build a Windows PowerShell provider for Windows PowerShell.
Come creare un'applicazione Host di PowerShell di WindowsHow to Create a Windows PowerShell Host Application In questa sezione viene descritto come scrivere un'applicazione host che consente di modificare uno spazio di esecuzione e come scrivere un'applicazione host che implementa il proprio host personalizzato.This section describes how to write a host application that manipulates a runspace and how to write a host application that implements its own custom host.
Come creare uno Snap-in PowerShell di WindowsHow to Create a Windows PowerShell Snap-in Questa sezione descrive come creare uno snap-in che consente di registrare tutti i cmdlet e provider in un assembly e come creare uno snap-in personalizzati.This section describes how to create a snap-in that is used to register all cmdlets and providers in an assembly and how to create a custom snap-in.
Come creare una Shell di ConsoleHow to Create a Console Shell Questa sezione descrive come creare una shell di console che non è estendibile.This section describes how to create a console shell that is not extensible.
Concetti di Windows PowerShellWindows PowerShell Concepts In questa sezione contiene informazioni concettuali che consentiranno di comprendere Windows PowerShell dal punto di vista di uno sviluppatore.This section contains conceptual information that will help you understand Windows PowerShell from the viewpoint of a developer.

Vedere ancheSee Also

Windows PowerShell SDKWindows PowerShell SDK