Python - служба открытия с win32service возвращает доступ запрещен даже в качестве администратора
Если я пытаюсь контролировать или даже открывать некоторые службы со всем доступом через win32service.OpenService() (работает от имени администратора), я получаю "pywintypes.error: (5," OpenService "," Доступ запрещен "). Тем не менее, управление теми же службами из консоли служб успешно. Это почему? Вот пример кода, чтобы повторить проблему:
import win32service as ws
def get_handle(service_name):
# service_name is the internal service name, not the display name.
hSCManager = ws.OpenSCManager(None, None, ws.SC_MANAGER_ALL_ACCESS)
return ws.OpenService(hSCManager, service_name, ws.SERVICE_ALL_ACCESS)
sh = get_handle("CertPropSvc") # Certificate Propagation, same problem with
# BitLocker Drive Encryption Service (BDESVC)
1 ответ
Решил проблему, запросив более низкие разрешения при открытии SCM и службы:
import win32service as ws
def get_handle(service_name):
# service_name is the internal service name, not the display name.
# SC_MANAGER_CONNECT is enough.
hSCManager = ws.OpenSCManager(None, None, ws.SC_MANAGER_CONNECT)
# SERVICE_CHANGE_CONFIG is enough.
return ws.OpenService(hSCManager, service_name, ws.SERVICE_CHANGE_CONFIG)
sh = get_handle("CertPropSvc") # Certificate Propagation, BitLocker Drive
# Encryption Service (BDESVC) can also be used.