WSUS などでおなじみの Windows Internal Database へアクセスするときに、下記のようなコマンドを実行します。
Invoke-Sqlcmd -ServerInstance "\\.\pipe\microsoft##WID\tsql\query" -Query "Select @@version"
Invoke-Sqlcmd : The instance of SQL Server you attempted to connect to does not support encryption.
発生場所 行:1 文字:1
+ Invoke-Sqlcmd -ServerInstance "\\.\pipe\microsoft##WID\tsql\query" -Q ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd]、SqlException
+ FullyQualifiedErrorId : SqlExceptionError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
Invoke-Sqlcmd : '' の解析中に無効な構文が見つかりました。
発生場所 行:1 文字:1
+ Invoke-Sqlcmd -ServerInstance "\\.\pipe\microsoft##WID\tsql\query" -Q ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Sqlcmd], BatchParserException
+ FullyQualifiedErrorId : ExecutionFailureException,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
エラーを読むと、暗号化をサポートしていないことが原因のようです。
暗号化が既定で必要になったことが要因と思われます。
https://learn.microsoft.com/ja-jp/sql/connect/oledb/major-version-differences?view=sql-server-ver16
-Encrypt Optional
を追加することにより解決するようです。
Invoke-Sqlcmd -ServerInstance "\\.\pipe\microsoft##WID\tsql\query" -Query "Select @@version" -Encrypt Optional