2017-08-30 33 views
0

我对PowerShell非常陌生,至今仍在学习,因此我需要从dbatools运行一些命令并保存结果。用dbatools迭代服务器列表?

$servers = 'E:\DBA\servers.txt' 
$outfile = 'E:\DBA\out.csv' 

Get-Content $servers | ForEach-Object {Invoke-Command DbaBackupHistory -SQLServer $_ | ConvertTo-CSV -NoTypeInformation | Select-Object -Skip 1 | Out-File -Append $outFile} 

我不能确定这是否是DOIT https://dbatools.io/functions/get-dbabackuphistory/

+2

为什么这个问题从DBA站点移出。它是PowerShell,并且与dbatools模块有关......它们都与SQL Server打交道,所以它会属于DBA问题。 –

回答

2

我修改剧本你和测试的正确方法。为我工作。我添加了2个开关来限制结果集。 -database-lastfull。您可以查看文档了解详情。

$outfile = 'c:\out.csv' 

Get-Content c:\servers.txt|foreach-object {get-DbaBackupHistory -SqlServer $_ 
-database dbadatabase -lastfull | ConvertTo-CSV -NoTypeInformation | 
Select-Object -Skip 1 | Out-File -Append $outFile} 
+0

谢谢,我可以在那之后解决它,但同样我也很感激 – Enrique

+2

'Get-DbaBackupHistory'支持滚动,因此您可以轻松地执行'Get-Content'C:\ servers.text | Get-DbaBackupHistory - 数据库DbaDatabase -LastFull |选择对象-Skip 1 | ExportTo-Csv -NoClobber -NoTypeInformation -Path $ outfile' –