> 백엔드 개발 > C++ > 관리자 권한 없이 응용 프로그램에서 Windows 서비스를 시작하려면 어떻게 해야 합니까?

관리자 권한 없이 응용 프로그램에서 Windows 서비스를 시작하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2024-10-25 03:52:02
원래의
486명이 탐색했습니다.

How can I start a Windows service from an application without administrator rights?

애플리케이션에서 관리자 권한 없이 Windows 서비스 시작

일부 시나리오에서는 별도의 애플리케이션에서 Windows 서비스를 제어해야 할 수도 있습니다. 관리 권한이 필요하지 않습니다. 그러나 서비스에 대한 기본 권한으로 인해 사용자가 이 작업을 수행하지 못하는 경우가 많습니다.

해결책: 서비스 권한 수정

해결책에는 서비스의 보안 설명자를 수정하여 다음에 대한 권한을 부여하는 것이 포함됩니다. 비관리자. 수행 방법은 다음과 같습니다.

  1. 서비스 핸들 열기: WRITE_DAC 권한으로 서비스 핸들을 획득합니다.
  2. 보안 설명자 생성: SDDL(Security Descriptor Definition Language)을 사용하여 보안 설명자를 구성하여 원하는 권한을 지정합니다. 이 예에서는 대화형 사용자에게 "서비스 시작" 권한을 부여합니다.
<code class="c++">wchar_t sddl[] = L"D:("
  L"(A;;CCLCSWRPWPDTLOCRRC;;;SY)" // Default permissions for local system
  L"(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)" // Default permissions for administrators
  L"(A;;CCLCSWLOCRRC;;;AU)" // Default permissions for authenticated users
  L"(A;;CCLCSWRPWPDTLOCRRC;;;PU)" // Default permissions for power users
  L"(A;;RP;;;IU)" // Added permission: start service for interactive users
  ;</code>
로그인 후 복사
  1. SDDL을 보안 설명자로 변환: ConvertStringSecurityDescriptorToSecurityDescriptor 함수를 사용하여 SDDL 문자열을 보안 설명자로 변환합니다.
  2. 서비스 보안 설정: SetServiceObjectSecurity 함수를 사용하여 수정된 보안 설명자를 서비스 개체에 할당합니다.

다음 단계를 따르세요. , 관리자가 아닌 사용자에게 시스템 보안을 손상시키지 않고 애플리케이션 내에서 서비스를 시작하고 중지할 수 있는 기능을 부여할 수 있습니다.

위 내용은 관리자 권한 없이 응용 프로그램에서 Windows 서비스를 시작하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿