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.
Другие вопросы по тегам