我希望迭代$ user中$ group的每一行。我相信我应该使用一个阵列,但我很难搞清楚它。
以下是我正在尝试做的基础知识。
$group = get-qadgroup -sizelimit 20 | select name
$user = Get-QADuser -memberof $group | %{
New-Object PSObject -Property @{
MemberOf = $group
Name = $_.Name
FirstName = $_.Firstname
LastName = $_.Lastname
AccountIsDisabled = $_.AccountIsDisabled
DN = $_.DN
}
}
$user | Select MemberOf, Name, FirstName, LastName, AccountIsDisabled, DN
编辑:非常抱歉,我应该补充一点,我只能使用get-QADGroup和get-QADUser。
答案 0 :(得分:0)
我认为你有点倒退了。我没有使用Quest cmdlet,但您可以使用标准的ActiveDirectory cmdlet:
$Group = Get-ADGroup <name> -prop Members
$Members = $Group.Members | ForEach{
$User = Get-ADUser $_
[PSCustomObject][Ordered]@{
'First Name' = $User.givenName
'Last Name' = $User.sn
'Group' = $Group.Name
'Account Enabled' = $user.enabled
'Distinguished Name' = $User.dn
}
}
然后$ Members将包含您在问题中描述的对象数组。如果您想要的不仅仅是小组,那么,我不确定您为什么会这样,以及您希望如何管理数据。这只是一个巨大的CSV转储,以显示所有用户和他们所属的组或什么?
现在我想起来了,这可能会给团体成员而不是用户带来错误,但我想你可以把它放到try / catch或其他东西来避免问题。
编辑:好的,使用Get-QADUser:
Get-QADUser -ShowProgress -Activity 'Retrieving all domain users' -ProgressThreshold 0 -SizeLimit 0 | ForEach{
$User = $_
$User.MemberOf | ForEach{
[PSCustomObject][Ordered]@{
'First Name' = $User.givenName
'Last Name' = $User.sn
'Group' = $_
'Account Enabled' = $user.enabled
'Distinguished Name' = $User.dn
}
}
} | Export-CSV "C:\Path\To\AllUsersGroups.csv" -NoType