Get-Service
取得電腦上的服務。
Syntax
Get-Service
[[-Name] <String[]>]
[-DependentServices]
[-RequiredServices]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Service
[-DependentServices]
[-RequiredServices]
-DisplayName <String[]>
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Service
[-DependentServices]
[-RequiredServices]
[-Include <String[]>]
[-Exclude <String[]>]
[-InputObject <ServiceController[]>]
[<CommonParameters>]
Description
此 Cmdlet 僅適用於 Windows 平臺。
Cmdlet 會 Get-Service
取得對象,這些物件代表電腦上的服務,包括執行和停止的服務。 根據預設,在沒有參數的情況下執行 時 Get-Service
,會傳回所有本機計算機的服務。
您可以指定服務名稱或服務的顯示名稱,或透過管線將服務對象傳送至此 Cmdlet,來指示此 Cmdlet 只取得特定服務。
範例
範例 1:取得計算機上的所有服務
這個範例會取得計算機上的所有服務。 其行為就像您輸入 Get-Service *
一樣。 預設顯示會展示狀態、服務名稱及每個服務的顯示名稱。
Get-Service
範例 2:取得以搜尋字串開頭的服務
此範例會擷取服務名稱 WMI
開頭為 (Windows Management Instrumentation) 的服務。
Get-Service "wmi*"
範例 3:顯示包含搜尋字串的服務
此範例會以包含 這個字 network
的顯示名稱來顯示服務。 即使服務名稱不包含 Net
,例如 xmlprov、網路布建服務,搜尋顯示名稱仍會尋找網路相關服務。
Get-Service -Displayname "*network*"
範例 4:取得以搜尋字串和排除項目開頭的服務
這個範例只會取得服務名稱 win
開頭為的服務,但 WinRM 服務除外。
Get-Service -Name "win*" -Exclude "WinRM"
範例 5:顯示目前作用中的服務
此範例只會顯示狀態為的服務 Running
。
Get-Service | Where-Object {$_.Status -eq "Running"}
Get-Service
會取得計算機上的所有服務,並將對象傳送至管線。 Cmdlet Where-Object
只會選取狀態屬性等於Running
的服務。
Status 只是服務物件的一個屬性。 若要檢視所有屬性,請輸入 Get-Service | Get-Member
。
範例 6:列出具有相依服務之電腦上的服務
此範例會取得具有相依服務的服務。
Get-Service |
Where-Object {$_.DependentServices} |
Format-List -Property Name, DependentServices, @{
Label="NoOfDependentServices"; Expression={$_.dependentservices.count}
}
Name : AudioEndpointBuilder
DependentServices : {AudioSrv}
NoOfDependentServices : 1
Name : Dhcp
DependentServices : {WinHttpAutoProxySvc}
NoOfDependentServices : 1
...
Get-Service
Cmdlet 會取得計算機上的所有服務,並將對象傳送至管線。 Cmdlet Where-Object
會選取 DependentServices 屬性不是 Null 的服務。
結果會向下傳送至 Cmdlet。Format-List
Property 參數會顯示服務的名稱、相依服務的名稱,以及顯示每個服務的相依服務數目的導出屬性。
範例 7:依屬性值排序服務
這個範例顯示當您依 其 Status 屬性的值遞增排序服務時,停止的服務會出現在執行服務之前。 這是因為 Status 的值是列舉,其 Stopped
值為 1
,且 Running
值為 4
。 如需詳細資訊,請參閱 ServiceControllerStatus。
若要先列出執行中的服務,請使用 Cmdlet 的 Sort-Object
Descending 參數。
Get-Service "s*" | Sort-Object status
Status Name DisplayName
------ ---- -----------
Stopped stisvc Windows Image Acquisition (WIA)
Stopped SwPrv MS Software Shadow Copy Provider
Stopped SysmonLog Performance Logs and Alerts
Running Spooler Print Spooler
Running srservice System Restore Service
Running SSDPSRV SSDP Discovery Service
Running ShellHWDetection Shell Hardware Detection
Running Schedule Task Scheduler
Running SCardSvr Smart Card
Running SamSs Security Accounts Manager
Running SharedAccess Windows Firewall/Internet Connectio...
Running SENS System Event Notification
Running seclogon Secondary Logon
範例 8:取得服務的相依服務
這個範例會取得 WinRM 服務所需的服務。 傳回服務 之 ServicesDependedOn 屬性的值。
Get-Service "WinRM" -RequiredServices
範例 9:透過管線操作員取得服務
此範例會取得本機電腦上的WinRM服務。 以引號括住的服務名稱字串會向下傳送至 Get-Service
管線。
"WinRM" | Get-Service
參數
-DependentServices
表示此 Cmdlet 只會取得相依於指定服務的服務。
Type: | SwitchParameter |
Aliases: | DS |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisplayName
指定要擷取之服務的顯示名稱,指定為字串陣列。 允許使用萬用字元。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Exclude
指定此 Cmdlet 從作業中排除的服務陣列,做為字串陣列。
此參數的值會限定 Name 參數。 輸入名稱專案或模式,例如 s*
。 允許使用萬用字元。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Include
指定此 Cmdlet 包含在作業中的字串陣列、服務或服務。 此參數的值會限定 Name 參數。 輸入名稱專案或模式,例如 s*
。 允許使用萬用字元。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
指定要擷取之服務的 ServiceController 物件。 輸入包含物件的變數,或輸入可取得物件的命令或運算式。 您可以使用管線將服務物件傳送至此 Cmdlet。
Type: | ServiceController[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
指定要抓取之服務的服務名稱。 允許使用萬用字元。
Type: | String[] |
Aliases: | ServiceName |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-RequiredServices
表示此 Cmdlet 只會取得此服務所需的服務。 此參數會取得服務 之 ServicesDependedOn 屬性的值。
Type: | SwitchParameter |
Aliases: | SDO, ServicesDependedOn |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
輸入
您可以使用管線將服務物件傳送至此 Cmdlet。
您可以使用管線將服務名稱傳送至此 Cmdlet。
輸出
此 Cmdlet 會傳回代表電腦上服務的物件。
備註
PowerShell 包含的下列別名 Get-Service
:
- Windows:
gsv
此 Cmdlet 僅適用於 Windows 平臺。
從 PowerShell 6.0 開始,下列屬性會新增至 ServiceController 物件: UserName、 Description、 DelayedAutoStart、 BinaryPathName 和 StartupType 。
此 Cmdlet 只有在目前用戶有權查看服務時,才能顯示服務。 如果此 Cmdlet 未顯示服務,您可能沒有許可權查看這些服務。
若要尋找系統上每個服務的服務名稱和顯示名稱,請輸入 Get-Service
。 服務名稱會出現在 [ 名稱 ] 資料行中,而顯示名稱會出現在 DisplayName 數據行中。
注意
一般而言, Get-Service
會傳回服務的相關信息,而不是驅動程式。 不過,如果您指定驅動程式的名稱, Get-Service
則會傳回驅動程式的相關信息。
- 列舉不包含設備驅動器服務
- 指定通配符時,Cmdlet 只會傳回 Windows 服務
- 如果您指定與裝置服務名稱完全相符的 Name 或 DisplayName ,則會傳回裝置實例
當您依狀態值以遞增順序排序時, Stopped
服務會出現在服務之前 Running
。 服務的 Status 屬性是列舉值,其中狀態的名稱代表整數值。 排序是根據整數值,而不是根據名稱。 Running
出現在 之前 Stopped
,因為 Stopped
的值為 1
,且 Running
值為 4
。 如需詳細資訊,請參閱 ServiceControllerStatus。