TL; DR: Я ищу способ добавить результаты запроса SQL в переменную PowerShell DataRow, чтобы продолжить хранение результатов нескольких запросов.
Я честно новичок в PowerShell, и я «унаследовал» работающий сценарий, который запускает внутренний (разработанный компанией) сценарий оболочки PowerShell в качестве интерфейса для запросов к базе данных MS SQL. В основном сценарий делает следующее:
$ results =. \ Wrapper-script ""
$ results.GetType () сообщает мне, что это объект типа System.Data.DataRow.
Содержимое $ result обрабатывается ниже по потоку, и все это работает нормально.
Однако параметры оператора SQL SELECT становятся все длиннее и длиннее (он запрашивает атрибуты указанных c серверов. базы данных активов), поскольку список хостов, для которых мне нужно извлекать данные, становится длиннее. Итак, я пытался изменить скрипт, чтобы я мог просто заполнить текстовый файл хостами для запроса, прочитать его с помощью Get-Content, а затем использовать 'foreach' l oop для итерации по этому списку хостов и запустить один запрос SQL для каждого хоста, немного спите (чтобы не забивать БД) и просто продолжайте добавлять каждый набор результатов в эту переменную $ results. Я пробовал следующее:
$serverList = Get-Content -Path /path/to/file
foreach ($item in $serverList) {
$curObj = .\wrapper-script "<sql SELECT statement>"
$results += $curObj
}
Но скрипт здесь не работает, и я еще не уверен в причине, но я предполагаю, что + = не является допустимой операцией для этого типа объекта и, надеюсь, есть другой способ сделать это.
Мне нужно сохранить типы объектов нетронутыми, потому что это всего лишь часть гораздо большего сценария, и при моем текущем уровне навыков Po Sh мне нужно работать в этих пределах и не откусить больше, чем я могу прожевать.
Итак, я ищу способ просто добавлять результаты запроса SQL в существующую переменную DataRow. Возможно ли такое?
Спасибо!