我正在运行以下命令(我能想出的最小的可重复示例):
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
厌倦了这个:
在所有情况下,结果都是一样的。
为什么以及如何诊断?
答案 0 :(得分:5)
我还注意到使用invoke-sqlcmd通过管道将invoke-sqlcmd命令链接在一起的问题。似乎解决问题的解决方法,将第一个命令的输出保存到变量,然后将管道输出保存到下一个invoke-sqlcmd调用。
$databases = Invoke-Sqlcmd "select * from sys.databases"
$databases | % { Invoke-Sqlcmd "select 1" }