如果我尝试更改执行策略,我会收到一条消息,说我无法修改注册表,因为我不是管理员。
似乎这应该是可能的,因为我可以运行批处理文件和其他.exe和.com程序。
答案 0 :(得分:13)
如果您的域管理员没有禁止它,您可以这样做:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
这会更改在当前用户下运行的PowerShell会话的默认执行策略,而不是为计算机上的所有用户设置它。
如果您只想更改当前PowerShell会话的执行策略,则可以使用此命令:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
但是,如果您的域管理员使用“Turn on Script Execution”组策略,则根本无法更改执行策略。组策略设置使Set-ExecutionPolicy cmdlet无效。
答案 1 :(得分:10)
您可以尝试设置流程本身的策略。
powershell.exe -ExecutionPolicy bypass
答案 2 :(得分:2)
怎么样
$script = Get-Content .\test.ps1
Invoke-Expression $script
答案 3 :(得分:2)
如果您希望有一种简单的方法从Windows shell运行脚本myscript.ps1
,那么您只需要一个具有以下内容的bat Runmyscript.bat
:
type myscript.ps1 | powershell -
这么简单,让我想知道你为什么不能首先运行ps1,但我们去了。
提示userinput键入脚本名称的通用版本为:
set /p filename="Type name of script here: "
type %filename% | powershell -
我想如果你愿意的话,你也可以编写一个通用的vbscript脚本,使用这个http://todayguesswhat.blogspot.co.uk/2012/08/windows-7-replacement-for.html
的对话框在powershell中打开任何文件答案 4 :(得分:0)
我在互联网上其他地方找到的第三种技术是使用
powershell.exe -EncodedCommand XXXXXXX
其中XXXXXXX是
的结果$code = {
#powershell script goes here.
}
}
[convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($code))
价: http://dmitrysotnikov.wordpress.com/2008/06/27/powershell-script-in-a-bat-file/