排查 Powershell 中无法识别 Invoke-Sqlcmd 问题
2025-06-24#PowerShell
一个在 Docker 中运行的 PowerShell 脚本,最近出现了无法识别 Invoke-Sqlcmd
的问题。
在安装了 SqlServer
模块后,运行 Invoke-Sqlcmd
命令遇到如下错误:
The term 'Invoke-Sqlcmd' is not recognized as a name of a cmdlet, function, script file, or executable program.
为此,首先查看 SqlServer
模块包含了哪些命令:
PS /> Get-Command -Module SqlServer
CommandType Name Version Source
----------- ---- ------- ------
Alias Decode-SqlName 22.4.5.1 SqlServer
Alias Encode-SqlName 22.4.5.1 SqlServer
Function Invoke-SqlNotebook 22.4.5.1 SqlServer
Function SQLSERVER: 22.4.5.1 SqlServer
Cmdlet Get-SqlAssessmentItem 22.4.5.1 SqlServer
Cmdlet Invoke-SqlAssessment 22.4.5.1 SqlServer
由此可见,该模块并不包含 Invoke-Sqlcmd
命令。百思不得其解,后来将项目所使用的镜像 mcr.microsoft.com/powershell:7.2-alpine-3.13
升级为较新的版本 mcr.microsoft.com/powershell:7.5-alpine-3.20
,然后在安装并导入 SqlServer
模块,即可使用 Invoke-Sqlcmd
命令。