powershell - 如何从输出中删除括号/弯曲括号-Powershell

标签 powershell powershell-2.0 powershell-3.0

如何从输出中卸下支架/弯曲支架

$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/

相关文章:

powershell - 仅获取所有字母文件扩展名

powershell - 如何通过 PowerShell 获取 Windows 服务的登录帐户

powershell - 使用循环创建对象的正确性

c# - 用 C# 编写批处理脚本的好方法是什么?

powershell - 使用 PowerShell 确定具有特定文件扩展名的文件是否不在文件夹中

arrays - Powershell 一起添加值

powershell - ArrayList 中的空元素导致 'Cannot bind argument to parameter' 错误

powershell - 移动具有相同名称但扩展名不同的文件。电源外壳

powershell - 如何使用powershell仅对第二列值求和?

Powershell:在特定创建时间范围内递归搜索驱动器或目录中的文件类型