Сценарий PowerShell для перезапуска службы - PullRequest
4 голосов
/ 14 мая 2010

Моя задача - нажать последовательность клавиш, например Ctrl + Shift + R , чтобы перезапустить службу Windows.

У меня есть скрипт, который отлично работает в PowerShell ISE при запуске с правами администратора.

Когда я пытаюсь выполнить сценарий PowerShell, происходит сбой из-за недостаточных прав администратора. Это здорово, что я могу заставить его работать со старомодным bat-файлом, но не с PowerShell.

Корень проблемы в том, что ярлыки для скрипта PowerShell имеют серые поля «Административные привилегии». До сих пор ни один обходной путь не преодолел эту проблему привилегий.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 14 мая 2010

Один из подходов состоит в том, чтобы запустить в сеансе другой сеанс PowerShell с повышенными правами, например:

Start-Process PowerShell.exe -arg '-nologo -noprofile script.ps1' -verb runas

Это должно подтолкнуть к повышению уровня нового сеанса PowerShell. Я думаю, вы должны иметь возможность установить параметр -WindowStyle так, чтобы новое окно не появлялось (если вам нужно такое поведение). Обратите внимание, что вам нужно будет указать полный путь к существующему сценарию.

0 голосов
/ 14 мая 2010

Вы предлагаете, что вам не нравится решать эту проблему с помощью пакетного файла (например, net start), я думаю, потому что пакетные файлы по своей природе более ограничены, чем сценарии PowerShell. Что вы можете сделать, это обернуть ваш сценарий Ps в пакетный файл, тем не менее, для достижения вашей заявленной цели - запуска сценария powershell с сочетанием клавиш без проблем с правами доступа. Попробуйте это в командном файле:

 powershell set-executionpolicy remotesigned
 powershell myscript.ps1
...