Вывод Invoke-sqlcmd без заголовков

Я знаю, что этот вопрос уже задавался, но ответы не совсем соответствуют ограничениям, которые у меня есть. Итак, мы идем снова (извините за это):

У меня есть эта строка в моем сценарии PowerShell:

$WITHOUTCLIENT = Invoke-Sqlcmd -h -1 -Database CM_00A -Query "Select Members.Name From CollectionMembers Members Join Collections Coll on Members.SiteID = Coll.SiteID Where  Coll.CollectionName = '_SCCM-Machine Sans Client'"

Проблема в том, что хотя когда я подсчитываю количество элементов в этой коллекции, результат является точным (т.е. $WITHOUTCLIENT.count ), но когда я пытаюсь отобразить любой элемент в этой коллекции, он продолжает отображать кровавый заголовок (т.е. $WITHOUTCLIENT [0] )

Обратите внимание, что я НЕ хочу использовать внешний файл для хранения результата и что я должен использовать Invoke-Sqlcmd, а не Sqlcmd

прошу помощи Спасибо


person Zedude    schedule 24.09.2018    source источник
comment
$WITHOUTCLIENT - это правильный объект, а не вывод необработанного текста. Когда Powershell отображает эти данные, вы видите имена свойств, чтобы дать контекст данных. Какую проблему это вызывает у вас?   -  person Matt    schedule 24.09.2018
comment
Только что заметили, что у вас есть только одно свойство...$WITHOUTCLIENT[0].Name? Вы имеете дело с массивом объектов, когда я полагаю, что вам просто нужен массив строк. Это должно расширять только значение объекта.   -  person Matt    schedule 24.09.2018


Ответы (1)


Если вы выполните запрос:

$WITHOUTCLIENT = Invoke-Sqlcmd -h -1 -Database CM_00A -Query "Select Members.Name From CollectionMembers Members Join Collections Coll on Members.SiteID = Coll.SiteID Where  Coll.CollectionName = '_SCCM-Machine Sans Client'"

Вы получаете список объектов. У каждого объекта есть одно свойство, но это все еще объект. Чтобы получить «плоскую» коллекцию, используйте select с аргументом «-ExpandProperty»:

$WITHOUTCLIENT = $WITHOUTCLIENT | select -ExpandProperty Name
person Paweł Dyl    schedule 24.09.2018