Powershell 无法在函数中查询广告用户
很难用一句话解释这个问题 问题 我创建了一个函数,可以将一个组(拥有1000个用户的庞大组)中的所有用户添加到一个数组中。每次函数看到一个组时,它都使用该组调用自己 问题是,主要部分和这一行Powershell 无法在函数中查询广告用户,powershell,recursion,Powershell,Recursion,很难用一句话解释这个问题 问题 我创建了一个函数,可以将一个组(拥有1000个用户的庞大组)中的所有用户添加到一个数组中。每次函数看到一个组时,它都使用该组调用自己 问题是,主要部分和这一行$tempUsers=Get ADUser-LDAPFilter“(&(memberof=$($myGroup.differentiedname))”根本无法执行 在我开始之后,它刚刚完成脚本 功能 function Get-AllMembersFromGroup { [CmdletBinding()]
$tempUsers=Get ADUser-LDAPFilter“(&(memberof=$($myGroup.differentiedname))”
根本无法执行
在我开始之后,它刚刚完成脚本
功能
function Get-AllMembersFromGroup {
[CmdletBinding()]
[Alias()]
Param
(
# Postfach auf dieses Berechtigt werden soll
[Parameter(Mandatory=$false,
ValueFromPipelineByPropertyName=$true,
Position=0)]
[string]
$Identity
)
Begin {
$users = @()
$myGroup = Get-ADGroup $Identity
$tempUsers = Get-ADUser -LDAPFilter "(&(memberof=$($myGroup.distinguishedname)))"
}
Process {
foreach($user in $tempUsers) {
if($user.GetType().Name -eq "ADPrincipal") {
Get-AllMembersFromGroup -Identity $user
} else {
$users += $user
}
}
}
End {
#$users.count
}
}
我不明白。我把几个“写主机”语句放在正在打印的内容和未打印的内容上。第一行$myGroup=Get-ADGroup$Identity
运行并在其中包含一个广告组
但是在那之后,$tempUsers=Get ADUser-LDAPFilter“(&(memberof=$($myGroup.differentiedname))”
->$tempUsers
只是空的
如果我取消注释最后一条语句$users.count
,它会在启动脚本后立即打印0
在普通powershell中运行命令时:
$tempUsers = Get-ADUser -LDAPFilter "(&(memberof=$($myGroup.distinguishedname)))"
它可以工作,经过10秒的等待时间,这个变量中有3000个用户,正如我所希望的那样
我做错了什么?你能找到问题吗 你的代码对我有用。您使用的Powershell版本是什么?难以用一句话解释问题。如果你试图用一句话来解释,那就太糟糕了。$tempUsers只是空的。这可能是Get-ADUser-LDAPFilter没有返回任何内容吗?您的函数不正是像Get-ADGroupMember那样做的吗?对,只需使用
Get-ADGroupMember-Recurse
。