安装 SQL Server PowerShell 模块

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

本文提供安装 SqlServer PowerShell 模块的指导。

适用于 SQL Server 的 PowerShell 模块

提供两种 SQL Server PowerShell 模块:

  • SqlServer:SqlServer 模块包括新的 cmdlet,用于支持最新的 SQL 功能。 该模块还包含 SQLPS 中 cmdlet 的更新版本。 若要下载 SqlServer 模块,请在 PowerShell 库中转到 SqlServer 模块

  • SQLPS:SQLPS 是 SQL 代理使用 PowerShell 子系统在代理作业步骤中运行代理作业时所使用的模块。

注意

PowerShell 库中这些版本的 SqlServer 模块支持版本控制并且要求 PowerShell 5.1 或更高版本。

有关帮助主题,请转到:

SQL Server Management Studio

SQL Server Management Studio (SSMS) 不会安装任何 PowerShell 模块。 要在 SSMS 中使用 PowerShell,则必须从 PowerShell 库安装 SqlServer 模块。

注意

SQL Server Management Studio (SSMS) 16.x(及更早版本)包含 SQLPS 模块。

Azure Data Studio

Azure Data Studio 不会安装任何一个 PowerShell 模块。 若要将 PowerShell 与 Azure Data Studio 一起使用,请从 PowerShell 库安装 SqlServer 模块。

可以使用 PowerShell 扩展,此扩展在 Azure Data Studio 中提供丰富的 PowerShell 编辑器支持。

安装或更新 SqlServer 模块

若要从 PowerShell 库安装 SqlServer 模块,请启用 PowerShell 会话并运行 Install-Module SQLServer

Install-Module -Name SqlServer

如果在 Windows PowerShell 上运行,则可以使用 Install-Module SQLServer -Scope CurrentUser 为当前用户安装模块,避免需要提升的权限。

为所有用户安装 SqlServer 模块

若要为所有用户安装 SqlServer 模块,请在提升的 PowerShell 会话中运行以下命令;以管理员身份启动 PowerShell 会话:

Install-Module -Name SqlServer

将 SqlServer 模块安装到脱机计算机

本部分将指导你完成在无法访问 Internet 的计算机上安装 SqlServer PowerShell 模块的步骤。 需要两台计算机才能完成此安装:一台计算机连接到 Internet,目标计算机则保持脱机状态(未连接 Internet)。

  1. 在连接到 Internet 的计算机上,下载 SQLServer PowerShell 模块。 此命令将下载该模块的所有文件并将这些文件保存在示例 $env:TEMP\SQLServer\<SomeVersion> 文件夹中,-Path 参数中定义了该文件夹。 你可以根据自己的偏好选择一个文件夹作为连接 Internet 的计算机上的目标。

    Save-Module -Name SqlServer -Path $env:TEMP
    
  2. 在文件资源管理器中浏览至该文件夹位置,验证 $env:TEMP\SQLServer\<SomeVersion> 文件夹是否存在或运行以下命令:

    Get-ChildItem -Path $env:TEMP\SQLServer\
    
  3. 将步骤 2 中找到的 $env:TEMP\SQLServer\<SomeVersion> 文件夹复制到 %ProgramFiles%\WindowsPowerShell\Modules\SqlServer 文件夹(此文件夹对于 PS5 和 PS7 均适用)中的目标脱机计算机。 请务必将 <SomeVersion> 替换为在上一步中找到的值。

  4. 通过运行以下 PowerShell cmdlet,确认 SqlServer PowerShell 模块在脱机计算机上可用:

    Get-Module SqlServer -ListAvailable
    

    输出可能如下所示(实际版本可能不同,并且必须与前面列出的 <SomeVersion> 匹配):

       PS C:\Users\user1> Get-Module SqlServer -ListAvailable
    
           Directory: C:\Program Files\WindowsPowerShell\Modules
    
       ModuleType Version    Name                     ExportedCommands
       ---------- -------    ----                     ----------------
       Script     22.1.1     SqlServer                {Add-RoleMember, Add-SqlAvail...
    

查看已安装的 SqlServer 模块的版本

执行以下命令来查看已安装的 SqlServer 模块的版本

Get-Module SqlServer -ListAvailable

查看当前会话中加载的 SqlServer 模块的版本

(Get-Module SqlServer).Version

覆盖先前版本的 SqlServer 模块

还可以使用 Install-Module 命令覆盖以前的版本。

Install-Module -Name SqlServer -AllowClobber

注意

PowerShell 始终使用安装的最新模块。

更新 SqlServer 模块的安装版本

当 SqlServer 模块的更新版本可用时,可使用以下命令安装更新版本:

Update-Module -Name SqlServer -AllowClobber

可以使用 Update-Module 命令安装最新版本的 SQLServer PowerShell 模块,但这不会删除旧版本。 它将并行安装更新版本,以使你能够体验最新版本,但仍会安装旧模块。

但是,如果不想保留旧模块版本,可以使用 Uninstall-Module 命令删除以前的版本。

如果安装了多个版本,则可以使用以下命令列出:

Get-Module SqlServer -ListAvailable

使用以下命令删除旧版本:

Uninstall-module -Name SQLServer -RequiredVersion "<version number>"

疑难解答

如果在安装过程中出现问题,请参阅安装模块文档安装模块参考

使用特定版本的 SqlServer 模块

要使用特定版本的模块,请使用类似以下命令的特定版本号将其导入:

Import-Module SqlServer -Version 21.1.18218

SqlServer 模块的预发行版本

PowerShell 库中可能提供 SqlServer 模块的预发行(或“预览”)版本。

重要

可通过传递 -AllowPrerelease 切换,使用更新后的 Find-Module 和 Install-Module cmdlet(属于 PowerShellGet 模块)找到并安装这些版本。 若要使用这些 cmdlet,请安装 PowerShellGet 模块,然后打开一个新的会话。

发现 SqlServer 模块的预发行版本

若要找到 SqlServer 模块的预发行(预览)版本,可运行以下命令:

Find-Module SqlServer -AllowPrerelease

安装 SqlServer 模块的特定预发行版本

若要安装模块的特定预发行版本,请使用特定版本号安装该模块。

可以尝试使用以下命令:

Install-Module SqlServer -RequiredVersion 21.1.18218-preview -AllowPrerelease

Linux 上的 SQL Server PowerShell

若要了解如何在 Linux 上安装 SQL Server PowerShell,请访问通过 PowerShell 管理 Linux 上的 SQL Server

其他模块

  • Az.Sql - Windows PowerShell 和 PowerShell 中适用于 Azure 资源管理器的 SQL 服务 cmdlet。

  • SqlServerDsc - 包含 DSC 资源且用于部署和配置 Microsoft SQL Server 的模块。

Cmdlet 参考

后续步骤