로그온하는 사용자에 따라 Windows 서비스를 활성화하거나 비활성화합니다.

로그온하는 사용자에 따라 Windows 서비스를 활성화하거나 비활성화합니다.

그래서 어떤 사용자가 로그인하는지에 따라 서비스를 비활성화하거나 활성화하고 싶습니다. 서비스는 특정 사용자에 대해서만 활성화하면 되고 그렇지 않으면 불필요한 시스템 리소스를 잡아먹기 때문입니다.

가장 쉬운 방법은 사용자별로 배치 파일을 만들고(로컬 시스템이므로 사용자가 너무 많지 않음) 사용자가 net stop/start 또는 sc config를 사용하여 로그온할 때 해당 배치 파일을 실행하는 것입니다. 이 접근 방식의 문제점은 해당 명령에 높은 권한이 필요하고 사용자 중 한 명이 높은 권한을 가지고 있지 않다는 것입니다.

이를 수행하는 다른 방법이 있습니까, 아니면 배치 파일에 일시적으로 높은 권한을 부여하는 해결 방법이 있습니까?

감사해요.

답변1

예약된 작업을 사용하여 상승된 권한 문제를 해결할 수 있습니다.

각 최종 사용자에 대해:

  1. 작업 스케줄러를 시작하고 새 작업을 생성합니다(오른쪽의 "작업 생성" 선택)
  2. 일반 탭에서 로그인 여부와 상관없이 가장 높은 권한으로 자신의(관리자) 계정에서 실행되도록 작업을 설정합니다.
  3. 트리거 탭에서 "로그온 시" 트리거를 추가하고 최종 사용자 계정을 구성합니다.
  4. 작업 탭에서 "프로그램 시작" 작업을 추가하고 실행하려는 명령줄("NET STOP 서비스 이름" 또는 "NET START 서비스 이름")을 제공합니다.
  5. 새로운 예약된 작업을 저장하세요.

최종 사용자 중 한 명이 로그인하면 작업 스케줄러는 관리자 계정에서 NET START/STOP을 실행하여 로그인 시점에 높은 권한을 요구하지 않고 서비스를 시작하거나 중지합니다.

몇 가지 질문: 두 최종 사용자가 모두 로그인하면 어떻게 됩니까? 모든 로그인 시퀀스(예: 사용자 A, B, 사용자 B, A)에서 올바른 결과를 얻었습니까? 로그아웃 순서도 고려하는 것을 잊지 마세요...

답변2

서비스는 모든 사용자 계정에서 동일하게 작동합니다....배치 파일을 사용하여 비활성화하면 다른 사용자(예: 관리자)...계정에 영향을 미치므로 다른 계정을 쓸모 없게 만듭니다.:(.. .2개의 배치 파일을 만들어 보세요. 하나는 시작을 위한 것입니다. Windows가 사용자와 요구 사항에 따라 다른 서비스를 사용할 수 없다는 사실에 놀랐습니다.

관련 정보