Powershell 格式差异
我有两段代码:Powershell 格式差异,powershell,Powershell,我有两段代码: $allUsers = Get-ADUser -Filter * foreach($_ in $allUsers.Name){ Write-Host "User $_ is member of the following groups:" -for Yellow Get-ADPrincipalGroupMembership -Identity $_ | select Name,objectClass,Groupscope,Groupcategory | sort
$allUsers = Get-ADUser -Filter *
foreach($_ in $allUsers.Name){
Write-Host "User $_ is member of the following groups:" -for Yellow
Get-ADPrincipalGroupMembership -Identity $_ | select Name,objectClass,Groupscope,Groupcategory | sort Name | Format-Table
}
User Administrator is member of the following groups:
Name objectClass Groupscope Groupcategory
---- ----------- ---------- -------------
Administrators group DomainLocal Security
Distributed COM U... group DomainLocal Security
Domain Admins group Global Security
Domain Users group Global Security
Enterprise Admins group Universal Security
Group Policy Crea... group Global Security
HelpLibraryUpdaters group DomainLocal Security
Schema Admins group Universal Security
User Guest is member of the following groups:
Name objectClass Groupscope Groupcategory
---- ----------- ---------- -------------
Domain Guests group Global Security
Guests group DomainLocal Security
另一个版本如下所示:
$allUsers = Get-ADUser -Filter *
foreach($_ in $allUsers.Name){
Write-Host "User $_ is member of the following groups:"
Get-ADPrincipalGroupMembership -Identity $_ | select Name,objectClass,Groupscope,Groupcategory | sort Name
}
User Administrator is member of the following groups:
Name objectClass Groupscope Groupcategory
---- ----------- ---------- -------------
Administrators group DomainLocal Security
Distributed COM U... group DomainLocal Security
Domain Admins group Global Security
Domain Users group Global Security
Enterprise Admins group Universal Security
Group Policy Crea... group Global Security
HelpLibraryUpdaters group DomainLocal Security
Schema Admins group Universal Security
User Guest is member of the following groups:
Domain Guests group Global Security
Guests group DomainLocal Security
在我看来,后者更容易阅读。我的问题是这是;为什么第一段代码显示每个用户的标题?在我看来,select对象是为$allUsers.Name中的每个用户调用的,因此每次都应该在后者中显示标题?区别在于调用
格式表的次数。在第一个示例中,为每个用户调用它。这意味着为每个用户打印标题。在第二个示例中,仅调用一次格式表
,因此标题仅打印一次
第二个命令末尾有一个隐含的格式表
,因此如果执行此操作:
$allUsers = Get-ADUser -Filter *
foreach($_ in $allUsers.Name){
Write-Host "User $_ is member of the following groups:"
Get-ADPrincipalGroupMembership -Identity $_ | select Name,objectClass,Groupscope,Groupcategory | sort Name
} | Format-Table
你应该得到同样的结果 不知道格式表是隐含的。谢谢