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를 호출합니다. |
서비스 상태 변경 알림 |
Services는 NotifyServiceStatusChange 함수를 사용하여 서비스를 만들거나 삭제하거나 상태 변경한 경우 알림을 받도록 등록할 수 있습니다. 이는 루프에서 QueryServiceStatusEx 함수를 호출하여 상태 폴링하는 것보다 더 효율적입니다. |
세션 0 격리 |
서비스는 항상 세션 0에서 실행됩니다. Windows Vista 이전에는 처음으로 로그온한 사용자도 세션 0에 할당되었습니다. 이제 세션 0은 대화형 사용자 세션과 연결되지 않은 서비스 및 기타 애플리케이션에만 예약됩니다. (로그온하는 첫 번째 사용자는 세션 1에 연결되고, 로그온하는 두 번째 사용자는 세션 2 등에 연결됩니다.) 세션 0은 사용자와 상호 작용하는 프로세스를 지원하지 않습니다. 이 변경은 서비스가 애플리케이션에 메시지를 게시하거나 보낼 수 없으며 애플리케이션이 서비스에 메시지를 보내거나 게시할 수 없음을 의미합니다. 또한 서비스는 대화 상자와 같은 사용자 인터페이스 항목을 직접 표시할 수 없습니다. 서비스는 WTSSendMessage 함수를 사용하여 다른 세션에 대화 상자를 표시할 수 있습니다. |