我有一个Powershell脚本,它将运行sql命令并将结果作为数据集输出。
PowerShell:
(Invoke-Sqlcmd -ServerInstance $Server -Database 'STARS' -Username $Username -Password $Password -query $sqlCommand -OutputAs DataSet)
当我尝试运行脚本时出现以下错误。
Invoke-Sqlcmd : A parameter cannot be found that matches parameter name 'OutputAs'.
At D:\PipelinePowerShellScripts\UnitTests\Generate.Auth.Tokens.ps1:163 char:132
+ ... me $Username -Password $Password -query $sqlCommand -OutputAs DataSet ...
+ ~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-Sqlcmd], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
PowerShell版本:
主要,次要,修订版本
5.1.14409.1005
当我在本地运行该脚本时,如果运行没有问题。但是,尝试在Windows Server 2012 R2上运行此命令将返回上述错误。
答案 0 :(得分:0)
我遇到了同样的问题,因为该模块已完全为Powershell v5重写。
您需要在该服务器上运行get-help invoke-sqlcmd -full
才能查看该版本中的可用方法。
HERE-您可以更好地解释它(“两种产品”部分)
我认为最简单的方法是将服务器上的Powershell升级到5+并使用新的SQL模块。