You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Invoke-WebRequest被防火墙拦截,如何排查PowerShell网络访问权限?

PowerShell网络访问问题解答

1. Invoke-WebRequest是否使用独立可执行文件?

不是。Invoke-WebRequest是PowerShell内置的cmdlet,直接运行在pwsh.exe进程内部,没有独立的可执行文件,所有网络请求都会以pwsh.exe的身份发起。

2. 如何确认PowerShell可正常访问互联网?

可以通过以下几种方式验证:

  • 用Invoke-WebRequest测试公开的HTTP/HTTPS端点,比如:
    Invoke-WebRequest -Uri https://www.google.com -UseBasicParsing
    
    若返回网页内容或状态码200,则说明HTTP访问正常。
  • 用Invoke-RestMethod测试API接口,比如:
    Invoke-RestMethod https://api.github.com/zen
    
    能返回随机格言即表示REST请求正常。
  • 查看PowerShell进程的网络连接:先通过Get-Process pwsh获取PID,再执行:
    netstat -ano | findstr "<PID>"
    
    检查是否有建立成功的TCP连接。
  • 查看Windows防火墙日志:在防火墙高级设置中启用“出站连接”日志,执行Invoke-WebRequest后查看日志,确认是否有被拦截的记录。

3. Test-Connection成功不代表PowerShell未被防火墙拦截

Test-Connection(即ping)使用的是ICMP协议,而Invoke-WebRequest依赖TCP协议(80/443端口)。防火墙可能允许ICMP出站,但拦截了TCP 80/443的出站请求,这就会出现ping通但网页请求失败的情况。

额外排查建议

你已经为pwsh.exe添加了防火墙规则,可能需要检查:

  • 规则是否设置为允许出站连接(默认可能是入站,无实际作用)
  • 规则是否覆盖了所有必要的端口(至少要包含80和443)
  • 规则的优先级是否足够高,没有被其他更严格的拦截规则覆盖

内容的提问来源于stack exchange,提问作者Ralf_Reddings

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:12:05