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 함수를 사용하여 다른 세션에 대화 상자를 표시할 수 있습니다.

Services