Powershell dbatools - 使用 CMS 获取服务器名称

时间:2021-03-04 14:15:35

标签: sql powershell dbatools

论坛......我的 POS 技能仍然很重要。使用 dbatools .. 我正在尝试针对多个 SQL 实例运行一些信息查询。有没有办法从 CMS 派生/使用服务器名称来初始化 $server 变量?我怎么可能实现。我正在使用:

Get-DbaRegisteredServer -SqlInstance CMSServer

有一个包含服务器名称的 -ServerName 参数。我怎么能用它来做到这一点,针对每台服务器(或我开放的任何更好的方式)

Import-Module dbatools
$servers = "localhost\instance1" # this would be all the Live servers
get-dbadatabase -SqlInstance $servers -ExcludeDatabase master, model, msdb, tempdb | Select SqlInstance, Name, RecoveryModel, Compatibility, Owner, PageVerify, TargetRecoveryTime, IsReadCommittedSnapshotOn, SnapshotIsolationState, @{l="QueryStoreState";e={$_.QueryStoreOptions.ActualState}} | Export-Csv -Path c:\bin\databasestatus.csv

提前致谢!!

1 个答案:

答案 0 :(得分:0)

Get-DbaRegisteredServer 的输出适合直接传入 Get-DbaDatabase(它接受 SQL Server 实例的集合)。

$servers = Get-DbaRegisteredServer -sqlinstance CMSServer;
Get-DbaDatabase -SqlInstance $servers -excludesystem | Select-object SqlInstance, Name, RecoveryModel, Compatibility, Owner, PageVerify, TargetRecoveryTime, IsReadCommittedSnapshotOn, SnapshotIsolationState, @{l="QueryStoreState";e={$_.QueryStoreOptions.ActualState}} | Export-Csv -notypeinfo -Path c:\bin\databasestatus.csv