Как запустить сценарии powershell без прав администратора?
Если я пытаюсь изменить политику выполнения, я получаю сообщение о том, что я не могу изменить реестр, потому что я не администратор.
кажется, что это должно быть возможно, так как я могу запускать пакетные файлы и другие .exe и .программы com.
5 ответов
вы можете попробовать и установить политику самого процесса.
powershell.ехе -параметра ExecutionPolicy обход
Если ваш администратор домена не запретил это, вы можете сделать следующее:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
это изменяет политику выполнения по умолчанию для сеансов PowerShell, выполняемых текущим пользователем, а не для всех пользователей на компьютере.
Если вместо этого вы хотите изменить политику выполнения только для текущего сеанса PowerShell, вы можете использовать следующую команду:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
однако, если ваш администратор домена использует "включить сценарий Казнь" групповая политика, вы не сможете изменить свою политику выполнения вообще. Параметр групповой политики делает Набор-Параметра ExecutionPolicy командлет неэффективными.
если вы хотите иметь простой способ запустить скрипт myscript.ps1
из оболочки Windows, то все что вам нужно-это летучая мышь Runmyscript.bat
следующего содержания:
type myscript.ps1 | powershell -
так просто, что заставляет меня задуматься, почему вы не можете просто запустить ps1 в первую очередь, но там мы идем.
универсальная версия, которая запрашивает userinput для ввода имени скрипта, будет:
set /p filename="Type name of script here: "
type %filename% | powershell -
Я полагаю, если вы хотите, вы также можете написать общий скрипт vbscript, который открывает любой файл в powershell с помощью диалогового окна http://todayguesswhat.blogspot.co.uk/2012/08/windows-7-replacement-for.html
третий метод я нашел в другом месте в интернете, чтобы использовать
powershell.exe-EncodedCommand XXXXXXX
где XXXXXXX является результатом
$code = {
#powershell script goes here.
}
}
[convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($code))
Ref: http://dmitrysotnikov.wordpress.com/2008/06/27/powershell-script-in-a-bat-file/