Я использую пример, чтобы ограничить все, кроме одного порта для конкретной службы Windows. Я взял пример с MSDN и попробовал это для службы Windows OpenVPN. В основном я только что отредактировал эти две строки:
BSTR bstrServiceName = SysAllocString(L"OpenVPNServiceInteractive");
BSTR bstrAppName = SysAllocString(L"C:\\Program Files\\OpenVPN\\bin\\openvpnserv.exe");
Поскольку ему нужно короткое имя, а не отображаемое имя, я сделал sc query
в моей консоли и нашел для OpenVPNServiceInteractive, но когда я запускаю, он не находит короткое имя службы (он не обрабатывает дескриптор и говорит: Сбой RestrictService: убедитесь, что вы указали действительное короткое имя службы)
Так что в принципе не удается найти короткое имя службы, которое я указал. Распечатывает ли (sc query) реальное короткое имя службы? Почему это не находит это?
Не удалось ограничить службу, потому что мне не хватало прав администратора. Запустил его как администратор и работал.
Других решений пока нет …