Windows服務 - Wikiwand
For faster navigation, this Iframe is preloading the Wikiwand page for Windows服務.

Windows服務

維基百科,自由的百科全書

Windows服務是指Windows NT作業系統中的一種執行在後台的電腦程式。[1]它在概念上類似於Unix守護行程[1]Windows服務必須符合服務控制管理器(負責管理Windows服務的組件)的介面規則和協定。[2]

Windows服務可以組態為在作業系統啟動時執行,並且在Windows執行期間持續在背景執行。服務也可以手動或基於某個事件而啟動。Windows NT作業系統包含眾多服務,分別執行在三種使用者帳戶環境中:系統、網路服務和本機服務。這些Windows組件通常採用Windows服務代管處理程序。因為Windows服務執行在其自身的專用使用者帳戶中,它們可以在使用者未登入時活動。

Windows Vista之前,安裝為「互動服務」的服務可以與Windows桌面互動和顯示圖形化使用者介面。但在Windows Vista中,互動服務已被棄用,並且可能無法正常執行。[3][4]

管理

Windows管理員可以管理服務,通過:

服務擴充

服務擴充是基於Microsoft管理控制台提供的一個組件,它可以連接到本機電腦或網路上的遠端電腦,使用者可以:[1]

  • 檢視已安裝服務的列表,包括服務名稱、說明和組態
  • 開始、停止、暫停或重新啟動服務[5]
  • 適用時指定服務的參數
  • 更改啟動類型。可接受的啟動類型有:
    • 自動:服務會在系統登入時啟動。
    • 自動(延遲啟動):服務會在系統啟動後過一會啟動。此選項在Windows Vista中引入,目的是降低系統啟動後到達桌面的等待時間。但是,不是所有服務都支援延遲啟動。[6]
    • 手動:服務只會在被明確呼叫時啟動。
    • 已停用:服務被停用,啟動時將不會啟動,啟動後必須要再設定為自動或手動才能將服務啟用。
  • 更改各服務執行的使用者帳戶上下文
  • 組態服務發生失敗時應採取的恢復操作
  • 查閱服務的依賴關係,了解服務或裝置驅動程式依賴於哪些特定服務,或者特定服務依賴於哪些服務或裝置驅動程式
  • 匯出服務列表為文字檔案或CSV檔案

Sc.exe

服務擴充的命令行介面是Sc.exe,名為「服務控制」實用工具。[7]此工具在Windows XP[8]及更高版本中提供。[9]

Sc.exe的管理範圍僅限於本機電腦。從Windows Server 2003開始,Sc.exe不僅能做到「服務擴充」支援的操作,還可以安裝和移除服務。[9]

Windows PowerShell

Windows PowerShell本質上可以管理Windows服務,相關命令如下:

其他管理工具

在服務擴充、Sc.exe和PowerShell以外,Windows還包括第三方可以操作的組件。Net.exe可以啟動、停止、暫停或恢復一個Windows服務。[18]在Windows Vista及更高版本中,Windows 工作管理員可以顯示已安裝服務的列表和啟動與暫停它們。MSConfig可以啟用或禁用Windows服務。

開發

編寫原生服務

可以使用如Microsoft Visual StudioEmbarcadero Delphi等開發工具建立一個Windows服務。為了成為一個Windows服務,程式在編寫上必須處理「服務控制管理器」的啟動、停止和暫停訊息。服務控制管理器是負責啟動和停止服務的Windows組件。

封裝應用程式為服務

Windows Resource Kit for Windows NT 3.51Windows NT 4.0Windows 2000提供工具來控制服務的註冊和使用:SrvAny.exe作為服務封裝器來處理預期的服務介面(例如處理service_start,然後回應service_startedservice_failed)並允許組態任何可執行檔或指令碼作為一個服務。Sc.exe可以安裝、啟動、停止和移除新服務。[19]

參見

Windows服務
概念

參考資料

  1. ^ 1.0 1.1 1.2 Services overview. TechNet. Microsoft. [29 March 2013]. 
  2. ^ Services. Microsoft Developer Network. Microsoft. [29 March 2013]. 
  3. ^ New Elevation PowerToys for Windows Vista. TechNet Magazine. Microsoft. June 2008 [21 June 2013]. The service CmdAsSystem is configured as interactive whose support is being deprecated. The service may not function properly. The problem is that this script tries to create and start an interactive service. Interactive services will not function correctly due to Session 0 Isolation in Windows Vista. 
  4. ^ Services in Windows. MSDN. Microsoft. 18 October 2010 [21 June 2013]. 
  5. ^ Start, stop, pause, resume, or restart a service. TechNet. Microsoft. [29 March 2013]. 
  6. ^ ServiceInstaller.DelayedAutoStart Property (System.ServiceProcess). Microsoft. [April 2013]See Remarks section 
  7. ^ How to create a Windows service by using Sc.exe. Support. Microsoft. 11 September 2011 [29 March 2013]. 
  8. ^ Command-line reference A-Z: SC. TechNet. Microsoft. [8 January 2014]. 
  9. ^ 9.0 9.1 Command-Line Reference: Sc. TechNet. Microsoft. [8 January 2014]. Windows 7, Windows 8, Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Vista 
  10. ^ Get-Service. TechNet. Microsoft. [29 March 2013]. 
  11. ^ New-Service. TechNet. Microsoft. [29 March 2013]. 
  12. ^ Restart-Service. TechNet. Microsoft. [29 March 2013]. 
  13. ^ Resume-Service. TechNet. Microsoft. [29 March 2013]. 
  14. ^ Set-Service. TechNet. Microsoft. [29 March 2013]. 
  15. ^ Start-Service. TechNet. Microsoft. [29 March 2013]. 
  16. ^ Stop-Service. TechNet. Microsoft. [29 March 2013]. 
  17. ^ Suspend-Service. TechNet. Microsoft. [29 March 2013]. 
  18. ^ Start, stop, pause, resume, or restart a service. TechNet. Microsoft. [8 January 2014]. 
  19. ^ How To Create a User-Defined Service. Support. Microsoft. [29 March 2013]. 

進一步資料

{{bottomLinkPreText}} {{bottomLinkText}}
Windows服務
Listen to this article