标签:数据库 SQL Server
服务器上装了SQL Server 2014的默认实例,以及SQL Server 2017的命名实例SQL2017
$env:PSModulePath为
%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\PowerShell\Modules\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\PowerShell\Modules\
在执行Powershell命令
New-SqlAvailabilityGroup -Name $AgName -InputObject $Primary -AvailabilityReplica $Replicas -Database $DatabaseList
时,报错如下:
去掉了SQL Server 2014的SQLPS目录路径
%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\PowerShell\Modules\
再加载SQL Server 2017默认的SQLPS,执行New-SqlAvailabilityGroup正常。
说明两个版本SQLPS里New-SqlAvailabilityGroup对应的参数-InputObject类型有差异。
Powershell模块安装
#https://www.powershellgallery.com
#在线下载安装
Install-Module -Name Powershellget -force
#离线下载安装
#https://www.powershellgallery.com/packages/CredentialsManager/1.1
#保存模块
Save-Module -Name CredentialsManager -Path C:\powershellgallery
#拷贝到
%ProgramFiles%/WindowsPowershell/Module/
#加载即用、用时注册
Import-Module -Name CredentialsManager
PowerShell 2.0 uses the appropriately-named Import-Module cmdlet to import modules. When this cmdlet is run, Windows PowerShell searches for the specified module within the directories specified in the PSModulePath variable. When the specified directory is found, Windows PowerShell searches for files in the following order: module manifest files (.psd1), script module files (.psm1), binary module files (.dll). For more information about adding directories to the search, see Modifying the PSModulePath Installation Path.
Beginning in Windows PowerShell 3.0, modules are imported automatically when any cmdlet or function in the module is used in a command. This feature works on any module in a directory that this included in the value of the PSModulePath environment variable. If you do not save your module on a valid path however, you can still load them using the explicit Import-Module option, described above.
标签:数据库 SQL Server
原文地址:http://blog.51cto.com/ultrasql/2119442