我有一个调用powershell脚本并运行它的批处理文件。
Powershell.exe -ExecutionPolicy RemoteSigned -File %1
%1
参数是file_name.ps1
当我从本地驱动器运行它时,脚本运行良好。
但是,我将脚本移到了共享驱动器上运行,当我尝试从共享驱动器上运行该脚本时,它会在继续之前给出这种提示:
此问题是autosys必须绕过此提示,否则会给出错误。
但是,如果我在本地驱动器上运行脚本时却没有提示,为什么共享驱动器中甚至会有这个问题?我应该怎么解决呢?
我尝试在Powershell中传递Unblock-File -Path some_path
,但显然无法识别该cmdlet。
答案 0 :(得分:0)
好吧,因此在无法加载文件的区域标识之后,我尝试按如下所示绕过策略:
Powershell.exe -ExecutionPolicy ByPass -File %1
这使它起作用了。...代替了RemoteSigned / Unrestricted ...
RemoteSigned :脚本可以运行。
需要来自受信任的发布者的数字签名,包括脚本和 从Internet下载的配置文件(包括 电子邮件和即时消息传递程序。
在您编写的脚本上不需要数字签名 在本地计算机上(而不是从Internet下载)。
运行从Internet下载且未签名的脚本(如果有) 脚本已被解除阻止,例如使用Unblock-File cmdlet。
不受限制::可以运行未签名的脚本。 (这可能会导致恶意运行 脚本。)
在运行脚本和配置文件之前警告用户 从Internet下载。
但是我的脚本是从一个驱动器本地复制到另一个驱动器,而不是从Internet下载的...并且在文件属性中,没有“取消阻止”按钮,并且无论如何,Unblock cmdlet都无法为我工作。
因此,为了避免警告,唯一起作用的是ByPass
绕过:没有任何障碍,也没有警告或提示。