繁体   English   中英

为什么即使执行策略为RemoteSigned,我仍需要“ Unblock-File”?

[英]Why do I need “Unblock-File” even though execution policy is RemoteSigned?

我有一个调用powershell脚本并运行它的批处理文件。

Powershell.exe -ExecutionPolicy RemoteSigned -File %1

%1参数是file_name.ps1

当我从本地驱动器运行它时,脚本运行良好。

但是,我将脚本移到了共享驱动器上运行,当我尝试从共享驱动器上运行它时,在继续操作之前会给出以下提示:

Unblock_file提示

问题在于autosys必须绕过此提示,否则会给出错误信息。

但是,如果我在本地驱动器上运行脚本时却没有提示,为什么共享驱动器中甚至会有这个问题? 我应该怎么解决呢?

我尝试在Unblock-File -Path some_path中传递Unblock-File -Path some_path ,但显然无法识别该cmdlet。

好的,因此在无法加载文件的区域标识之后,我尝试按如下所示使用Bypass策略:

Powershell.exe -ExecutionPolicy ByPass -File %1

那使它起作用了。。。。而不是RemoteSigned / Unrestricted。

基于MSDN的文章, 网址为https : //docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_about_execution_policies?view=powershell-6

RemoteSigned:脚本可以运行。

需要从Internet上下载的脚本和配置文件(包括电子邮件和即时消息传递程序)上的可信赖发布者提供数字签名。

您在本地计算机上编写的脚本(不是从Internet下载的)上不需要数字签名。

运行脚本,这些脚本是从Internet下载的且未经签名的脚本(如果已解除阻止),例如使用Unblock-File cmdlet。

不受限制:可以运行未签名的脚本。 (这有运行恶意脚本的风险。)

在运行从Internet下载的脚本和配置文件之前警告用户。

但是我的脚本是从一个驱动器本地复制到另一个驱动器的,而不是从Internet下载的...在文件属性中,没有“取消阻止”按钮,并且无论如何我都无法取消阻止cmdlet。

因此,为了避免警告,唯一起作用的是ByPass

绕过:没有任何障碍,也没有警告或提示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM