问题标签 [dbatools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
53 浏览

powershell - PowerShell DbaTools 将 Hashtable 传递给 Invoke-DbaQuery

我正在尝试将调用的 Hashtable 传递$SqlInstanceParams给 Invoke-DbaQuery dbatools 命令:

显示我填充的哈希表变量,一切看起来都很好,但是当查询执行时,我得到了这个错误:

我是否需要以某种方式转换此哈希表或单独列出每个参数,而不是仅传递哈希表变量:

0 投票
0 回答
113 浏览

powershell - 如何在 dbatools 命令中捕获警告?

语境:

在使用 Restore-DbaDatabase cmdlet 时,我需要能够捕获阻止某些备份被恢复的警告。

我发现一些帖子提到Restore-DbaDatabase的-Silent参数会将这些警告视为错误,因此我可以捕获它们,但该参数不再存在。

我正在使用-EnableException参数,但没有运气。屏幕上会显示警告,但我无法在脚本中捕捉到它们,因为没有抛出异常,如下图所示:

指定 -EnableException 时,Restore-DbaDatabase 不将警告视为错误

问题:

捕获/捕获 dbatools 命令的所有警告的正确方法是什么?

0 投票
0 回答
33 浏览

sql-server - ExecuteWithResults 异常?

我正在运行以下命令作为 DB Log Shipping POC 的一部分,但出现异常:

例外:

这里可能是什么问题?

0 投票
1 回答
25 浏览

sql-server - 使用 -Job 参数复制-DbaAgentJob cmd

在使用 Copy-DbaAgentJob dbatools cmd 时,需要将什么传递给参数Job

  • 它是一个包含要复制的作业名称的数组
  • 它是来自 cmd 的实际作业数组吗Get-DbaAgentJob
0 投票
1 回答
134 浏览

sql-server - 创建事务日志时无法将参数值从 SqlGuid 转换为字符串。(System.Data)

我正在使用 将日志传送应用到数据库Invoke-DbaDbLogShipping,并且我正在遵循文档中的示例。创建了作业,并且从显示的内容在辅助服务器实例上恢复了数据库,但作业失败了。这是备份作业日志的状态:

备份事务日志。主数据库:“Test14”日志备份文件:“C:\Users...\Documents\DB Log Shipping\Backups\Local\Test14\Test14_20210822193000.trn”错误:无法记录历史记录/错误消息。(Microsoft.SqlServer. Management.LogShipping)错误:无法将参数值从 SqlGuid 转换为字符串。(System.Data)错误:对象必须实现 IConvertible。(mscorlib)第一次尝试将数据库“Test14”备份到文件“C:\Users.. .\Documents\DB Log Shipping\Backups\Local\Test14\Test14_20210822193000.trn' 失败,因为无法打开备份设备'C:\Users...\Documents\DB Log Shipping\Backups\Local\Test14\Test14_20210822193000.trn

为什么会失败?

这是我的脚本:

0 投票
0 回答
58 浏览

powershell - 如何使用内部函数?

基本上,我们希望将备份存储在 Azure Blob 存储中,但Invoke-DbaDbLogShipping需要一个$BackupNetworkPath. 我最接近这个的是 Azure 文件共享,但不幸的是端口 445 似乎被阻止了,所以我无法使用它。

我现在正在尝试修改Invoke-DbaDbLogShipping函数以将强制替换为$BackupNetworkPathAzure Blob 存储上传备份逻辑,但我遇到了一些问题:

为了避免这些错误,我复制/粘贴了 dbatools 内部辅助函数中的函数:

写信息

停止功能

但我遇到了另一个问题[Sqlcollaborative.Dbatools.dbaSystem...]

例如:Unable to find type [Sqlcollaborative.Dbatools.dbaSystem.MessageLevel].

我之前尝试Import-Module dbatools在脚本中导入模块Invoke-DbaDbLogShipping,但没有帮助。

0 投票
0 回答
95 浏览

sql-server - dbaTools 无法与 PowerShell Core 上的 Azure AD 帐户连接

使用PowerShell Core 7.1.4,当我尝试使用来自 dbatools 模块的 Azure AD 帐户的集成安全性连接到我的 MS SQL 实例时,遇到了有关使用NT AUTHORITY\ANONYMOUS LOGON登录失败的错误消息。它在 PowerShell 5.1 中运行良好。Connect-DbaInstance

我正在使用 Azure AD 连接帐户。我用来使用 SSMS 连接到 MSSQL 的同一帐户。客户端和服务器位于同一域(本地主机)上。该命令是从本地 powershell 核心会话执行的 - 不涉及远程处理。不涉及 SYSTEM 帐户。

Connect-DbaInstance -SqlInstance <servername>\<instancename>结果是:

连接到 [<servername>\<instancename>] 时出错:用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。

使用PowerShell 5.1SSMS连接到同一个 MS SQL 实例可以使用同一个 Azure AD 帐户正常工作。

不能使用从 PowerShell Core 到 MS SQL 的 Windows 身份验证吗?

0 投票
1 回答
24 浏览

dbatools - dbatools Invoke-DbaQuery 将结果截断为 90 个字符

我正在使用 Invoke-DbaQuery 在应用程序刷新之前将当前应用程序设置假脱机到一个文本文件,但看到输出被截断为 90 个字符。有谁知道如何克服这个限制?

0 投票
1 回答
79 浏览

powershell - PowerShell dbatools Invoke-DbaQuery 与 UNC 文件

在 PowerShell 中,我想运行 Invoke-DbaQuery dbatools 命令并使用带有 -File 参数的 UNC 路径:

Invoke-DbaQuery -SQLInstance $SQL_host -Database $DatabaseName -File "\\file_svr\scriptdir\userlist.sql"

该命令运行没有错误,但不产生任何输出。有谁知道这是否可能?如果是这样,我错过了什么?

0 投票
1 回答
61 浏览

sql-server - dbatools(或 SQL Server 的 SMO)- 模式导出期间的表排序

我正在编写一个 dbatools 脚本,用于从数据库模式中导出各种项目。使用Export-DbaScript时,表、索引、PK/FK 按预期转储。

但是,表的顺序及其约束以错误的顺序转储。例如,表 Foo 与 FK 约束一起转储到一个直到脚本稍后才出现的表。这会导致转储无法执行。

请注意,这可能也适用于 SMO API,因为据我所知 dbatools 基本上是一个包装器。我还试图摆弄各种 ScriptingOptions,但没有运气。

示例伪脚本:

示例输出,其中 BAR 在 FK_FOO_BAR 约束之后创建:

我还没有尝试过的一件事是遍历表集合,并为每个表调用 .Script() ,然后再次运行并最终为约束调用 .Script() .. 但我希望 SMO / dbatools 可以处理这个问题。