Учетные данные не работают - PullRequest
1 голос
/ 23 марта 2012

Я пытаюсь использовать учетные данные в скрипте powershell. Я попробовал:

$credential = Get-Credential

и

$credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "Domain")

Но когда я выполняю запрос, я получаю следующее сообщение:

Invoke-SqlQuery -Query $Query -Server $SERVER -database $DataBase -credential $credential 
Exception calling "Open" with "0" argument(s): "Login failed for user '\sa'."
\Modules\InvokeSqlQuery\InvokeSqlQuery.psm1:155 char:14
+     $cnn.Open <<<< ();
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

Даже если я использую правильные учетные данные, произойдет сбой. У кого-нибудь была такая же проблема? Invoke-SqlQuery вызывает

$cnn = New-SqlConnection $Server $Database $Credential $ConnectionTimeout

, который создает ошибку.

Кстати, хотелось бы узнать, как загрузить эту сборку:

new-object [System.Management.Automation.PSCredential]
New-Object : Cannot find type [[System.Management.Automation.PSCredential]]: make sure the assembly containing this type is loaded.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 23 марта 2012

Чтобы ответить на ваш второй вопрос :-), сборка, содержащая PSCredential, уже загружена.Это сборка, необходимая для PowerShell.Попробуйте это:

$username = ConvertTo-SecureString username -AsPlainText -Force
$password = ConvertTo-SecureString pass!word -AsPlainText -Force
$cred = new-object management.automation.pscredential $username,$password
0 голосов
/ 24 марта 2012

попробуйте это (PsSnapin: SqlServerCmdletSnapin100):

$pwd = read-host -AsSecureString -Prompt "Password"

Invoke-Sqlcmd -Query $Query -Serverinstance $SERVER -database $DataBase –Username “MyLogin” –Password $pwd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...