Перезапустите службу Windows из приложения Python без повышения привилегий. - PullRequest
0 голосов
/ 05 февраля 2020

Я установил службу с помощью wix-installer:

 <ServiceInstall Id="si11" DisplayName="abcsyncservice" Description="abcsyncservice" Name="abcsyncservice" Start="auto" Type="ownProcess" Vital="no" ErrorControl="normal">
            <util:PermissionEx
                User="Everyone"
                GenericAll="yes"
                ServiceChangeConfig="yes"
                ServiceEnumerateDependents="yes"
                ChangePermission="yes"
                ServiceInterrogate="yes"
                ServicePauseContinue="yes"
                ServiceQueryConfig="yes"
                ServiceQueryStatus="yes"
                ServiceStart="yes"
                ServiceStop="yes" />
            </ServiceInstall>

При попытке перезапустить службу из приложения Python:

    try:
        win32serviceutil.RestartService(constants.SERVICE_NAME)
    except Exception as ee:
        print_log("Restart of service failed" + repr(ee), traceback=ee,
                  level=constants.LEVEL_ERROR, delay=False)

Я получаю следующую ошибку:

error(5, 'OpenSCManager', 'Access is denied.')

Как перезапустить службу, не сталкиваясь с ошибками привилегий? Я открыт для установки службы с такими разрешениями и пробовал использовать util:PermissionEx. Мы заранее не знаем конкретного пользователя, который будет перезапускать службу. Это может быть любой пользователь.

...