2016-01-22 7 views
0

У меня есть некоторые проблемы с классом System.Data.SqlClient.SqlCredential. Я пытаюсь создать объект в PowerShell с помощью этогоSystem.Data.SqlClient.SqlCredential issue

cls; 
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Data"); 
$creds = New-Object System.Data.SqlClient.SqlCredential; 

Но я получаю сообщение об ошибке

New-Object : Конструктор не найден. Не удается найти соответствующий конструкто 
р для типа System.Data.SqlClient.SqlCredential. 
строка:3 знак:10 
+ $creds = New-Object System.Data.SqlClient.SqlCredential; 
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : ObjectNotFound: (:) [New-Object], PSArgumentExce 
    ption 
    + FullyQualifiedErrorId : CannotFindAppropriateCtor,Microsoft.PowerShell.C 
    ommands.NewObjectCommand 

Перевод этого сообщения об ошибке выглядит следующим образом:

Конструктор не может быть найденным. Невозможно найти подходящий конструктор для типа.

Я прочитал технику и узнал, что класс System.Data.SqlClient.SqlCredential содержится в System.Data (System.Data.dll).

Но я попытался загрузить эту сборку, как вы видите из предыдущего примера. Я использую Windows 7, PowerShell 4.0. У меня установлен .NET Framework 4.6.1. Я буду очень признателен за любую помощь.

Я пытался использовать кончик GodEater предложил мне, но все же получить сообщение об ошибке

cls; 

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Data"); 

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection; 
$SqlConnection.ConnectionString = "Server=192.168.1.220,1433;Database=Archimed;"; 
$creds = New-Object System.Data.SqlClient.SqlCredential` 
((Read-Host -AsSecureString), (Read-Host -AsSecureString)); 
$SqlConnection.Credential = $creds; 

$SqlConnection.Open(); 
$SqlConnection.Close(); 

Сообщение об ошибке, как это

New-Object : Не удается найти тип [System.Data.SqlClient.SqlCredential]: убедит 
есь в том, что сборка, содержащая этот тип, загружена. 
строка:7 знак:10 
+ $creds = New-Object System.Data.SqlClient.SqlCredential` 
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidType: (:) [New-Object], PSArgumentExcepti 
    on 
    + FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewOb 
    jectCommand 

System.Security.SecureString 
System.Security.SecureString 
Исключение при вызове "Open" с "0" аргументами: "Ошибка входа пользователя ""." 
строка:11 знак:1 
+ $SqlConnection.Open(); 
+ ~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : SqlException 

Переводы выглядит следующим образом:

Невозможно найти тип [System.Data.SqlClient.SqlCredential]: убедитесь, что сборка, которая содержит этот тип, загружена

Исключение при вызове «Открыть» из аргумента «0»: «Ошибка входа для пользователя». »

Я использовал sa и 1 для пользователя и прошел.

+0

Конструктор не берет защищенные строки, он принимает открытый текст. – GodEater

+0

Кроме того, ваша вторая попытка потерпела неудачу, потому что вы не загрузили сборку во второй раз. – GodEater

ответ

0

Из того, что я могу сказать, что конструктор для этого типа требуется идентификатор пользователя и пароль - вы не можете создать его без указания их - так что вы должны были бы назвать его так:

$creds = New-Object System.Data.SqlClient.SqlCredential('UserName','Password') 

Очевидно, заменив их фактическим именем пользователя и паролем.

+0

Я пробовал свой путь, но все еще есть ошибка. – KennyMacCormik

 Смежные вопросы

  • Нет связанных вопросов^_^