2010-02-10 5 views
1

어떤 Windows 사용자가 로그인했는지에 따라 다른 작업을 수행하는 Windows 서비스를 구축하고 있습니다. 한 사용자 아래에 서비스를 설치하고 시작하도록 설정하면 각 사용자에 대해 별도의 인스턴스가 실행됩니다. 둘 이상의 사용자가 현재 로그인되어 있어도 계속 로그인하면 계속 실행됩니까?동일한 Windows 서비스가 로그인 한 사용자별로 실행됩니까?

이것은 내가 원하는 행동이지만, 가능하지 않다면 다른 계획을 세워야 할 것입니다.

그리고 일반적으로 각각의 사용자 로그인 세션은 자체의 독립적 환경과 유사합니까? 즉, 이름이 지정된 파이프를 통해 내 서비스와 상호 작용하는 드라이버가 설치되어있는 경우 현재 로그인 한 사용자의 드라이버에서 보낸 파이프 된 메시지는 다른 로그인 한 사용자가 실행중인 다른 서비스 인스턴스에서 수신하게됩니다 (가정 위에서 질문 한 것처럼 별도의 인스턴스가 실행됩니까?) 아니면 그들 자신의 드라이버/커널 인스턴스와 완전히 분리 된 환경입니까?

답변

1

적어도 XP의 경우 서비스에는 하나의 인스턴스 만있을 수 있습니다. 물론 특권 서비스는 다른 사용자와 마찬가지로 프로세스를 생성 할 수 있지만 공식적으로는 서비스가 아닙니다.

+0

그래서 권한이 부여 된 서비스를 만들었습니까? Windows를 시작하거나 처음 로그인했을 때 시작됩니까? 로그인 한 사용자가 새로운 사용자를위한 새로운 프로세스를 시작할 수 있습니까? 그리고 내 운전자의 경우, 운전자가 서비스와 상호 작용하도록하는 행동을 어떤 사용자가 수행했는지 어떻게 알 수 있습니까? 그들 모두를 저를 위해 잘 일할 것이라는 점을 통치하는 서비스에, 나는이 세부 사항을 운동 할 필요가있다. –

+0

서비스에는 두 가지 시작 방법이 있습니다. 부팅시 또는 '수동으로'. 로그인을 시작하려면 로그인을 알리고 서비스를 시작하기 위해 일종의 후크 (아마도 GINA와 관련이 있음)를 작성해야합니다. – bmargulies

+0

그럼이 문제로 도와주세요 : 서버에서 실행중인 Windows 서비스가 관리자 계정 (admin)과 함께 설치되었지만 다른 Windows 계정 (admin2)으로 시작되도록 설정되었습니다. admin2로 로그온하고 동일한 WS의 작업에 따라 Windows 서비스를 중지하면 서비스가 다른 계정 (admin)과 함께 계속 실행되고있는 것으로 나타났습니다. Windows 서비스가 한 번만 실행되도록하려면 어떻게해야합니까? – Glegan

3

언급 한 바와 같이 Windows 서비스에는 하나의 인스턴스가 있습니다. 기본적으로 로컬 시스템 계정으로 실행되며 특정 사용자가 아닌 개별 사용자의 환경 등에 액세스 할 수 있습니다. 현재 로그인 한 사용자의 자격 증명과 관련된 어떠한 것도 상속하지 않습니다. 서비스의 특정 사용자 자격 증명을 설정 (예 : 서비스 제어 관리자를 통해)하여 특정 사용자로 서비스의 하나의 인스턴스를 실행할 수 있습니다. 그러나 당신은 단지 하나를 얻습니다.

관련 문제