Powershell,无法加载SqlCredential

时间:2013-06-09 20:19:35

标签: .net sql-server powershell

我是PowerShell的新手,我正在尝试执行SQL查询的简单脚本。它在我的Windows 8机器(PS 3.0)上工作正常,但在客户端机器上却没有(2008R2,PS 2.0) - 我在这一行上得到例外:

$credentials = New-Object System.Data.SqlClient.SqlCredential -argumentlist $user, $password

New-Object : Cannot find type [System.Data.SqlClient.SqlCredential]: make sure the assembly containing this type is loaded.

两台机器都安装了.NET 2.0-4.0。

有关如何调试和修复此问题的任何建议都将不胜感激。

另外,我怎么知道哪个汇编文件/ dll定义了给定的类型?例如,如何找到包含System.Data.SqlClient.SqlCredential的DLL的完整路径(我在Windows 8计算机上的GAC中看不到System.Data.SqlClient,但它在那里工作...)?< / p>

谢谢!

2 个答案:

答案 0 :(得分:0)

你说机器安装了.NET 2.0-4.0。但是,在.NET 4.5中引入了类SqlCredential

http://blogs.msdn.com/b/adonet/archive/2012/03/09/safer-passwords-with-sqlcredential.aspx

也许这就是问题呢?也许Win8安装了它?

答案 1 :(得分:0)

我相信你可以下载.Net 4.5。我相信这会解决你的问题    在我目前的工作中,我无法升级.Net,因为我正在编写在服务器上远程运行的Powershell脚本,其中一些可能没有最新版本的.Net。例如,我不能使用System.Data.sqlclient.SqlQuery,因为即使加载了大部分System.Data.SqlClient程序集,System.Data.sqlclient.SqlQuery的类也不是该程序集的一部分。太糟糕了,因为许多使用DataAdapter的示例脚本引用了.NetQuery类,它位于.Net 4.5中。