Я создаю скрипт для захвата информации с нескольких SQL-серверов, загружая ее в файл, к которому пользователи могут добраться, и не нужно называть меня все время. проблема, с которой я столкнулся сейчас, - это форматирование вывода команды invoke-sql, чтобы я мог поместить ее в хэш-таблицу. Я хочу получить версию SQL в одном столбце (то есть Microsoft SQL Server 2008), а во втором столбце - номер сборки (т. Е. 10.0.5512.0). Ниже следует код, который я создал и что он выводит. Как вы можете видеть, я получаю информацию, но не могу поместить ее в хэш-таблицу. Он просто кладет ... в стол.Форматирование Powershell Invoke-sqlcmd
$SQLVerPart1= Invoke-Sqlcmd -Query "select @@VERSION;" -ServerInstance $Server | Out-String | ForEach-Object { $_ -replace '-.*'}
$SQLVerPart2 = Invoke-Sqlcmd -Query "select SERVERPROPERTY ('productversion')" -ServerInstance $Server | Out-String
$SQLVerPart1 | Out-File -Append $Log
$SQLVerPart2 | Out-File -Append $Log
$SQLVer.add($SQLVerPart1,$SQLVerPart2)
ВЫВОД:
Column1
Microsoft SQL Server 2008 (SP3)
Column1
10.0.5512.0
Название Значение
---- ----- ... ...
Это именно то, что мне нужно. Вторая часть работает прелесть, но у меня проблемы с ее расшифровкой.Что касается хеш-таблицы, я просто просматриваю каждый из моих серверов и отбрасываю информацию о версии в начале, прежде чем я займусь другими вещами, такими как базы данных, размеры, владельцы и т. Д., Поэтому я думаю, что первая часть, которую вы дали я сделаю все отлично. Спасибо за быстрый ответ! –