这几乎适用于任何PS命令,但我正在运行:
Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase $strDomainDN -SearchScope OneLevel
,输出如下:
$_.Name
------
OU1
OU2
OU3
...
我想要的只是没有标题的实际列表($ _。名称或“------”)。我知道这可能非常简单,但在尝试格式化字符串时也非常令人沮丧。任何帮助将不胜感激。
答案 0 :(得分:2)
有很多方法可以做到这一点,但一种方法是使用foreach-object cmdlet选择所需的内容。假设您只需要Name列,您可以执行以下操作:
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强制它输出到字符串而不是输出的每一行的字符串数组。
答案 1 :(得分:2)
如果Perl和.Net再现,PowerShell会发生什么。
这不是一个答案,但Andy的答案工作得很好的原因与你对这个新工具的不熟悉有关。 PowerShell在对象中“思考”。 PowerShell对这个问题的回答是:“你能给我一些组织单位吗?” OU是少数几个。这些对象具有方法和属性。 Perl管道字符串和.NET本身并不“管道”。 PowerShell管道对象。
您收到的输出是CLI格式的对象属性表。您要求PowerShell返回名称,因此它返回包含Name属性的对象。为了以CLI /文本方式方便地表示这些对象,PowerShell通过调用其toString()方法生成带有标签,分隔符“-----”和数据行的表。
“Foreach”具有神奇之处,因为它可以让你控制格式化,但是你会想要对这些函数发出的对象感到满意。直接操作“对象”本身,而不是它的字符串表示,是PowerShell如此强大的原因。
答案 2 :(得分:1)
我遇到了同样的问题,但是找到了一个更简单的解决方案。
(Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchScope OneLevel).Name
,在一般情况下,执行任何运行的命令并找到可用的属性,然后可以按照与上面的'(...)。Name'相同的方式隔离它们中的任何一个,例如'(...)。国家/地区或'(...)。国家/地区。
PS C:\temp\checkdirs> Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchScope OneLevel | gm
TypeName: Microsoft.ActiveDirectory.Management.ADOrganizationalUnit
Name MemberType Definition
---- ---------- ----------
Contains Method bool Contains(string propertyName)
Equals Method bool Equals(System.Object obj)
GetEnumerator Method System.Collections.IDictionaryEnumerator GetEnumerator()
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Item ParameterizedProperty Microsoft.ActiveDirectory.Management.ADPropertyValueCollection Item(s...
City Property System.String City {get;set;}
Country Property System.String Country {get;set;}
DistinguishedName Property System.String DistinguishedName {get;set;}
LinkedGroupPolicyObjects Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection Linked...
ManagedBy Property System.String ManagedBy {get;set;}
Name Property System.String Name {get;}
ObjectClass Property System.String ObjectClass {get;set;}
ObjectGUID Property System.Nullable`1[[System.Guid, mscorlib, Version=4.0.0.0, Culture=ne...
PostalCode Property System.String PostalCode {get;set;}
State Property System.String State {get;set;}
StreetAddress Property System.String StreetAddress {get;set;}