我正在使用这个power-shell脚本来获取列表中所有SQL服务器的版本。
如何在脚本运行后将结果列(仅限查询输出而不是错误消息)导出到excel并发送到电子邮件?
有人能帮我添加所需的脚本吗?
Import-Module SQLPS -DisableNameChecking
$ServerInstences = Get-Content "D:\DBA\All_Server_monitoring\ServerList.txt"
$SQLQuery = @"
Select @@Servername 'Server Name' ,@@version 'Version'
"@
$DBName = "master"
$ServerInstences |
ForEach-Object {
$ServerObject = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $_
Invoke-Sqlcmd -ServerInstance $_ -Database $DBName -Query $SQLQuery
}
发布于 2020-04-16 11:52:37
将数据导出到csv文件的最简单方法是使用Export-CSV
,它接受一个输入对象(或对象数组)和一个路径,并可以从该对象/数组填充csv文件。对于你来说,它看起来是这样的:
$results = Invoke-Sqlcmd -ServerInstance $_ -Database $DBName -Query $SQLQuery
New-Item -Path "MYPATH.csv"
Export-CSV -Path "MYPATH.csv" -InputObject $results -Append
CSV文件是通用的,可以用最轻量级的文本编辑器打开。它们也可以很容易地通过电子邮件发送并使用Excel打开。
https://stackoverflow.com/questions/61234418
复制相似问题