如何从输出中卸下支架/弯曲支架
$t = [ADSI]"WinNT://$env:COMPUTERNAME"
$t1 = $adsi.PSBase.Children |where {$_.SchemaClassName -eq 'user'}
$t1 |select Name,Fullname
姓名全名
---- --------
{Anon} {Anon Xen1}
{Anon1} {Anon1 Xen2}
{Anon2} {Anon2 Xen3}
最佳答案
首先使用花括号的原因是因为Name和FullName属性是集合而不是字符串。具体来说,它们是System.DirectoryServices.PropertyValueCollection对象。
$t = [adsi]"WinNT://$env:COMPUTERNAME"
$t1 = $t.PSBase.Children |where {$_.SchemaClassName -eq 'user'}
$t1[0]|get-member
剥夺了额外的属性
TypeName: System.DirectoryServices.DirectoryEntry
Name MemberType Definition
---- ---------- ----------
FullName Property System.DirectoryServices.PropertyValueCollection FullName {get;set;}
Name Property System.DirectoryServices.PropertyValueCollection Name {get;set;}
然后,您可以创建一个自定义对象,并为它分配值,类似于上一个答案,但是我将遍历该集合,而不是任意获取第一个成员。
$t = [adsi]"WinNT://$env:COMPUTERNAME"
$t1 = $t.PSBase.Children |where {$_.SchemaClassName -eq 'user'}
$t1 | ForEach-Object{
$temp = New-Object PSObject -Property @{
"Name" = $_.Name | ForEach-Object {$_}
"FullName" = $_.FullName | ForEach-Object {$_}
}
$temp
}
Name FullName
---- --------
Administrator
Guest
如果要将其缩短为一根衬管,可以使用以下方法:
([adsi]"WinNT://$env:COMPUTERNAME").PSBase.Children|?{$_.SchemaClassName -eq 'user'}|%{$temp=""|Select Name,FullName;$temp.Name=$_.Name|%{$_};$temp.FullName=$_.FullName|%{$_};$temp}
Name FullName
---- --------
Administrator
Guest
关于powershell - 如何从输出中删除括号/弯曲括号-Powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24047408/