как узнать, есть ли у меня привилегия SE_SHUTDOWN_NAME? - PullRequest
0 голосов
/ 20 мая 2019

Я хочу приостановить работу своего ПК (Windows 10 Pro) на определенное время с помощью планировщика заданий.На практике я запускаю командный файл, который в течение определенного времени приостанавливает работу ПК.Затем я должен запустить другой пакетный файл, который включит его.

Моя проблема в том, что эти команды не работают:

rundll32.exe powrprof.dll, SetSuspendState 0,1,0

и не по какой-либо ошибке.Я проверил Event Log Explorer, и он показывает мне только EventID 187 (ApiCallerNameLength) без активации EventID 42 (который должен активировать приостановку windows).

Я пытался различными способами решить проблему, но не смог понятьпочему это не сработало.

https://docs.microsoft.com/en-us/windows/desktop/api/powrprof/nf-powrprof-setsuspendstate

На мой взгляд, эта статья является проблемой привилегий.Вы можете мне помочь?

1 Ответ

0 голосов
/ 21 мая 2019

Вы можете проверить свои привилегии, используя whoami /priv, и вы должны увидеть что-то вроде:

Privilege Name                            Description                                                        State
========================================= ================================================================== ========
SeShutdownPrivilege                       Shut down the system                                               Disabled

Если привилегия указана в списке, это означает, что ваша учетная запись пользователя имеет привилегию.Он должен быть специально включен во время сценария, чтобы его можно было использовать:

Для выключения локального компьютера вызывающий поток должен иметь привилегию SE_SHUTDOWN_NAME,По умолчанию пользователи могут включить привилегию SE_SHUTDOWN_NAME на компьютере, на котором они зарегистрированы, а администраторы могут включить привилегию SE_REMOTE_SHUTDOWN_NAME на удаленных компьютерах.

Источник

Я не нашел простого пакетного решения для включения этой привилегии, но вы можете сделать то же самое, используя SysInternals 'psshutdown с опцией -d.

Решения PowerShell для этого, которые я обнаружил для изменения привилегий во время выполнения скрипта, не работали для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...