PowerShell的Set-ExecutionPolicy命令被禁止,所以我不能这样运行:
PS> .\script.ps1 (enter)
Run Code Online (Sandbox Code Playgroud)
除了"Windows PowerShell ISE"之外,还有其他方法可以运行PowerShell脚本吗?
PS:我能够使用Java的ProccessBuilder来运行单个PowerShell命令,但不知道如何运行整个脚本.
jta*_*orn 62
这是我们用来从Java运行PowerShell脚本的方法(无论执行策略如何都有效):
powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File <script_name>
Run Code Online (Sandbox Code Playgroud)
在最简单的解决这个最愚蠢的办法就是:
gc .\script.ps1 | iex
Run Code Online (Sandbox Code Playgroud)
这适用于PowerShell,并不关心ExecutionPolicy.只要确保你对新行很小心.保持{}s和类似的在同一条线上,;在需要的地方使用s.
Oisin Grehan在他的博客上有一篇有趣的帖子,提供了另一种绕过执行政策的方法.打开一个shell并运行它:
function Disable-ExecutionPolicy {
($ctx = $executioncontext.gettype().getfield(
"_context", "nonpublic,instance").getvalue(
$executioncontext)).gettype().getfield(
"_authorizationManager", "nonpublic,instance").setvalue(
$ctx, (new-object System.Management.Automation.AuthorizationManager
"Microsoft.PowerShell"))
}
Disable-ExecutionPolicy
Run Code Online (Sandbox Code Playgroud)
这将删除默认的主机授权管理器,该管理器允许您从该shell调用脚本.您必须为打开的每个shell运行此命令,因为执行策略仅在运行它的shell中被覆盖.
| 归档时间: |
|
| 查看次数: |
66694 次 |
| 最近记录: |