2016-01-22 22 views
0

我对System.Data.SqlClient.SqlCredential类有一些问题。我尝试通过使用此System.Data.SqlClient.SqlCredential问题

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

建立在PowerShell中的对象,但我得到这个错误信息

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 

此错误消息的翻译如下:

的构造不能被发现。无法找到类型的适当构造函数。

我读了technet,发现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

从我可以告诉,该类型的构造函数需要一个用户ID和密码 - 你不能没有指定他们创造了 - 所以你需要调用它像这样:

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

显然用你的实际用户名和密码替换那些。

+0

我试过你的方式,但仍然有错误。 – KennyMacCormik