问题标签 [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 回答
699 浏览

sql-server - 使用 Where-Object cmdlet 过滤数据集

我正在寻找使用Where-Objectcmdlet 过滤数据集。例如,考虑Notifications以下 cmdlet 中的列。它包含两个值,我想用Where-Object | {$_.Notifications -eq 'Operator1'}. 我也尝试使用-in, -notin, -contains, -notcontains, -match, -notmatch, -like, -notlike等进行过滤。但到目前为止,这些都没有产生任何结果。任何指针都受到高度赞赏。

Get-Member退货

此外,Notifications列的实际数据集看起来像

谢谢!

编辑:我在这里使用的 cmdlet 的来源来自dbatools/Get-DbaAgentAlert

0 投票
1 回答
1244 浏览

sql-server - SQL 数据库恢复使用 Powershell 设置变量

情况:

我们有一个托管应用程序,我们需要直接访问 SQL 服务器,但不能。解决方法是主机通过 SFTP 提供每周备份。

我有一个使用 WinSCP 下载备份的脚本:

运行 CMD Batch Script 运行 WinSCP 脚本(保存并运行在 WinSCP 目录中)

WinSCP 脚本运行:

下载的备份文件名末尾有时间戳: BACKUP_20170526_222744.BAK

我需要自动查询更新文件名并使用该文件名作为变量来恢复备份。我已经想出了如何在 Powershell 中提取文件名并设置为变量:

要在 TSQL 中恢复数据库,我目前正在使用以下脚本,但手动输入备份文件名:

Powershell 和 TSQL 脚本目前都按预期工作。Powershell 将 $bak 变量设置为备份的正确文件名 SQL 脚本将恢复备份,但前提是手动输入备份的文件名。

我的问题是让 Powershell 变量 $bak 在我的 TSQL 脚本中使用。

请注意,我在 Powershell 和 TSQL 方面都处于入门级。

以下是根据 Shawn Melton 的回答完成此任务的命令:

权限脚本

在 WinSCP 命令将备份放入目录后使用此命令。

0 投票
1 回答
598 浏览

powershell - 使用 dbatools 迭代服务器列表?

我对 PowerShell 真的很陌生,还在学习,所以我需要从 dbatools 运行一些命令并保存结果。

我不确定这是否是正确的方法 https://dbatools.io/functions/get-dbabackuphistory/

0 投票
1 回答
424 浏览

code-coverage - Invoke-Pester -CodeCoverage 在测试模块功能时声称代码覆盖率为 0%

我为dbatools编写了一个名为New-DbaSqlConnectionStringBuilder的函数。我为它写了单元测试。我知道这些单元测试涵盖了大部分功能。我使用以下命令得到 0% 的代码覆盖率报告。

调用-Pester .\tests\New-DbaSqlConnectionStringBuilder.Tests.ps1 -CodeCoverage .\functions\New-DbaSqlConnectionStringBuilder.ps1

下面的精简输出:

要获取此版本的代码:

我究竟做错了什么?

0 投票
1 回答
429 浏览

sql-server - 如何在 PowerShell 中返回对象的第二列/属性?

我想使用 Invoke-DbaSqlCmd 在 PowerShell 中查询 SQL Server。

这将返回一个 System.Data.DataRow 对象。对象类型并不重要。重要的是要知道结果会因 SQL Server 语言而异。在法语中,它将是“Mo disponible”,而英语将是“MB Free”。我希望我的代码可以使用任何可用的 SQL Server 语言。

在此处输入图像描述

我想在不使用 Get-Member 的情况下选择第二列。就像这里的解决方案:

有没有一种优雅的方式来返回第二列而不使用它的名称?

0 投票
2 回答
539 浏览

sql-server - 服务器代理 PowerShell 作业步骤 - 调用文件和调用命令之间的区别

我有一些简单的 PowerShell 代码可以将值插入到表中:

如果我将它保存为文件,我可以在 CmdExec 作业步骤中调用它。但是,谁能告诉我为什么我不能运行该命令,尤其是因为它只有一行:

谁能告诉我为什么作为命令运行不起作用,但与文件相同的代码可以工作。任何帮助表示赞赏。

谢谢

0 投票
0 回答
35 浏览

sql-server - 跨 SQL Server 代理作业步骤分离 PowerShell 命令

我试过没有成功,但我怀疑我目前有很多错误。但是,谁能告诉我是否可以跨一系列 SQL Server 代理作业步骤分隔 PowerShell 脚本,即

作业 1 步骤 1 --> 声明并分配一个变量

作业 1 步骤 2 --> 在查询/命令中使用变量

例如,我正在尝试在这里构建一个查询

并在此命令中使用它:

我正在使用基本步骤来获得复杂事物的想法。

谢谢您的帮助!

0 投票
2 回答
324 浏览

sql-server - dbachecks 上的 Powershell 脚本脚本,用于比较表中列出的服务器的 MaxMemory

针对服务器运行检查

我已经列出了 sql 服务器(根据组在表中的阶段、产品、DR 服务器),现在我想比较具有组 id 的服务器以检查具有相同组 id 的服务器(阶段、产品、DR)是否有MAXMemory 配置是否相同。

为此,我正在使用下面的 powershell 脚本,你能帮我解决这个问题吗,我创建了一个包含所有 servewith grop id 的表。

请求通过服务器帮助我完成循环并构建一个阵列,以便我可以运行 MAXMEMORY powershell 命令来使用所有服务器的组 ID 进行比较。

我已将所有服务器详细信息收集到表 dbo.server 组
中,powershell 脚本应使用 ID 遍历表并检查 ID 组中的服务器是否具有相同的 MAXMEMORY 配置 ID server_name Environment 1 ABC0123 prod
1 ABC5123 stage
1 ABC4123 DR
2 DEF0123 产品
2 DEF5123 阶段
2 DEF4123 DR
我正在尝试使用 powershell 脚本,它将根据 ID 检查和比较 MAXMEMORY 配置(检查相同 group_id 的 stage、prod、DR 服务器是否具有相似的设置),如果没有,则会显示警告/message 作为 group_ids 服务器未进行类似配置。请帮我写剧本

0 投票
1 回答
757 浏览

powershell - DBATOOLS - 从表中复制数据并在 DestinationDatabase 上创建

DbaTools 相关 - https://dbatools.io/functions/

您好,我正在尝试找到一种解决方案来复制表并在 上创建它-Destination / -DestinationDatabase,请。

我在用:

但是由于表不是在目标上创建的,所以我收到错误消息:

警告:[15:25:58][Copy-DbaTableData] Table01 在目标上不存在

请问有什么方法可以在 DestinationDatabase 上复制和创建表吗?

0 投票
0 回答
159 浏览

sql-server - 错误:Import-DbaCsvToSql:“++”运算符仅适用于数字。操作数是“System.IO.FileInfo”

参考:[ https://dbatools.io/functions/import-dbacsvtosql/]

尝试使用 DBA 工具将一些信息影响到 SQL Server 中,当我尝试导入时出现错误 - 脚本的其余部分工作正常,除了Import-csv

Import-DbaCsvToSql :“++”运算符仅适用于数字。操作数是“System.IO.FileInfo”。在行:5 字符:5

我用来导出和导入的查询是:

谢谢