Sebbene a prima vista potrebbe non risultare chiaro, quando si lavora con Windows PowerShell si utilizzano oggetti .NET Framework. Man mano che si acquisisce familiarità, l'efficacia dell'elaborazione degli oggetti diventa più evidente e sarà possibile comprendere meglio le modalità di utilizzo degli oggetti e il concetto di oggetto.

Da un punto di vista tecnico, un oggetto .NET Framework è un'istanza di una classe .NET Framework costituita dai dati e dalle operazioni associate a tali dati. È possibile pensare a un oggetto come a un'entità di dati che include proprietà, che corrispondono alle caratteristiche, e metodi, ovvero azioni che è possibile eseguire sull'oggetto.

Quando, ad esempio, si ottiene un servizio in Windows PowerShell, si ottiene un oggetto che rappresenta il servizio. Quando si visualizzano informazioni su un servizio, si visualizzano le proprietà del relativo oggetto servizio. Quando, infine, si avvia un servizio, ovvero si modifica la proprietà Status del servizio impostandola su "started", si utilizza un metodo dell'oggetto servizio.

Tutti gli oggetti dello stesso tipo dispongono degli stessi metodi e proprietà, ma ogni istanza di un oggetto può avere diversi valori per le proprietà. Ogni oggetto servizio, ad esempio, dispone di una proprietà Name e di una proprietà Status. Ogni servizio può tuttavia avere un nome e uno stato diversi.

Dopo avere acquisito un po' di familiarità, sarà possibile apprendere i concetti relativi agli oggetti in modo semplice. Per individuare il tipo di oggetto ottenuto da un cmdlet, utilizzare un operatore pipeline (|) per inviare i risultati di un comando "get" al comando Get-Member. Tramite il comando seguente, ad esempio, gli oggetti recuperati da un comando Get-Service vengono inviati a Get-Member.

get-service | get-member 

Tramite Get-Member vengono visualizzate le informazioni sull'oggetto servizio, incluso il nome di tipo e un elenco dei relativi metodi e proprietà.

   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
add_Disposed              Method        System.Void add_Disposed(EventHandler value)
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
...

Per informazioni sulla classe di oggetti, copiare e incollare il nome di tipo, ad esempio System.ServiceProcess.ServiceController, in MSDN. Dopo aver trovato la classe, leggere gli argomenti secondari in MSDN per informazioni sulle proprietà e sui metodi degli oggetti basati su tale classe, analoghi a quelli di Windows PowerShell.

Per trovare i valori di tutte le proprietà di un oggetto specifico, utilizzare un operatore pipeline (|) per inviare i risultati di un comando "get"a un comando Format-List o Format-Table. Utilizzare il parametro Property dei cmdlet Format con un valore indicante tutti gli elementi (*). Per trovare, ad esempio, tutte le proprietà del servizio di pianificazione (Schedule) nel sistema, digitare:

get-service schedule | format-list -property *

Di seguito è illustrato un esempio del risultato.

Name                : Schedule
CanPauseAndContinue : True
CanShutdown         : True
CanStop             : True
DisplayName         : Task Scheduler
DependentServices   : {}
MachineName         : .
ServiceName         : Schedule
ServicesDependedOn  : {RpcSs}
ServiceHandle       : SafeServiceHandle
Status              : Running
ServiceType         : Win32ShareProcess
Site                :
Container           :

Per iniziare ad apprendere l'utilizzo di Windows PowerShell, non è necessario comprendere tutte le caratteristiche degli oggetti, ma è consigliabile iniziare a familiarizzare con tale concetto. per riuscire a utilizzare al meglio gli oggetti sfruttando i vantaggi offerti.




Argomenti della Guida