运行脚本时的安全警告 - 取消阻止 - 文件未解锁文件

时间:2016-07-26 08:11:33

标签: security powershell powershell-ise

我在计算机上运行任何脚本时突然开始收到此警告:

  

仅运行您信任的脚本。虽然来自互联网的脚本很有用,但这个脚本可能会损害您的计算机......

截图:

Powershell Security Warning

文件未被阻止。

我有

  • 在文件浏览器中检查>属性。
  • 也使用Unblock-File cmdlet取消阻止。
  • 使用cmdlet检查了流:Get-Content -Path '\\Path\Script.ps1' -Stream Zone.Identifier。没有找到Streams。
  • 使用了来自Sysinternals的Streams.exe:streams.exe -d \\Path\Script.ps1。找不到包含流的文件。

还尝试使用Powershell删除流:

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

当然没有成功,因为没有流。

执行政策不受限制。

当我运行Set-ExecutionPolicy Bypass时,它会在没有警告的情况下运行。 但是,它应该在不受限制的情况下起作用。

老实说,我不知道发生了什么。

4 个答案:

答案 0 :(得分:2)

搜索后我找到了一个有类似问题的人,并解释说经典UNC路径可以正常工作,而不会提示解锁文件:

\\Servername\Path...

但是,默认情况下,FQDN路径不会被视为安全路径,并会提示:

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

我自己的测试证实这是正确的,因为从路径中删除.foo.local会导致Unblock-File提示停止。

答案 1 :(得分:1)

LGPE> gpedit.msc

  

计算机配置>管理模板,> Windows组件,> Internet Explorer>展开Internet控制面板。   安全页面> Intranet站点:包括未在其他区域中列出的所有本地(Intranet)站点,然后单击“属性”。   单击“已启用”。

     

打开Intranet的自动检测,然后单击“属性”。   单击“已禁用”,然后单击“确定”。

或注册表

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

答案 2 :(得分: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 Sites: Include all local (intranet) sites not listed in other zones

答案 3 :(得分:-3)

PS默认情况下不允许Scripts在系统ENV上运行。 您需要将策略设置为不受限制或远程签名 使用: Set-ExecutionPolicy Remotesigned         要么 Set-ExecutionPolicy Unrestricted

打开PS控制台并输入,然后按Enter键,然后尝试运行脚本。