Powershell — термин ‘New-SqlColumnEncryptionKey’ не распознается — попытка создать ключ шифрования столбца

#sql-server #powershell #azure-powershell #always-encrypted

#sql-server #powershell #azure-powershell #всегда зашифрованный

Вопрос:

Я использую Powershell 7.0.3. Подключившись к azure (через connect-AzAccount) Я могу перечислить свои главные ключи столбцов:

 Get-SqlColumnMasterKey -InputObject $database

Name
----
MYDB_CMK
MYDB_CMK2
 

При попытке создать ключ шифрования столбца..

 New-SqlColumnEncryptionKey -Name "MYDB_CEK" -InputObject $database -ColumnMasterKey "MYDB_CMK"
 

Я получаю следующую ошибку:

 New-SqlColumnEncryptionKey: The term 'New-SqlColumnEncryptionKey' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
 

Насколько мне известно, команды Get-SqlColumnMasterKey и New-SqlColumnEncryptionKey должны находиться в одном модуле, загружаться через

 Import-Module "SqlServer" 
 

Что я пропустил?

Комментарии:

1. Может возникнуть проблема с управлением версиями — документы ужасны при документировании того, какая версия что включает (на практике это зависит от версии ОС, версии PowerShell и версии модуля). Например, в моей системе у меня есть этот командлет и версия модуля 21.1.1879. Попробуйте Get-Module SqlServer после импорта.

Ответ №1:

Да, это часть SqlServer модуля, но он поддерживается только в Powershell 5:

введите описание изображения здесь

Комментарии:

1. Спасибо singhh-msft. Это несколько заманчиво, поскольку я перешел на Powershell 7, поскольку что-то не сработало в 5, и теперь мои 7 скриптов также не работают в 5. Эй, хо, это то, что делает ЕГО таким … захватывающим: D Приветствия.