我知道我可以为我自己的脚本设置 Powershell 凭据 Get-Credential。但是当我在PS终端使用下面的命令Get a SQL Server instance on a computer时:
Get-SqlInstance -Credential laptop-ql9k5dk6\david -ServerInstance "laptop-ql9k5dk6\sqlexpress2"
我预计我会被要求输入我的 Windows 密码。
这是我的想法:
通过 MS SQL Server Management Studio(使用 Windows 身份验证)登录到我的 SQL Server 实例 (
laptop-ql9k5dk6\david
) 使用我已经登录的状态。否则我需要我的 Windows 密码。
因为我的脚本要求
laptop-ql9k5dk6\david
的密码;我想这一定是我的 Windows 密码?
所以。为什么当我的 PowerShell 一行代码(如上所示)要求我输入密码时,我的 Windows 密码失败?
PowerShell credential request
Enter your credentials.
Password for user laptop-ql9k5dk6\david: **************
Get-SqlInstance: Failed to connect to server laptop-ql9k5dk6\sqlexpress2.
在 MSSM 上,我也可以通过 SQL 登录登录,但是用户名与上面的 Windows 身份验证用户不同。
注意:我当前的 Windows 密码是好的。我经常使用它而没有犯错误/留下 CAP 等。
密码不正确:一种可能是您输入了错误的密码。仔细检查以确保您输入的 Windows 帐户密码正确。
锁定帐户:如果您多次输入错误密码,您的帐户可能会被锁定。这会阻止您在解锁之前访问您的帐户。您可以按照系统管理员提供的步骤尝试解锁您的帐户。
密码过期:也可能是您的 Windows 密码已过期。在这种情况下,您需要重置密码才能登录。您可以按照系统管理员提供的步骤重置密码。
凭据管理器:如果您从不同的机器或域运行 PowerShell 脚本,您的 Windows 凭据可能无法识别。在这种情况下,您可以尝试将您的凭据存储在 Windows 凭据管理器中。您可以通过在命令提示符或 PowerShell 中运行 cmdkey 命令来执行此操作。
系统权限:如果您尝试运行需要提升权限的 PowerShell 脚本,您可能需要以管理员身份运行 PowerShell。右键单击 PowerShell 图标并选择“以管理员身份运行”。
$role = "sql"
$user = read-host "user for $role"
$pwd = read-host "password:" -AsSecureString
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $user, $pwd
Get-SqlInstance -Credential $cred -ServerInstance "laptop-ql9k5dk6\sqlexpress2"