【问题标题】:Issue with Powershell SMO in getting backup directoryPowershell SMO 在获取备份目录时出现问题
【发布时间】:2020-09-01 17:21:31
【问题描述】:

我正在尝试使用 PowerShell 和 SMO 获取 SQL Server 2016 的备份目录。但是是抛出一个错误。当我尝试为 SQL Server 2008 运行相同的命令时,它工作正常。不知道为什么它不适用于 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

我遇到的错误

format-default : 执行 Transact-SQL 语句或批处理时发生异常。

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

【问题讨论】:

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

标签: sql-server powershell


【解决方案1】:

我发现了问题。存在访问问题,这就是它没有提取设置但能够提取数据库的原因。

【讨论】:

    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 2011-11-20
    • 2023-04-04
    • 1970-01-01
    • 2012-12-12
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多