下载的文件被标记为来自互联网。您需要解除对它们的阻止。为此,请使用内置 cmdlet。
# Get specifics for a module, cmdlet, or function
(Get-Command -Name Unblock-File).Parameters
(Get-Command -Name Unblock-File).Parameters.Keys
Get-help -Name Unblock-File -Examples
# Results
<#
Unblock-File -Path C:\Users\User01\Documents\Downloads\PowerShellTips.chm
dir C:\Downloads\*PowerShell* | Unblock-File
Get-Item * -Stream "Zone.Identifier" -ErrorAction SilentlyContinue
C:\ps-test\Start-ActivityTracker.ps1
Get-Item C:\ps-test\Start-ActivityTracker.ps1 | Unblock-File
#>
Get-help -Name Unblock-File -Full
Get-help -Name Unblock-File -Online
您使用的任何脚本都将被查看它正在执行的操作。如果您的 AV 解决方案(尽管有 Windows Defender)在任何时候似乎正在做意外/邪恶的事情,它将对其采取措施。这与它们是否签名或您设置的 ExecutionPolicy 无关。
EP = 仅表示允许脚本运行,而不是控制脚本执行/将要执行的操作,并且 EP 不是安全边界,如帮助文件中所述。
解锁文件模块:Microsoft.PowerShell.Utility
取消阻止从 Internet 下载的文件。
这都与 Windows ADS 有关。
'windows 备用数据流下载文件'
### Detecting Alternate Data Streams with PowerShell and DOS
dir /s /r | find ":DATA"
Get-Item –Path 'C:\users\me\desktop\*' -Stream *
Get-Content –Path 'C:\users\me\some_file.exe' -Stream zone.identifier
# Results
<#
[ZoneTransfer]
ZoneId=3
1
2
#>
通过区域 3 下载的文件,我们现在知道这是 Internet 区域,如下图所示。
数值设定
- 0 我的电脑
- 1 个本地 Intranet 区域
- 2 受信任的站点区域
- 3 互联网专区
- 4 限制站点区域
或使用 MS SysInternals:streams.exe