Uno dei cmdlet più utili è Get-Member, che consente di visualizzare informazioni sull'oggetto .NET Framework restituito da un comando. Le informazioni includono il tipo, le proprietà e i metodi dell'oggetto.
Per sfruttare Get-Member, utilizzare un operatore pipeline (|) per inviare i risultati di un comando a Get-Member. Ad esempio:
get-service | get-member
Tramite questo comando è possibile sapere che Get-Service restituisce un gruppo di oggetti System.ServiceProcess.ServiceController, uno per ogni servizio presente nel computer.
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() CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType) Dispose Method System.Void Dispose() Equals Method System.Boolean Equals(Object obj) ExecuteCommand Method System.Void ExecuteCommand(Int32 command) get_CanPauseAndContinue Method System.Boolean get_CanPauseAndContinue() get_CanShutdown Method System.Boolean get_CanShutdown() get_CanStop Method System.Boolean get_CanStop() get_Container Method System.ComponentModel.IContainer get_Container() get_DependentServices Method System.ServiceProcess.ServiceController[] get_DependentServices() get_DisplayName Method System.String get_DisplayName() get_MachineName Method System.String get_MachineName() get_ServiceHandle Method System.Runtime.InteropServices.SafeHandle get_ServiceHandle() get_ServiceName Method System.String get_ServiceName() get_ServicesDependedOn Method System.ServiceProcess.ServiceController[] get_ServicesDependedOn() get_ServiceType Method System.ServiceProcess.ServiceType get_ServiceType() get_Site Method System.ComponentModel.ISite get_Site() get_Status Method System.ServiceProcess.ServiceControllerStatus get_Status() GetHashCode Method System.Int32 GetHashCode() GetLifetimeService Method System.Object GetLifetimeService() GetType Method System.Type GetType() InitializeLifetimeService Method System.Object InitializeLifetimeService() Pause Method System.Void Pause() Refresh Method System.Void Refresh() remove_Disposed Method System.Void remove_Disposed(EventHandler value) set_DisplayName Method System.Void set_DisplayName(String value) set_MachineName Method System.Void set_MachineName(String value) set_ServiceName Method System.Void set_ServiceName(String value) set_Site Method System.Void set_Site(ISite value) Start Method System.Void Start(), System.Void Start(String[] args) Stop Method System.Void Stop() ToString Method System.String ToString() WaitForStatus Method System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi... CanPauseAndContinue Property System.Boolean CanPauseAndContinue {get;} CanShutdown Property System.Boolean CanShutdown {get;} CanStop Property System.Boolean CanStop {get;} Container Property System.ComponentModel.IContainer Container {get;} DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;} DisplayName Property System.String DisplayName {get;set;} MachineName Property System.String MachineName {get;set;} ServiceHandle Property System.Runtime.InteropServices.SafeHandle ServiceHandle {get;} ServiceName Property System.String ServiceName {get;set;} ServicesDependedOn Property System.ServiceProcess.ServiceController[] ServicesDependedOn {get;} ServiceType Property System.ServiceProcess.ServiceType ServiceType {get;} Site Property System.ComponentModel.ISite Site {get;set;} Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
Queste informazioni sembrano estremamente tecniche, ma in realtà sono molto pratiche.
-
Il valore typename, ad esempio "System.ServiceProcess.ServiceController", indica il tipo di oggetto .NET restituito dal cmdlet. Per informazioni sugli oggetti in questa classe .NET, incollare il nome di tipo, indicato da Typename, nella casella di ricerca di MSDN. L'argomento di MSDN associato include informazioni sulle proprietà e sui metodi degli oggetti di questa classe, inclusi gli oggetti restituiti da Get-Service.
-
I tipi Property rappresentano proprietà degli oggetti. Il valore di ogni proprietà offre informazioni sull'oggetto servizio. Gli oggetti ServiceController, ad esempio, dispongono di una proprietà CanPauseAndContinue. La descrizione della proprietà disponibile in MSDN illustra che la proprietà indica se è possibile sospendere e riprendere il servizio.
Per visualizzare il valore di una proprietà di un servizio specifico, digitare:
Ad esempio:(get-service <service-name>).<property-name>
Per visualizzare un elenco con il nome e il valore della proprietà CanPauseAndContinue del servizio Avvisi (Alerter), digitare:(get-service alerter).canpauseandcontinue
Per visualizzare un elenco dei valori di tutte le proprietà del servizio Avvisi (Alerter), digitare:get-service alerter | format-list -property name, CanPauseAndContinue
Per visualizzare una tabella con il nome e il valore della proprietà CanPauseAndContinue di tutti i servizi, digitare:get-service alerter | format-list -property *
get-service | format-table -property name, CanPauseAndContinue
-
I tipi Method rappresentano metodi dell'oggetto, ovvero azioni che è possibile eseguire sull'oggetto. Gli oggetti ServiceController dispongono, ad esempio, di un metodo Stop che consente di interrompere il servizio.
Per chiamare un metodo di un oggetto servizio, utilizzare il formato seguente, includendo le parentesi.
(get-service <service-name>).<method-name>() For example, (get-service schedule).stop()
Per ulteriori informazioni sul comando Get-Member, digitare:
get-help get-member -detailed