Active directory 导出Csv无法将参数绑定到参数';InputObject';因为它是空的

Active directory 导出Csv无法将参数绑定到参数';InputObject';因为它是空的,active-directory,powershell-3.0,Active Directory,Powershell 3.0,我正试图通过power shell获取广告组成员的信息。但我得到的信息是 导出Csv:无法将参数绑定到参数“InputObject”,因为它为空 导入模块ActiveDirectory $Path=获取位置 $GroupName=Read Host“键入组名以检查其中的成员`t” foreach($GroupName中的组){ $users=@{} 获取ADUser-Filter'*'-属性名,DisplayName | ForEach对象{ $users[$\识别名称]=$_ } $Membe

我正试图通过power shell获取广告组成员的信息。但我得到的信息是

导出Csv:无法将参数绑定到参数“InputObject”,因为它为空

导入模块ActiveDirectory
$Path=获取位置
$GroupName=Read Host“键入组名以检查其中的成员`t”
foreach($GroupName中的组){
$users=@{}
获取ADUser-Filter'*'-属性名,DisplayName | ForEach对象{
$users[$\识别名称]=$_
}
$MemberCount=(获取ADGroup$group-Properties成员|选择对象-展开成员)。计数
写入主机“`t在此组上添加的用户/组总数:$MemberCount”-BackgroundColor DarkCyan
$Info=获取ADGroup$group-属性成员|
选择对象-展开成员|
ForEach对象{$users[$\uz]}
$Info |导出Csv-NoTypeInformation-追加-强制$Path\new.Csv

该错误意味着
$Info
包含空/空值。出现这些值的最可能原因是组中有未由
Get ADUser
返回的成员

您可以通过检查
$users
哈希表中是否存在密钥来避免此问题:

$Info = Get-ADGroup $group -Properties Member |
        Select-Object -Expand Member |
        ForEach-Object { if ($users.ContainsKey($_) {$users[$_]} }
如果您想进一步调查丢失的可分辨名称,可以按如下方式收集:

$missing = Get-ADGroup $group -Properties Member |
           Select-Object -Expand Member |
           ForEach-Object { if (-not $users.ContainsKey($_) {$_} }

最有可能的是
$Info
包含emtpy/null值。我的猜测是您的一些组成员是孤立的(在删除组成员的情况下删除了帐户)或外部引用或类似的内容。将
ForEach对象{$users[$\u]}
更改为类似于
ForEach对象{if($users.ContainsKey($\u)){$users[$\uu]}else{Write Host“Unknown DN:${{}”}
。感谢Angar-按照您建议的方式编辑。它起作用了。感谢您在下面查看