web-dev-qa-db-ja.com

Install-Module SqlServerが既存のモジュールを上書きするのは正常ですか?

SSMS 17を搭載したWindows 10ボックスがあります。SSMS2016をインストールしましたが、アンインストールしました。 SqlServerモジュールをインストールしようとすると、次の警告が表示されます。

C:\WINDOWS\system32> install-module sqlserver -Scope AllUsers

Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy
value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): y
PackageManagement\Install-Package : The following commands are already available on this system:'Add-RoleMember,Add-SqlAvailabilityDatabase,Add-SqlAvailabilityGroupListenerStaticIp,Add-SqlAzu
reAuthenticationContext,Add-SqlColumnEncryptionKeyValue,Add-SqlFirewallRule,Add-SqlLogin,Backup-ASDatabase,Backup-SqlDatabase,Complete-SqlColumnMasterKeyRotation,ConvertFrom-EncodedSqlName,Co
nvertTo-EncodedSqlName,Convert-UrnToPath,Disable-SqlAlwaysOn,Enable-SqlAlwaysOn,Get-SqlAgent,Get-SqlAgentJob,Get-SqlAgentJobHistory,Get-SqlAgentJobSchedule,Get-SqlAgentJobStep,Get-SqlAgentSch
edule,Get-SqlColumnEncryptionKey,Get-SqlColumnMasterKey,Get-SqlCredential,Get-SqlDatabase,Get-SqlErrorLog,Get-SqlInstance,Get-SqlLogin,Get-SqlSmartAdmin,Grant-SqlAvailabilityGroupCreateAnyDat
abase,Invoke-ASCmd,Invoke-PolicyEvaluation,Invoke-ProcessASDatabase,Invoke-ProcessCube,Invoke-ProcessDimension,Invoke-ProcessPartition,Invoke-ProcessTable,Invoke-Sqlcmd,Invoke-SqlColumnMaster
KeyRotation,Join-SqlAvailabilityGroup,Merge-Partition,New-RestoreFolder,New-RestoreLocation,New-SqlAvailabilityGroup,New-SqlAvailabilityGroupListener,New-SqlAvailabilityReplica,New-SqlAzureKe
yVaultColumnMasterKeySettings,New-SqlBackupEncryptionOption,New-SqlCertificateStoreColumnMasterKeySettings,New-SqlCngColumnMasterKeySettings,New-SqlColumnEncryptionKey,New-SqlColumnEncryption
KeyEncryptedValue,New-SqlColumnEncryptionSettings,New-SqlColumnMasterKey,New-SqlColumnMasterKeySettings,New-SqlCredential,New-SqlCspColumnMasterKeySettings,New-SqlHADREndpoint,Read-SqlTableDa
ta,Read-SqlViewData,Remove-RoleMember,Remove-SqlAvailabilityDatabase,Remove-SqlAvailabilityGroup,Remove-SqlAvailabilityReplica,Remove-SqlColumnEncryptionKey,Remove-SqlColumnEncryptionKeyValue
,Remove-SqlColumnMasterKey,Remove-SqlCredential,Remove-SqlFirewallRule,Remove-SqlLogin,Restore-ASDatabase,Restore-SqlDatabase,Resume-SqlAvailabilityDatabase,Revoke-SqlAvailabilityGroupCreateA
nyDatabase,Save-SqlMigrationReport,Set-SqlAuthenticationMode,Set-SqlAvailabilityGroup,Set-SqlAvailabilityGroupListener,Set-SqlAvailabilityReplica,Set-SqlAvailabilityReplicaRoleToSecondary,Set
-SqlColumnEncryption,Set-SqlCredential,Set-SqlErrorLog,Set-SqlHADREndpoint,Set-SqlNetworkConfiguration,Set-SqlSmartAdmin,Start-SqlInstance,Stop-SqlInstance,Suspend-SqlAvailabilityDatabase,Swi
tch-SqlAvailabilityGroup,Test-SqlAvailabilityGroup,Test-SqlAvailabilityReplica,Test-SqlDatabaseReplicaState,Test-SqlSmartAdmin,Write-SqlTableData'. This module 'SqlServer' may override the
existing commands. If you still want to install this module 'SqlServer', use -AllowClobber parameter.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1809 char:21
+ ...          $null = PackageManagement\Install-Package @PSBoundParameters
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Exception
    + FullyQualifiedErrorId : CommandAlreadyAvailable,Validate-ModuleCommandAlreadyAvailable,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage

これは正常ですか、それとも正しくアンインストールされませんでしたか?これがSet-ColumnEncryptionで発生しているいくつかの問題を引き起こしているのではないかと思います。

2017の初期インストールで問題が発生しましたが、SSMS 2016アンインストーラーがインストールしていないフォルダーを削除する必要がありました。そのフォルダが何なのかわからないので、最初に見つけた修正へのリンクが見つかりません。

2人が示唆したように、古いバージョンのSqlServerがインストールされていないようです。

Loading personal and system profiles took 19921ms.
C:\WINDOWS\system32> import-module sqlserver
import-module : The specified module 'sqlserver' was not loaded because no valid module file was found in any module directory.
At line:1 char:1
+ import-module sqlserver
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (sqlserver:String) [Import-Module], FileNotFoundException
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand

C:\WINDOWS\system32> Get-Module sqlserver -ListAvailable
C:\WINDOWS\system32>

ただし、SQLPSモジュールは持っています。

C:\WINDOWS\system32> Get-Module sqlps -ListAvailable


    Directory: C:\Program Files (x86)\Microsoft SQL Server\130\Tools\PowerShell\Modules


ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   1.0        SQLPS                               {Backup-SqlDatabase, Save-SqlMigrationReport, Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupListenerStaticIp...}


    Directory: C:\Program Files (x86)\Microsoft SQL Server\140\Tools\PowerShell\Modules


ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   14.0       SQLPS                               {Backup-SqlDatabase, Save-SqlMigrationReport, Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupListenerStaticIp...}


C:\WINDOWS\system32>
6
Justin Dearing

これは、sqlserverモジュールを含むという意味でSSMS 2016から残っている可能性がありますが、MSはバージョンフォルダーに配置していませんでした。 PSGalleryのどのモジュールが現在一般的に実行されます。

チェックした場合Get-Module sqlserver -ListAvailable | select name, version, modulebaseあなたは彼らが行く道を見るでしょう。

SSMS 2016、SSMS 17、およびWindows 10マシンにインストールされているPSGalleryのsqlserverモジュールがあります。

enter image description here

20.0がSqlServerモジュールフォルダー内にダンプされていることがわかります。 PSGalleryからモジュールをインストールしたときに発生したエラーが発生しました。これは、関数が同じ名前であるために予想されるものです。

あなたのオプションは、SSMS 2016に付属していた古いバージョンを削除するか、-AllowClobber、それで結構です。

3
user507