如果我尝试更改执行策略,我会收到一条消息,指出我无法修改注册表,因为我不是管理员。
看起来这应该是可能的,因为我可以运行批处理文件和其他 .exe 和 .com 程序。
如果我尝试更改执行策略,我会收到一条消息,指出我无法修改注册表,因为我不是管理员。
看起来这应该是可能的,因为我可以运行批处理文件和其他 .exe 和 .com 程序。
如果您的域管理员没有禁止它,您可以这样做:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
这会更改在当前用户下运行的 PowerShell 会话的默认执行策略,而不是为计算机上的所有用户设置它。
如果您只想更改当前 PowerShell 会话的执行策略,可以使用以下命令:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
但是,如果您的域管理员使用“打开脚本执行”组策略,您将根本无法更改您的执行策略。组策略设置使Set-ExecutionPolicy cmdlet 无效。
您可以尝试设置流程本身的策略。
powershell.exe -ExecutionPolicy 绕过
如果您想有一种简单的方法myscript.ps1
从 Windows shell 运行脚本,那么您只需要一个Runmyscript.bat
包含以下内容的 bat:
type myscript.ps1 | powershell -
如此简单,这让我想知道为什么你不能一开始就运行 ps1,但我们开始了。
提示用户输入以键入脚本名称的通用版本将是:
set /p filename="Type name of script here: "
type %filename% | powershell -
我想如果你愿意,你也可以编写一个通用的 vbscript 脚本,使用这个http://todayguesswhat.blogspot.co.uk/2012/08/windows-7-replacement-for .html
how about
$script = Get-Content .\test.ps1
Invoke-Expression $script
我在互联网上其他地方找到的第三种技术是使用
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/