簡體   English   中英

運行腳本時的安全警告 - Unblock-File not unblocking file

[英]Security Warning when running scripts - Unblock-File not unblocking file

在我的計算機上運行任何腳本時,我突然開始收到此警告:

僅運行您信任的腳本。 雖然來自 Internet 的腳本可能很有用,但此腳本可能會損害您的計算機...

截圖:

Powershell 安全警告

文件沒有被阻止。

我有

  • 在文件資源管理器> 屬性中檢查。
  • 也使用Unblock-File cmdlet 來取消阻止。
  • 使用 cmdlet 檢查流: Get-Content -Path '\\\\Path\\Script.ps1' -Stream Zone.Identifier 未找到流。
  • 使用來自 Sysinternals 的streams.exe -d \\\\Path\\Script.ps1streams.exe -d \\\\Path\\Script.ps1 未找到包含流的文件。

還嘗試使用 Powershell 刪除流:

Remove-Item -Path \\Path\Script.ps1 -Stream Zone.Identifier

當然沒有成功,因為沒有流。

執行政策不受限制。

當我運行 Set-ExecutionPolicy Bypass 時,它可以在沒有警告的情況下工作。 但是,它也應該在不受限制的情況下工作。

老實說,我不知道發生了什么。

搜索后,我發現有人有類似問題,並解釋說經典 UNC 路徑可以在不提示取消阻止文件的情況下工作:

\\Servername\Path...

但是,默認情況下 FQDN 路徑不被視為安全,並且會提示:

\\Servername.foo.local\Path...

我自己的測試證實這是正確的,因為從路徑中刪除.foo.local會導致Unblock-File提示停止。

LGPE > gpedit.msc

計算機配置 > 管理模板 > Windows 組件 > Internet Explorer > 展開 Internet 控制面板。 安全頁面 > Intranet 站點:包括所有未在其他區域中列出的本地(Intranet)站點,然后單擊屬性。 單擊已啟用。

打開內網自動檢測,然后單擊“屬性”。 單擊禁用,然后單擊確定。

或注冊

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\"UNCAsIntranet" = "0"

將所有本地站點視為 Intranet 區域的一部分的正確注冊表項、名稱和值是:

Keys:

HKLM\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap
HKCU\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap

Name:  IntranetName
Type:  DWORD
Value: 1

您可以通過 PowerShell 為本地計算機(在提升的提示中)進行設置,如下所示:

Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap" -Name "IntranetName" -Type DWord -Value 1

有關組策略的詳細信息,請參閱Intranet 站點:包括未在其他區域中列出的所有本地(Intranet)站點

PS 默認不允許腳本在系統 ENV 上運行。 您需要將策略設置為不受限制或遠程簽名使用: Set-ExecutionPolicy Remotesigned OR Set-ExecutionPolicy Unrestricted

打開 PS 控制台並鍵入此內容並按 Enter,然后嘗試運行您的腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM