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

使用PowerShell的-UseDefaultCredentials认证URL遇404问题求助

关于PowerShell使用默认凭据认证返回404的问题解决

嘿,兄弟,作为论坛和PowerShell新手碰到这种问题太正常了,别担心,咱们一步步来捋清楚~

首先,先看你遇到的404响应,这个状态码最常见的原因是目标URL不存在或者路径有误,但结合你要做的认证操作,也有可能是权限不足导致被服务器重定向到了一个不存在的页面,咱们先从代码和配置两方面来解决:

问题1:你的代码没正确设置默认凭据

你用的是.NET的HttpWebRequest类,这个类并不支持PowerShell cmdlet里的-UseDefaultCredentials参数,得手动设置凭据属性才行。修正后的代码应该是这样:

$URI='http://www.example.com'
try {
    $HttpWebResponse = $null
    $HttpWebRequest = [System.Net.HttpWebRequest]::Create($URI)
    # 手动设置默认凭据
    $HttpWebRequest.Credentials = [System.Net.CredentialCache]::DefaultCredentials
    $HttpWebResponse = $HttpWebRequest.GetResponse()
    if ($HttpWebResponse) {
        Write-Host "状态码:" $HttpWebResponse.StatusCode.value__
        Write-Host "状态描述:" $HttpWebResponse.StatusDescription
    }
}
catch {
    # 捕获异常,看看具体错误信息
    Write-Host "请求出错:" $_.Exception.Message
    if ($_.Exception.Response) {
        Write-Host "响应状态码:" $_.Exception.Response.StatusCode.value__
    }
}
finally {
    # 记得关闭响应对象,释放资源
    if ($HttpWebResponse) { $HttpWebResponse.Close() }
}

问题2:推荐用更简单的PowerShell cmdlet

其实PowerShell自带的Invoke-WebRequest已经封装了这些操作,直接用-UseDefaultCredentials参数就行,代码更简洁,也更容易调试:

$URI='http://www.example.com'
try {
    $response = Invoke-WebRequest -Uri $URI -UseDefaultCredentials
    Write-Host "状态码:" $response.StatusCode
}
catch {
    Write-Host "请求出错:" $_.Exception.Message
    if ($_.Exception.Response) {
        Write-Host "响应状态码:" $_.Exception.Response.StatusCode.value__
    }
}

额外排查点

  • 先确认你的URL绝对正确:比如是不是少了路径(比如http://www.example.com/api/data而不是根域名),或者域名拼写错误?
  • 如果URL没问题,试试在浏览器里用当前账号访问这个地址,看看能不能打开——如果浏览器也返回404,那就是服务器端的问题;如果浏览器能打开,再检查凭据设置是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:33:06