簡體   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