我有一个函数可以帮助我在AllUsers组中获取超过20k的用户(获取ObjectClass,Name,SamAccountname,DistinguishedName)。我试图列出任何拥有CBA- *组的人,但循环似乎每个用户重复输出几次(在第一个之后),当我只想要一次迭代(许多CBA- *可能性)时。这就是我所拥有的。此外,我收到错误" Get-ADPrincipalGroupMembership:由于内部错误,服务器无法处理请求。"任何想法为什么会发生?我不确定我能看出为什么我的代码可能会重复两次,但似乎接下来的用户就好了吗?
<?php
$category = Mage::getModel('catalog/category')->load(74);
$collection = $category->getCollection();
->addAttributeToSelect('name')
->addAttributeToSelect('image')
->addIdFilter($category->getChildren())
->setOrder('name', Varien_Db_Select::SQL_DESC);
答案 0 :(得分:1)
对于每次循环迭代,您继续使用加法运算符($User_MemberOf
)为+=
赋值,这意味着对于每个新用户,它都会被打磨&#34;与以前的用户越来越多&#39;成员资格。
要避免的两种方法:
$User_MemberOf
初始化为空数组:foreach($User in $Users){
$User_MemberOf = @()
Get-ADPrincipalGroupMembership -Identity $User.SamAccountName |Select -Expand Name |Where-Object {
$_ -like 'CBA-*'
} |ForEach-Object {
$User_MemberOf += $_
}
foreach($Group in $User_MemberOf){
# export to CSV
}
}
foreach($User in $Users){
$User_MemberOf = Get-ADPrincipalGroupMembership -Identity $User.SamAccountName |Select -Expand Name |Where-Object {
$_ -like 'CBA-*'
} |ForEach-Object {
$User_MemberOf += $_
}
foreach($Group in $User_MemberOf){
# export to CSV
}
}