powershell - 尝试下载 EXE 文件后,PowerShell (x64) 停止工作 (Windows 7)
问题描述
语境:
- 在 PowerShell v2.0 中找到了一个从 URL 下载文件的脚本(我使用的是 Windows 7)
PowerShell.exe -ExecutionPolicy Bypass -Command "(New-Object System.Net.WebClient).DownloadFile( 'site.com/file.txt', 'file.txt' )"
- 使用批处理文件
.bat
内联运行此脚本。 - 效果很好——适用于 zip 和图像!
问题:一旦我尝试.exe
从 URL 下载,批处理文件就会运行而不执行 Powershell 脚本。并且 Powershell.exe 在 Windows 7 中完全停止工作......
- 另一方面,Powershell (x86)仍然有效。
- 直接从文件夹打开 powershell.exe (x64):
C:\WINDOWS\system32\WindowsPowerShell\v1.0
只打开空白窗口并立即关闭 - 尝试使用
sfc /scannow
andDISM /Online /Cleanup-image /Restorehealth
,但它不起作用,因为 Windows 7 没有该选项 - 再次运行批处理脚本有效,但跳过了 powershell 部分
我相信它在重新启动后会再次工作(尚未正确测试),但我似乎无法在不重新启动的情况下让 Powershell (x64) 再次工作:/ 我什至不知道问题出在哪里,因为我不知道在哪里开始调试。
这个问题可能更适合superuser.com,但我先在这里问-感谢您的帮助:)
解决方案
正如@JCWasmx86 指出的那样,这确实是我的防病毒软件阻止了 Powershell。
我在不同状态下使用 Malwarebytes 和 Avast 对其进行了广泛的测试——关闭它们,然后一个接一个地打开它们,并在每次状态更改后运行我的脚本。事实证明,一旦启用 Avast,Powershell(x64 或默认的)在脚本执行后会被静默阻止,并一直处于非活动状态,直到重新启动或经过足够的时间。
这只发生在.exe
文件上。Avast 不得喜欢从 Internet 下载未经验证的 exe 文件的脚本。