lit*_*lit 6 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
Run Code Online (Sandbox Code Playgroud)
是的,这些似乎来自 SQLPS 模块。是否不可能有两 (2) 个模块具有相同的导出名称?
更新:
好的,-AllowClobber 确实避免了错误消息。但现在我似乎可以从 和 获取SqlServer命令SQLPS。
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
Run Code Online (Sandbox Code Playgroud)
但是,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
Run Code Online (Sandbox Code Playgroud)
你可以:
Install-Module ... -AllowClobber
Run Code Online (Sandbox Code Playgroud)
要覆盖此错误,可能与
-Scope CurrentUser
Run Code Online (Sandbox Code Playgroud)
仅为单个用户安装。
或者您可以安装 Powershell Core为其他模块创建单独的 powershell 环境。