Loops Powershell循环处理输出中的多个AD用户

Loops Powershell循环处理输出中的多个AD用户,loops,powershell,active-directory,Loops,Powershell,Active Directory,我在下面构建了一个特定的active directory用户详细信息及其组 如果仅返回一个用户,则此操作正常;如果返回多个用户,则此部分出现错误:“get ADPrincipalGroupMembership$user.samaccountname | select name” 我一直在寻找循环的方向,但还没有找到解决方案 我需要显示找到的每个用户及其组。 我计划使用此脚本快速收集信息以解决用户问题 谢谢你的阅读 add-pssnapin quest.activeroles.admanageme

我在下面构建了一个特定的active directory用户详细信息及其组

如果仅返回一个用户,则此操作正常;如果返回多个用户,则此部分出现错误:
“get ADPrincipalGroupMembership$user.samaccountname | select name”

我一直在寻找循环的方向,但还没有找到解决方案

我需要显示找到的每个用户及其组。 我计划使用此脚本快速收集信息以解决用户问题

谢谢你的阅读

add-pssnapin quest.activeroles.admanagement

import-module activedirectory

clear-host

$name = read-host 'Whats the name ?'

$user = Get-qAduser $name -properties *

$user | select name,SamAccountName,AccountIsLockedOut,PasswordStatus,PasswordLastSet,PasswordExpires,email,ParentContainerDN,CreationDate | format-list

Get-ADPrincipalGroupMembership $user.samaccountname | select name

cmd /c pause | Out-Null

假设您要返回一个列表,然后使用
foreach
对列表进行迭代:

add-pssnapin quest.activeroles.admanagement    
import-module activedirectory

clear-host

$name = read-host 'Whats the name ?'    
$users = Get-qAduser $name -properties *

foreach ($user in $users) {
    $user | select name,SamAccountName,AccountIsLockedOut,PasswordStatus,PasswordLastSet,PasswordExpires,email,ParentContainerDN,CreationDate | format-list

    Get-ADPrincipalGroupMembership $user.samaccountname | select name
}

基本上,
$user | ForEach对象{}
。要在循环中引用
$user
集合的当前元素,请使用
$\uuu
对象。还有一件事:
-properties*
将从域控制器中提取大量内容。为了更快的性能,请只指定您真正要使用的属性。您可以发布您得到的错误吗?很难确定foreach是没有错误的正确解决方案。这很有效,谢谢,唯一的问题是。。。组输出位于底部,而不是每个用户帐户的下方,因此我们只在末尾看到组列表,但不知道哪个组与哪个帐户匹配。name@Confuseis我更新了我的答案,以反映你的评论,太好了。格式列表导致了一个错误,所以我删除了它。输出被混合在一起,所以我添加了一个写主机“----------”以插入一行来分隔输出。现在,这是一种获取用户信息的快速方法。谢谢你的帮助,谢谢