如何从Invoke-Sqlcmd诊断此异常?

时间:2013-08-06 04:18:45

标签: powershell powershell-v3.0 sqlps

我正在运行以下命令(我能想出的最小的可重复示例):

Invoke-Sqlcmd "select * from sys.databases"  | %{
    Invoke-Sqlcmd "select 1"     
}

我收到以下错误:

  

Invoke-Sqlcmd:找不到任何适合的资源   特定文化或中性文化。确保   “pipeline.resources”已正确嵌入或链接到程序集中   编译时“System.Management.Automation”,或者说全部   所需的卫星组件可加载并完全签名。在线:1   焦炭:1   + Invoke-Sqlcmd“select * from sys.databases”| %{   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:InvalidResult:(:) [Invoke-Sqlcmd],MissingManifestResourceException       + FullyQualifiedErrorId:ExecutionFailed,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

厌倦了这个:

  • 使用ISE和命令行
  • 都提升(“以管理员身份运行”)而不是
  • 针对SQL 2012和SQL 2008
  • 来自Windows 8和来自Server 2008

在所有情况下,结果都是一样的。

为什么以及如何诊断?

1 个答案:

答案 0 :(得分:5)

我还注意到使用invoke-sqlcmd通过管道将invoke-sqlcmd命令链接在一起的问题。似乎解决问题的解决方法,将第一个命令的输出保存到变量,然后将管道输出保存到下一个invoke-sqlcmd调用。

$databases = Invoke-Sqlcmd "select * from sys.databases"  
$databases | % { Invoke-Sqlcmd "select 1" }