雖然您一開始可能並未發現,但是當您在 Windows PowerShell 執行工作時,實際上是在使用 .NET Framework 物件。隨著您的經驗不斷累積,以及物件處理的效用愈發明顯,您將發現其實自己是在使用物件,甚至最後以物件做為思考依據。

就技術上而言,.NET Framework 物件是由資料以及與該資料關聯的作業所組成的 .NET Framework 類別執行個體。不過,您可以將物件想成擁有屬性 (類似特性) 和方法 (指可以針對物件執行的動作) 的資料實體。

例如,當您在 Windows PowerShell 中取得服務時,實際所取得的是代表該項服務的物件。當您在檢視服務的相關資訊時,您是在檢視其服務物件的屬性。同樣地,當您啟動服務時,也就是當您將該項服務的 Status 屬性變更為 "started" 時,您正在使用該項服務物件的方法。

所有相同類型的物件都會具有相同的屬性和方法,不過,物件的每個執行個體屬性值可以各不相同。例如,每個服務物件都具有 Name 和 Status 屬性。不過,各個服務可以擁有不同的名稱和狀態。

當您了解這些概念之後,這些物件就不難了解。若要找出 Cmdlet 會取得哪種物件類型,請使用管線運算子 (|) 將 "get" 命令的結果傳送到 Get-Member 命令。例如,下列命令會將 Get-Service 命令所擷取到的物件傳送到 Get-Member。

get-service | get-member 

Get-Member 會顯示該服務物件的相關資訊,其中包括物件的型別名稱,以及包含此物件屬性和方法的清單。

   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()
...

如需取得物件類別的相關資訊,請複製及貼上 Typename (例如,System.ServiceProcess.ServiceController) 到 MSDN 中。當找出類別時,您就可以讀取相關 MSDN 子主題來認識以該類別為基礎之物件的屬性和方法,例如出現在 Windows PowerShell 的物件。

若要找出特定物件的所有屬性值,請使用管線運算子 (|) 將 "get" 命令的結果傳送到 Format-List 或 Format-Table 命令。請配合所有 (*) 的值來使用這些 Format cmdlet 的 Property 參數。例如,若要找出系統中 Schedule 服務的所有屬性,請輸入:

get-service schedule | format-list -property *

下面內容顯示結果範例。

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           :

如果這是您第一次使用 Windows PowerShell,那麼您還不需要熟知物件的每個細節,不過,請先記得這類概念。因為您很快就能夠應用這類物件來發揮其最大效益。




目錄