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

使用Get-StoredCredential连接SQL Server时类型转换错误如何解决

解决方案:用Get-StoredCredential创建SQL Server连接

报错的核心原因是类型不匹配:Get-StoredCredential 返回的是 System.Management.Automation.PSCredential 类型对象,而 SqlConnection.Credential 属性要求传入 System.Data.SqlClient.SqlCredential 类型对象,二者不能隐式转换。

你只需要将拿到的PSCredential对象转换为SqlCredential对象即可,修改后的完整可用代码如下:

# 1. 获取存储的凭据
$creds = Get-StoredCredential -Target dbStoredCredentials

# 2. 构造SqlConnection要求的SqlCredential对象
$sqlCred = New-Object System.Data.SqlClient.SqlCredential($creds.UserName, $creds.Password)

# 3. 创建SQL连接并配置参数
$newConnection = New-Object System.Data.SqlClient.SqlConnection
$newConnection.ConnectionString = "Data Source=my-apps-server;Initial Catalog=myDatabase;"
$newConnection.Credential = $sqlCred

# 测试连接(可选)
try {
    $newConnection.Open()
    Write-Host "连接成功"
    # 此处可添加后续数据库操作逻辑
}
catch {
    Write-Host "连接失败: $_"
}
finally {
    # 操作完成后关闭连接释放资源
    $newConnection.Dispose()
}

补充说明:

  • 如果你使用的是Windows域身份验证而非SQL Server独立身份验证,不需要单独配置Credential属性,直接在连接字符串中添加Integrated Security=True参数即可,此时会自动使用当前PowerShell进程的身份上下文登录数据库
  • 上述方案同时兼容PowerShell 5.1和PowerShell 7+版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:18:04