iT邦幫忙

DAY 14
2

強而有力的 Windows PowerShell系列 第 14

使用 Windows PowerShell 管理服務 - 取得服務狀態

  • 分享至 

  • xImage
  •  

為了方便管理服務,Windows PowerShell 提供高達 8 個 cmdlet,此次謹說明如何取得服務執行的狀態。
使用 Get-Service cmdlet 可取得本機或遠端電腦上的服務狀態,就跟上一篇討論的<a href="">「使用 Windows PowerShell 管理處理序」</a>一樣,不加參數的 Get-Service 會顯示所有的服務。而且只會在目前使用者具有查看服務權限的時候,才會顯示這些服務。如果 Get-Service 沒有顯示服務,就表示您沒有檢視這些服務的權限:

Get-Service | Out-Host -Paging


由上圖執行結果中的 Name 欄位來看,並不是那麼容易可以辨別出該服務的顯示名稱為何,所以透過 DisplayName 屬性,搭配完整的顯示名稱、萬用字元或部分的顯示名稱,以便依照顯示名稱進行篩選。

以下面的程式碼來說,會找出顯示名稱為 Win 帶頭、顯示名稱為 Server、與顯示名稱有 Service 的服務,並且以表格方式自動調整最佳的欄位寬度以便顯示其結果:

Get-Service -DisplayName Win*, Server, *Service* | Format-Table -AutoSize

有時候管理者會想知道某個服務其必要和依存的服務有哪些,就可使用 DependentServices 參數取得依存於某服務,而 RequiredServices 參數則會取得與此服務相依的服務。例如下面的程式碼會依序顯示 Workstation 服務所需的服務,以及需要 Workstation 服務的服務:

# 設定變數
$ws = "Workstation"

# 顯示所需的服務
Write-Output "$ws 所需的服務"
Write-Output "======================"
Get-Service -Name Workstation -RequiredServices

# 顯示依存的服務
Write-Output `n "依存 $ws 的服務"
Write-Output "======================"
# 因為 Name 參數是預設的屬性,所以可以省略掉 Name 參數
Get-Service Workstation -DependentServices

進一步結合上面的程式碼,可以找出所有彼此具有相依性,且正在執行中的服務,再搭配 Format-Table 來顯示電腦上服務的 Status、Name、RequiredServicesDependentServices 屬性:

Get-Service * | Where {$_.RequiredServices -or $_.DependentServices}  | Where {$_.Status -eq "Running"} | Format-Table Status, Name, RequiredServices, DependentServices -AutoSize | Out-Host -Paging


上一篇
使用 Windows PowerShell 管理處理序
下一篇
使用 Windows PowerShell 管理服務 - 停止、啟動、暫停與重新啟動服務
系列文
強而有力的 Windows PowerShell33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言