使用System.Management.Automation.PSCredential仍遭PowerShell凭据弹窗
问题原因及解决办法
以下是可能导致PowerShell仍弹出凭据窗口的原因及对应解决方式:
语法错误导致参数未正确传递
你的代码中-SqlCredential $cred行末尾的反引号后未加空格,直接衔接下一行参数,PowerShell无法正确解析-SqlCredential的赋值,导致$cred未被正常传递给命令。
修正代码格式,确保每个换行的反引号前有空格,且反引号为该行最后一个字符:$server1 = Connect-DbaInstance ` -SqlInstance '192.168.0.61\TESTE2017' ` -SqlCredential $cred ` -TrustServerCertificate$cred变量未正确创建
先验证$cred变量是否有效:# 查看用户名 $cred.UserName # 查看密码(仅用于测试) $cred.GetNetworkCredential().Password如果输出的用户名不是
sa或密码不是teste,重新执行变量创建命令,确保无执行错误。SQL Server未启用混合身份验证模式
若目标SQL Server仅开启Windows身份验证,sa账号无法登录,即使提供凭据也会触发重新输入窗口。
登录SQL Server管理工具,检查并启用SQL Server和Windows身份验证模式,重启SQL Server服务后重试。SQL实例访问异常
确认目标实例192.168.0.61\TESTE2017拼写正确,服务器可正常访问,SQL Server服务已启动,且对应端口(默认实例1433,命名实例需确认端口)未被防火墙拦截。dbatools版本兼容问题
旧版本dbatools可能存在参数处理bug,更新到最新版本后重试:Update-Module -Name dbatools -Force
内容的提问来源于stack exchange,提问作者Astora
相关产品推荐
相关产品推荐

