N和E在此选择语句中代表什么

Bra*_*ith 2 arrays powershell select

foreach ($computer in $computername) {

      $context = New-Object -TypeName System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ctype, $computer

      $idtype = [System.DirectoryServices.AccountManagement.IdentityType]::SamAccountName

      $group = [System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($context, $idtype, 'Administrators')

      $group.Members | select @{N='Server'; E={$computer}}, @{N='Domain'; E={$_.Context.Name}}, samaccountName
}
Run Code Online (Sandbox Code Playgroud)

有人可以描述这条线吗?“ N”和“ E”代表什么?

select @{N='Server'; E={$computer}}, @{N='Domain'; E={$_.Context.Name}}, samaccountName

我想要的输出看起来像以下内容,我想标记admin组中不属于我们标准设置的用户。确实,我想忽略作为域帐户的SAM帐户,但现在将其标记为有效。发生的情况是有一个遍历SAM帐户的循环来创建此输出。但是,当机器离线时,我也需要这样做。

示例输出

Mat*_*att 5

您正在寻找计算属性的键和值的简写形式。“ N”是Name的缩写。也可以使用“ L”或Label代替Name。“ E”当然是用于表达

当您要操纵现有属性或用作添加属性的简单方法时,可以使用它们。这绝不是唯一的方法。

TechNet 的Windows PowerShell本周技巧之一研究了一个很好的例子:

Get-ChildItem C:\Test | Select-Object Name, CreationTime,  @{Name="Kbytes";Expression={$_.Length / 1Kb}}
Run Code Online (Sandbox Code Playgroud)

Length通常以字节为单位。此处使用计算出的属性来允许更多的人类可读数字。这是操作属性的一个示例。

在您的情况下,您看起来像是在获取成员列表并为每个成员创建输出,同时引用其所连接的服务器。大概信息通常不存在,因此是计算出的属性。


Luk*_*uke 1

我相当确定“E”是“Expression”的简写,“N”是“Name”

在本例中,表达式是值,名称是选择语句的标题。