
win32security.RemoveAccessRight 함수는 서비스 이름 대신 서비스 핸들을 사용해야 합니다. 서비스 핸드는 win32service.OpenService 함수를 사용하여 얻을 수 있습니다.
#hostingforum.kr
python
import win32serviceutil
import win32service
import win32api
import win32con
import win32security
# 서비스 이름
service_name = 'MyService'
# 서비스 핸들 얻기
service_handle = win32service.OpenService(win32service.SC_MANAGER_CONNECT, service_name, win32service.SERVICE_QUERY_STATUS)
# 권한 제거
win32security.RemoveAccessRight(service_handle, win32con.SERVICE_CHANGE_CONFIG)
또한, 서비스가 실행 중일 때 권한을 제거하는 것은 불가능합니다. 서비스가 중지된 상태일 때 권한을 제거해야 합니다.
#hostingforum.kr
python
# 서비스 중지
win32service.ControlService(service_handle, win32service.SERVICE_STOP)
# 권한 제거
win32security.RemoveAccessRight(service_handle, win32con.SERVICE_CHANGE_CONFIG)
# 서비스 시작
win32service.ControlService(service_handle, win32service.SERVICE_START)
2025-03-16 01:43