Как преобразовать массив объектов SMO в массив строк?

Я использую свой центральный сервер управления для заполнения / фильтрации списка серверов. Это работает почти со всем в dbatools, потому что они принимают объект SMO для sqlinstance.

invoke-sqlcmd2 принимает строку для ServerInstance.

Это работает:

$sql = "SELECT @@SERVERNAME"
$targets = 'catserver','server2\catman'
Invoke-Sqlcmd2 -ServerInstance $targets -Query $sql | Out-GridView

Это вызывает ошибку соединения, потому что каждый элемент не является строкой:

$sql = "SELECT @@SERVERNAME"
$targets = Get-DbaRegisteredServer -SqlInstance 'localhost' -group CATS | select servername
Invoke-Sqlcmd2 -ServerInstance $targets -Query $sql | Out-GridView

Когда я оба раза $ target - это список / массив только имен серверов, но я не могу заставить объекты SMO преобразовывать в список, как мои жестко запрограммированные строки.

На данный момент я могу просто читать текстовые файлы имен серверов в переменную, но я очень расстроен тем, что не могу просто взять ServerName каждого объекта в виде строки.

0 ответов

Другие вопросы по тегам