是否可以在Windows 10上同时安装SQLPS和SqlServer PowerShell模块?

时间:2019-06-18 01:29:52

标签: sql-server powershell

C:> $ PSVersionTable.PSVersion.ToString() 5.1.18362.145

当我使用Install-Module -Name SqlServer时,它报告:

C:>Install-Module -Name SqlServer
PackageManagement\Install-Package : The following commands are already available on this system:'Decode-SqlName,Encode-SqlName,SQLSERVER:,Add-SqlAvailabilityData
base,Add-SqlAvailabilityGroupListenerStaticIp,Add-SqlFirewallRule,Backup-SqlDatabase,ConvertFrom-EncodedSqlName,ConvertTo-EncodedSqlName,Convert-UrnToPath,Disabl
e-SqlAlwaysOn,Enable-SqlAlwaysOn,Get-SqlCredential,Get-SqlDatabase,Get-SqlInstance,Get-SqlSmartAdmin,Invoke-PolicyEvaluation,Invoke-Sqlcmd,Join-SqlAvailabilityGr

是的,这些似乎来自SQLPS模块。不可能有两(2)个模块具有相同的导出名称吗?

更新

好吧,-AllowClobber确实避免了错误消息。但是现在看来,SqlServerSQLPS都有可用的命令。

C:>获取命令 -Sql

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           Decode-SqlName                                     21.1.18121 SqlServer
Alias           Decode-SqlName                                     14.0       SQLPS
Alias           Encode-SqlName                                     21.1.18121 SqlServer
Alias           Encode-SqlName                                     14.0       SQLPS
Cmdlet          Add-SqlAvailabilityDatabase                        21.1.18121 SqlServer
Cmdlet          Add-SqlAvailabilityDatabase                        14.0       SQLPS

但是,以不同的方式使用Get-Command,只会显示来自SqlServer模块的命令。

C:>Get-Command Get-Sqli*

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Get-SqlInstance                                    21.1.18121 SqlServer
Cmdlet          Get-SqlInstance                                    14.0       SQLPS


C:>Get-Command Get-SqlInstance

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Get-SqlInstance                                    21.1.18121 SqlServer

1 个答案:

答案 0 :(得分:0)

您可以:

Install-Module ... -AllowClobber

要覆盖此错误,可能与

结合使用
-Scope CurrentUser

仅用于单个用户安装。

或者您可以install Powershell Core为其他模块创建单独的Powershell环境。