Condividi tramite


Manuale del programmatore di Windows PowerShell

Questa guida per programmatori è rivolta agli sviluppatori interessati a fornire un ambiente di gestione in riga di comando per gli amministratori di sistema. Windows PowerShell offre un modo semplice per costruire comandi di gestione che espongono oggetti .NET, permettendo però a Windows PowerShell di fare la maggior parte del lavoro per te.

Nello sviluppo tradizionale dei comandi, è necessario scrivere un parser di parametri, un binder di parametri, filtri e tutte le altre funzionalità esposte da ogni comando. Windows PowerShell fornisce quanto segue per facilitare la scrittura dei comandi:

  • Un potente runtime PowerShell di Windows (motore di esecuzione) con un proprio parser e un meccanismo per associare automaticamente i parametri dei comandi.

  • Utility per la formattazione e la visualizzazione dei risultati dei comandi tramite un interprete a riga di comando (CLI).

  • Supporto per alti livelli di funzionalità (tramite provider PowerShell di Windows) che facilitano l'accesso ai dati memorizzati.

    A basso costo, puoi rappresentare un oggetto .NET con un comando ricco o un insieme di comandi che offriranno un'esperienza completa in linea di comando all'amministratore.

    La sezione successiva copre i concetti e i termini chiave di PowerShell di Windows. Familiarizza con questi concetti e termini prima di iniziare lo sviluppo.

Informazioni su PowerShell di Windows

PowerShell di Windows definisce diversi tipi di comandi che puoi usare nello sviluppo. Questi comandi includono: funzioni, filtri, script, alias e eseguibili (applicazioni). Il tipo di comando principale discusso in questa guida è un comando semplice e piccolo chiamato "cmdlet". PowerShell di Windows fornisce un set di cmdlet e supporta completamente la personalizzazione dei cmdlet per adattarla al tuo ambiente. L'runtime di Windows PowerShell elabora tutti i tipi di comando proprio come fa con i cmdlet, usando pipeline.

Oltre ai comandi, Windows PowerShell supporta vari provider personalizzabili di Windows PowerShell che rendono disponibili set specifici di cmdlet. La shell opera all'interno dell'applicazione host fornita da Windows PowerShell (powershell.exe), ma è altrettanto accessibile da un'applicazione host personalizzata che puoi sviluppare per soddisfare requisiti specifici. Per maggiori informazioni, vedi Come funziona Windows PowerShell.

Windows PowerShell Cmdlets

Un cmdlet è un comando leggero utilizzato nell'ambiente PowerShell di Windows. L'runtime di Windows PowerShell invoca questi cmdlet nel contesto degli script di automazione forniti nella riga di comando, e anche il runtime di Windows PowerShell li invoca programmaticamente tramite le API di Windows PowerShell.

Per maggiori informazioni sui cmdlet, vedi Scrivere un cmdlet PowerShell per Windows.

Provider PowerShell per Windows

Nell'esecuzione di compiti amministrativi, l'utente può dover esaminare i dati memorizzati in uno store dati (ad esempio, il file system, il Registro di Windows o uno store certificati). Per semplificare queste operazioni, Windows PowerShell definisce un modulo chiamato provider Windows PowerShell che può essere utilizzato per accedere a uno specifico archivio dati, come il Windows Registry. Ogni fornitore supporta un insieme di cmdlet correlati per offrire all'utente una visuale simmetrica dei dati nello store.

Windows PowerShell fornisce diversi provider predefiniti di PowerShell di Windows. Ad esempio, il fornitore del Registro supporta la navigazione e la manipolazione del Registro di Windows. Le chiavi del registro sono rappresentate come elementi, mentre i valori del registro sono trattati come proprietà.

Se esponi uno store dati a cui l'utente dovrà accedere, potresti dover scrivere il tuo provider PowerShell per Windows, come descritto in Creating Windows PowerShell Providers. Per maggiori informazioni sui provider PowerShell di Windows, vedi Come funziona Windows PowerShell.

Applicazione host

Windows PowerShell include l'applicazione host predefinita powershell.exe, che è un'applicazione console che interagisce con l'utente e ospita il runtime di Windows PowerShell tramite una finestra console.

Solo raramente dovrai scrivere la tua applicazione host per Windows PowerShell, anche se la personalizzazione è supportata. Un caso in cui potresti aver bisogno di una tua applicazione è quando hai bisogno di un'interfaccia grafica più ricca di quella fornita dall'applicazione host predefinita. Potresti anche voler un'applicazione personalizzata quando basi la tua interfaccia grafica sulla riga di comando. Per ulteriori informazioni, vedi Come creare un'applicazione host PowerShell per Windows.

Windows PowerShell Runtime

L'runtime di Windows PowerShell è il motore di esecuzione che implementa l'elaborazione dei comandi. Include le classi che forniscono l'interfaccia tra l'applicazione host e i comandi e provider PowerShell di Windows. L'runtime di Windows PowerShell è implementato come oggetto di runspace per la sessione attuale di Windows PowerShell, che è l'ambiente operativo in cui vengono eseguite la shell e i comandi. Per dettagli operativi, vedi Come funziona Windows PowerShell.

Linguaggio PowerShell di Windows

Il linguaggio PowerShell di Windows fornisce funzioni e meccanismi di scripting per evocare comandi. Per informazioni complete sugli scripting, consulta il Windows PowerShell Language Reference fornito con Windows PowerShell.

ETS (Extended Type System)

Windows PowerShell fornisce accesso a una varietà di oggetti diversi, come .NET e oggetti XML. Di conseguenza, per presentare un'astrazione comune per tutti i tipi di oggetti, lo shell utilizza il suo sistema di tipi esteso (ETS). La maggior parte delle funzionalità ETS è trasparente per l'utente, ma lo script o lo sviluppatore .NET le utilizza per i seguenti scopi:

  • Visualizzazione di un sottoinsieme dei membri di oggetti specifici. Windows PowerShell fornisce una vista "adattata" di diversi tipi specifici di oggetti.

  • Aggiungere membri agli oggetti esistenti.

  • Accesso agli oggetti serializzati.

  • Scrivere oggetti personalizzati.

    Usando ETS, puoi creare nuovi "tipi" flessibili compatibili con il linguaggio PowerShell di Windows. Se sei uno sviluppatore .NET, puoi lavorare con oggetti usando la stessa semantica che il linguaggio PowerShell di Windows applica agli scripting, ad esempio, per determinare se un oggetto valuta a true.

    Per maggiori informazioni su ETS e su come Windows PowerShell utilizza gli oggetti, consulta i Concetti di Oggetto di Windows PowerShell.

Programmazione per Windows PowerShell

Windows PowerShell definisce il proprio codice per comandi, provider e altri moduli di programma utilizzando il .NET Framework. Non sei limitato all'uso di Microsoft Visual Studio per creare moduli personalizzati per Windows PowerShell, anche se gli esempi forniti in questa guida sono noti per funzionare in questo strumento. Puoi usare qualsiasi linguaggio .NET che supporti l'ereditarietà delle classi e l'uso degli attributi. In alcuni casi, le API PowerShell di Windows richiedono che il linguaggio di programmazione possa accedere ai tipi generici.

Riferimento del programmatore

Per riferimento durante lo sviluppo per Windows PowerShell, consulta l'SDK di Windows PowerShell.

Iniziare a usare Windows PowerShell

Per maggiori informazioni su come iniziare a usare la shell di Windows PowerShell, consulta il Getting Started with Windows PowerShell fornito con Windows PowerShell. Un documento Quick Reference tri-fold è fornito anche come introduzione all'uso dei cmdlet.

Contenuti di questa guida

Argomento Definition
Come creare un'applicazione host PowerShell per Windows Questa sezione descrive come scrivere un'applicazione host che manipola uno spazio di esecuzione e come scrivere un'applicazione host che implementi un proprio host personalizzato.
Come creare un snap-in PowerShell per Windows Questa sezione descrive come creare uno snap-in utilizzato per registrare tutti i cmdlet e i provider in un assembly e come creare uno snap-in personalizzato.
Concetti di PowerShell per Windows Questa sezione contiene informazioni concettuali che ti aiuteranno a comprendere Windows PowerShell dal punto di vista di uno sviluppatore.

Vedere anche

Windows PowerShell SDK