Простой Powershell: вывод основного текста вместо формата из Get-ADOrganizationalUnit - PullRequest
2 голосов
/ 17 мая 2011

Это действительно относится практически к любой команде PS, но я запускаю:

Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase $strDomainDN -SearchScope OneLevel

и вывод выглядит так:

$_.Name
------
OU1
OU2
OU3
...

И все, что мне нужно, это фактический список без заголовка ($ _. Name или "------"). Я знаю, что это, вероятно, удивительно просто, но также очень неприятно при попытке отформатировать строки. Любая помощь будет оценена.

Ответы [ 2 ]

2 голосов
/ 17 мая 2011

PowerShell - это то, что произойдет, если Perl и .Net воспроизводятся.

Это не ответ, но причина, по которой ответ Энди работает так хорошо, связана с тем, что вы не знакомы с этим новым инструментом. PowerShell «думает» об объектах. Ответ PowerShell на вопрос: «Можете ли вы дать мне несколько организационных единиц?» это горстка OU's. Эти объекты имеют методы и свойства. Perl передает строки, а .NET не "передает" по сути. PowerShell передает объекты.

Вывод, который вы получили, представляет собой таблицу свойств объекта в формате CLI. Вы попросили PowerShell вернуть имена, поэтому он возвращает объекты, содержащие свойство Name. Для удобного представления этих объектов в текстовом или графическом интерфейсе PowerShell создает таблицу с меткой, разделителем «-----» и строками данных, вызывая их метод toString ().

«Foreach» творит чудеса, потому что он позволяет вам управлять форматированием, но вам захочется привыкнуть к тому, что объекты испускаются функциями. Прямые манипуляции с самим «объектом», а не его строковое представление, делают PowerShell настолько мощным.

2 голосов
/ 17 мая 2011

Существует множество способов сделать это, но один из них - выбрать то, что вы хотите, с помощью командлета foreach-object. Предполагая, что вам нужен только столбец Имя, вы можете сделать что-то вроде этого:

13 >  dir | select name | foreach-object {$_.Name} | out-string
Contacts
Desktop
Documents
Downloads
Favorites
Links
Lync Recordings
Music
NetApp
Pictures
Podcasts
PowerShellASP
Saved Games
Searches
Tracing
Videos
Virtual Machines

Out-String заставляет его выводить строку, а не массив строк для каждой строки вывода.

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