Этот ответ будет охватывать остановку процесса для пользователя. Это также позволит вам выполнить шаги для запуска службы в соответствии с запросом, используя runas
команду (при условии, что учетная запись «без прав администратора» авторизована для выполнения Powershell / CMD)
Если вы используете локальный ПК (например, вы не являетесь членом домена), вы можете реализовать «Расписание задач» для входа в систему и выполнить от имени другого пользователя, что можно объяснить здесь . Если вы укажете «запускать от имени другого пользователя и обладаете наивысшими привилегиями», вы сможете редактировать службу при запуске.
Если это слишком сложно (или пользователь, входящий в систему на ПК, является администратором), вы можете повысить уровень сценария PowerShell для запуска в качестве администратора:
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { $arguments = "& '" + $myinvocation.mycommand.definition + "'" Start-Process powershell -Verb runAs -ArgumentList $arguments Break }
Примечание . Я знаю, что вы сказали, что пользователь не является администратором, но это может помочь другим, поэтому я и добавил его.
Если мы реально ленивы, мы могли бы использовать runas
команду в / пакетном сценарии PowerShell, который мы хотим реализовать, однако будет необходимо хранить учетные данные в безопасном процессе (как, не обычный текст).
Редактор локальной групповой политики
Просто добавьте сценарий запуска / завершения работы на стороне компьютера, чтобы вызвать и остановить службу:
runas
запуститьgpedit.msc
файл;- Конфигурация компьютера, настройки Windows, сценарии (запуск / выключение)
Добавьте предопределенный скрипт для выполнения файла:
runas.exe /user:localhost\Admnistrator net start synergy