Как я могу экспортировать вывод запроса SQL в Excel, извлеченный через PowerShell? - PullRequest
0 голосов
/ 15 апреля 2020

Я использую этот скрипт 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
}

1 Ответ

0 голосов
/ 16 апреля 2020

Самый простой способ экспортировать данные в файл 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...