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

PowerShell Invoke-RestMethod遇403禁止错误,CMD Curl正常求助

PowerShell Invoke-RestMethod 403 Forbidden 问题排查与解决

问题场景

使用PowerShell的Invoke-RestMethod执行GET请求时返回403 Forbidden错误,但相同参数的CMD curl命令可正常运行。同时在PS 5.1中尝试使用-SkipCertificateCheck参数时提示参数不存在。

PowerShell报错命令及结果

PS C:\Windows\system32> Invoke-RestMethod -Uri 'https://XXXXXXXXXXXXXXX.XXXX.XXX/YYYYY/ZZZZ/AAAA/BBBBB' -Method Get -Headers @{ 
'Cookie' = 'AuthToken=XXXXXXXXXXXXXXXXXXXXXXXXX;' 
'Referer' = 'https://XXXXXXXXX.XXXXX.XXXX/YYYYY/ZZZZZ/CCCCCC'} 

Invoke-RestMethod : The remote server returned an error: (403) Forbidden. At line:1 char:1 + Invoke-RestMethod -Uri 'https://XXXXXXXXX.XXXXXX.XXXX/YYYYY/ZZZZZ/AAA ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

可正常运行的CMD Curl命令

curl -i -k -X GET https://XXXXXXXXXXXXXXX.XXXX.XXX/YYYYY/ZZZZ/AAAA/BBBBB -H "Cookie: AuthToken=XXXXXXXXXXXXXXXXXXXXXXXXX;" -H "Referer: https://XXXXXXXXX.XXXXX.XXXX/YYYYY/ZZZZZ/CCCCCC"

PowerShell版本

PS C:\Windows\system32> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      22621  2506

额外错误信息

尝试添加-SkipCertificateCheck参数时的报错:

PS C:\Windows\system32> Invoke-RestMethod -Uri 'https://XXXXXXXXXXXXXXX.XXXX.XXX/YYYYY/ZZZZ/AAAA/BBBBB' -Method Get -Headers @{ 
'Cookie' = 'AuthToken=XXXXXXXXXXXXXXXXXXXXXXXXX;' 
'Referer' = 'https://XXXXXXXXX.XXXXX.XXXX/YYYYY/ZZZZZ/CCCCCC'}  -SkipCertificateCheck

Invoke-RestMethod : A parameter cannot be found that matches parameter name 'SkipCertificateCheck'.
At line:3 char:72
+ ... //XXXXXXXXX.XXXXX.XXXX/YYYYY/ZZZZZ/CCCCCC'}  -SkipCertificateCheck
+                                                     ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Invoke-RestMethod], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

解决方法

1. 处理证书验证问题(替代-SkipCertificateCheck)

PowerShell 5.1没有-SkipCertificateCheck参数,该参数是PowerShell 7+才引入的。而你的curl命令用了-k跳过证书验证,所以PS端需要手动禁用证书校验:

# 临时禁用证书验证
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}

# 执行请求
Invoke-RestMethod -Uri 'https://XXXXXXXXXXXXXXX.XXXX.XXX/YYYYY/ZZZZ/AAAA/BBBBB' -Method Get -Headers @{ 
    'Cookie' = 'AuthToken=XXXXXXXXXXXXXXXXXXXXXXXXX;' 
    'Referer' = 'https://XXXXXXXXX.XXXXX.XXXX/YYYYY/ZZZZZ/CCCCCC'
}

# 恢复证书验证(可选但推荐)
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = $null

2. 统一请求头(尤其是User-Agent)

Invoke-RestMethod默认的User-Agent和curl不同,部分服务器会校验这个字段。可以手动添加和curl一致的User-Agent:

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}

Invoke-RestMethod -Uri 'https://XXXXXXXXXXXXXXX.XXXX.XXX/YYYYY/ZZZZ/AAAA/BBBBB' -Method Get -Headers @{ 
    'Cookie' = 'AuthToken=XXXXXXXXXXXXXXXXXXXXXXXXX;' 
    'Referer' = 'https://XXXXXXXXX.XXXXX.XXXX/YYYYY/ZZZZZ/CCCCCC'
    'User-Agent' = 'curl/7.88.1' # 替换为你实际的curl版本,可通过curl -V查看
}

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = $null

3. 调整Cookie格式

尝试去掉Cookie值末尾的分号,部分服务器对Cookie格式敏感:

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}

Invoke-RestMethod -Uri 'https://XXXXXXXXXXXXXXX.XXXX.XXX/YYYYY/ZZZZ/AAAA/BBBBB' -Method Get -Headers @{ 
    'Cookie' = 'AuthToken=XXXXXXXXXXXXXXXXXXXXXXXXX' # 去掉末尾的分号
    'Referer' = 'https://XXXXXXXXX.XXXXX.XXXX/YYYYY/ZZZZZ/CCCCCC'
    'User-Agent' = 'curl/7.88.1'
}

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = $null

关键说明

  • PowerShell 5.1基于HttpWebRequest,而PowerShell 7+使用HttpClient,两者的默认行为和参数差异较大,-SkipCertificateCheck仅在7+版本可用。
  • 服务器返回403通常是因为请求头不匹配、证书验证失败或权限校验问题,优先排查这几个方向。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:02:40