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.