当我尝试运行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版
答案 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
答案 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。