为何Windows密码在PowerShell的Get-SqlInstance凭据请求中失效?
问题分析:Get-SqlInstance用Windows凭据连不上SQL Server但SSMS可以的原因
核心问题:参数用途误解
Get-SqlInstance的-Credential参数不支持Windows身份认证,它是专门给SQL Server登录账号(而非Windows本地/域账号)设计的。
具体原因拆解
参数逻辑不匹配:
SSMS的Windows认证是通过SSPI协议直接传递当前系统的Windows身份,不需要手动输入密码;而你用-Credential传递laptop-ql9k5dk6\david这种Windows格式账号时,SqlServer模块会把它当作SQL登录账号去验证——但你明确说SQL登录用户名和这个Windows用户不同,所以SQL Server里根本没有对应这个名字的SQL登录,自然验证失败,哪怕密码正确也没用。Windows认证的正确姿势:
如果要使用Windows身份认证连接,直接去掉-Credential参数即可:Get-SqlInstance -ServerInstance "laptop-ql9k5dk6\sqlexpress2"这条命令会自动用当前终端运行的Windows身份(也就是
laptop-ql9k5dk6\david)去连接,和SSMS的Windows认证逻辑完全一致。
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

