[英]Security Warning when running scripts - Unblock-File not unblocking file
在我的計算機上運行任何腳本時,我突然開始收到此警告:
僅運行您信任的腳本。 雖然來自 Internet 的腳本可能很有用,但此腳本可能會損害您的計算機...
截圖:
文件沒有被阻止。
我有
Unblock-File
cmdlet 來取消阻止。Get-Content -Path '\\\\Path\\Script.ps1' -Stream Zone.Identifier
。 未找到流。streams.exe -d \\\\Path\\Script.ps1
: streams.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.