共用方式為


Windows Vista 的服務變更

服務模型發生了重大變更,可改善服務的效能、可靠性、安全性、管理和管理。

下表摘要說明 Windows Vista 服務的增強功能。

增強 描述
延遲自動啟動
系統啟動後不久會啟動延遲的自動啟動服務。 這可改善系統啟動效能,同時仍為這些服務提供自動啟動。 若要設定延遲的自動啟動旗標,請使用 SERVICE_CONFIG_DELAYED_AUTO_START_INFO呼叫 ChangeServiceConfig2 函式。
失敗偵測和復原
如果服務失敗,服務控制管理員 (SCM) 可以執行失敗動作,例如重新啟動服務,以嘗試從該失敗中復原。 若要設定失敗動作,請使用 SERVICE_CONFIG_FAILURE_ACTIONS呼叫 ChangeServiceConfig2
Preshutdown 通知
服務可以在收到實際的關機通知之前,先在其 HandlerEx 函式中註冊以接收 SERVICE_CONTROL_PRESHUTDOWN 通知。 這為服務提供了較長的關機程式,讓更多時間正常關閉。 若要設定逾時值,請使用 SERVICE_CONFIG_PRESHUTDOWN_INFO呼叫 ChangeServiceConfig2
受限制的網路存取
您可以使用服務 SID 來限制對埠、通訊協定或網路流量方向的存取。 若要限制服務的存取網路,請使用 INetFwServiceRestriction 介面。
以最低許可權執行
服務可以在包含必要許可權的任何帳戶下執行(LocalService、NetworkService、LocalSystem、網域帳戶或本機帳戶),並透過使用 SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO呼叫 ChangeServiceConfig2 來指出必要的許可權。 SCM 會移除不需要的任何許可權。
服務隔離
服務可以隔離物件,例如檔案或登錄機碼,使其獨佔使用,方法是使用包含服務 SID 的訪問控制項目來保護它們。 將此 SID 指派給服務之後,服務擁有者可以修改對象的訪問控制清單,以授與 SID 的存取權。 這可讓服務存取特定物件,而不需以高許可權帳戶執行,或降低對象的安全性。 若要設定服務 SID,請使用 SERVICE_CONFIG_SERVICE_SID_INFO呼叫 ChangeServiceConfig2
服務狀態變更通知
當服務建立、刪除或狀態變更時,服務可以使用 NotifyServiceStatusChange 函式來註冊以收到通知。 這比在迴圈中呼叫 QueryServiceStatusEx 函式來輪詢狀態更有效率。
工作話0隔離
服務一律會在會話 0 中執行。 在 Windows Vista 之前,第一個登入的使用者也會指派給會話 0。 現在,會話 0 會針對與互動式使用者會話無關的服務和其他應用程式,專門保留會話。 (第一個登入的使用者已連線到會話 1、第二個要登入的用戶會連線到會話 2 等等。會話 0 不支援與用戶互動的程式。
這項變更表示服務無法將訊息張貼或傳送至應用程式,而應用程式無法將訊息傳送或張貼至服務。 此外,服務無法直接顯示使用者介面專案,例如對話框。 服務可以使用 WTSSendMessage 函式在另一個會話中顯示對話方塊。

Services