Sql server 获取备份目录时出现Powershell SMO问题

Sql server 获取备份目录时出现Powershell SMO问题,sql-server,powershell,Sql Server,Powershell,我正在尝试使用PowerShell和SMO获取SQL Server 2016的备份目录。但这是一个错误。当我尝试为SQLServer2008运行相同的命令时,它工作正常。不确定为什么SQL Server 2016无法运行 命令运行 [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null $ServerSMO = new-object -TypeName Microsoft.

我正在尝试使用PowerShell和SMO获取SQL Server 2016的备份目录。但这是一个错误。当我尝试为SQLServer2008运行相同的命令时,它工作正常。不确定为什么SQL Server 2016无法运行

命令运行

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null 

$ServerSMO = new-object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList 'servername'

$ServerSMO.settings
我犯了一个错误

默认格式:执行Transact-SQL语句或批处理时发生异常

  • CategoryInfo:NotSpecified:(:)[format default],ExecutionFailureException
  • FullyQualifiedErrorId:Microsoft.SqlServer.Management.Common.ExecutionFailureException,Microsoft.PowerShell.Commands.FormatDefaultCommand

我发现了问题。存在访问问题,这就是为什么SMO没有拉取设置,但能够拉取数据库。

由于SMO仅向后兼容,您是否为SQL Server 2016安装了“SharedManagementObjects.msi”或“Microsoft.SqlServer.SqlManagementObjects”SQL Server 2017及更高版本的NuGet软件包?我确实获得了$ServerSMO.Databases的详细信息,这意味着msi应该正确安装?是的,它的一个版本。如果转到“程序和功能”并查找“适用于Microsoft SQL Server 20xx的Microsoft系统CLR类型”、“Microsoft SQL Server 20xx共享管理对象”和“适用于Microsoft SQL Server 20xx的Microsoft Windows PowerShell扩展”,列出了“xx”的哪些版本?CLR的版本为201220142017,其他版本为2014和2012。。它的SQLPS版本是1.0,2016年的SQLPS版本应该是什么?