SQL Powershell错误:Invoke-Sqlcmd:术语' Invoke-Sqlcmd'不被识别为cmdlet的名称

时间:2018-02-05 12:45:23

标签: sql-server powershell

当我尝试运行powershell脚本时,我收到以下错误:

Invoke-Sqlcmd:术语' Invoke-Sqlcmd'不被识别为cmdlet,函数,脚本文件或可操作程序的名称。

所以在Powershell中我运行了以下内容:

install-module sqlserver
update-module sqlserver
import-module sqlserver

这一切都运行良好。但是当我重新运行我的脚本时,我仍然会遇到同样的错误。

我还安装了powershelltools.msi,这是作为SQL Server 2014功能包的一部分下载的:https://www.microsoft.com/en-gb/download/details.aspx?id=42295

如果我运行此命令:

Get-Command -Module sqlserver

我得到了这个结果:

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           Decode-SqlName                                     21.0.17224 sqlserver
Alias           Encode-SqlName                                     21.0.17224 sqlserver
Function        SQLSERVER:                                         21.0.17224 sqlserver

关于我还应该尝试什么的任何想法?

我有SQLServer 2014和Powershell第5版

4 个答案:

答案 0 :(得分:0)

Import-Module仅将模块导入当前的PowerShell会话,而不是全局导入。将导入添加到您的脚本或配置文件。

答案 1 :(得分:0)

您是否正在使用Powershell Core(v6.1)?

我遇到了类似的问题,发现了这个SO answer。事实证明,用于Powershell Core的SQLServer模块不包括Invoke-SqlCmd(以及其他)。我切换回Windows 10(v5.1)上安装并安装的Powershell的64位版本,然后导入了sqlserver模块。现在列出了Invoke-SQLCmd。

Install-Module -Name SqlServer -AllowClobber
Import-Module -Name SqlServer -Force
Get-Command -Module SqlServer

答案 2 :(得分:0)

正在寻找相同问题的解决方案,发现以下内容对我有用。

find-module sqlserver | Install-Module -AllowClobber -Force

原始答案:https://social.technet.microsoft.com/Forums/en-US/f3a52235-e62a-402e-9b1b-0b0c0cdd17aa/sql-powershell-error-invokesqlcmd-the-term-invokesqlcmd-is-not-recognized-as-the-name-of-a?forum=winserverpowershell

答案 3 :(得分:0)

我有同样的问题。显然,我必须取消阻止新模块文件夹中的所有dll文件。就我而言,C:\Program Files\WindowsPowerShell\Modules\SqlServer。 我在这里找到了链接。 https://www.404techsupport.com/2016/06/24/unblock-files-powershell/

dir -Path [directory path] -Recurse | Unblock-File

如果仍打开会话,请关闭Powershell。