PowerShell v5.1 - 加载 SqlServer 模块不会加载 Read-SqlTableData 或 Write-SqlTableData,但会加载所有其他命令

问题描述 投票:0回答:2

在我的 Windows Server 2012 R2 服务器上,与我的 SQL Server 服务实例运行的服务器相同,我已升级到 PowerShell v5.1。我继续加载 SqlServer 模块 v21.1.18121。除了 Read-SqlTableDataWrite-SqlTableData 之外,所有命令均加载良好。最可恶的事情!当我在我的Win10开发盒上加载相同的SqlServer模块时,所有命令都存在。我怀疑可用的 .Net 框架或类似版本存在版本问题,或者与 SQL Server 模块发生冲突。大家对此有什么想法吗?

sql-server powershell windows-server-2012-r2
2个回答
0
投票

我刚刚遇到了同样的问题。我已经尝试了很多方法,但我认为问题源于将模块 SQLPS 与 SqlServer 模块一起安装。 (SQLPS 是 sqlserver 的旧版本)。

我使用的步骤:(可能有点过分)

  1. 关闭所有可能引用 Powershell 的应用程序 模块。对我来说,这个列表包括 Visual Studio、SSMS、SQL Agent、 当然还有所有 Powershell cmd 和/或 IDE。
  2. 打开管理员 PowerShell 命令 shell。
  3. 执行:
    Uninstall-Module sqlps 
    Uninstall-Module sqlserver
  4. 检查 Powershell 模块文件夹以确保您已清除模块。 看的地方是:
    
    ls "c:\program files\WindowsPowerShell\Modules"
    文件夹“sqlps”和“sqlserver”都应该丢失或为空。
  5. 现在重新安装sqlserver模块:
    
    Install-Module sqlserver
  6. 检查您是否有 Write-SqlTableData:
    
    Get-Command -module sqlserver

如果您怀疑版本控制有错误:我已经尝试并测试了 sqlserver 模块版本:21.1.18218 和 21.0.17099


0
投票

SqlServer 模块随 SQL Server 安装一起提供,并且往往处于不同的版本中。

SQL Server 上的模块位置

(Get-Module -l SqlServer).path
 -> C:\Program Files\WindowsPowerShell\Modules\SqlServer\SqlServer.psd1

PowerShell 库中的模块位置

(Get-Module -l SqlServer).path
-> C:\Program Files\WindowsPowerShell\Modules\SqlServer\21.0.17279\SqlServer.psd1

您可以强制 PowerSell 从特定位置加载模块

Install-Module -Name SqlServer
Import-Module -Name (Get-Module -l SqlServer).path -Verbose
© www.soinside.com 2019 - 2024. All rights reserved.