Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell Get AdUser无法转换为system.string类型_Powershell_Active Directory - Fatal编程技术网

Powershell Get AdUser无法转换为system.string类型

Powershell Get AdUser无法转换为system.string类型,powershell,active-directory,Powershell,Active Directory,我正在尝试运行下面的get-aduser查询,但一直出现错误get-aduser无法转换为system.string类型。知道有什么问题吗?短暂性脑缺血发作 $Base = (Get-ADOrganizationalUnit -Filter {(Name -like "Department")}).DistinguishedName Get-ADUser -Filter * -SearchBase $Base -Properties Name 我对此进行了测试,我可以确认,如果调用Get-

我正在尝试运行下面的get-aduser查询,但一直出现错误get-aduser无法转换为system.string类型。知道有什么问题吗?短暂性脑缺血发作

$Base = (Get-ADOrganizationalUnit -Filter {(Name -like "Department")}).DistinguishedName

Get-ADUser -Filter *  -SearchBase $Base -Properties Name

我对此进行了测试,我可以确认,如果调用Get-ADOrganizationalUnit返回多个OU,那么DifferentizedName属性将是一个数组,而不是一个普通字符串。因此,您需要更改呼叫以获取ADOrganizationalUnit,以便它只返回一个

可以通过使用-ResultSetSize参数仅使用第一个结果来实现这一点:

$Base = (Get-ADOrganizationalUnit -Filter {(Name -like "Department")} -ResultSetSize 1).DistinguishedName
或者更改筛选器,使其仅与一个OU匹配。我假设您使用了-like,因为您在实际代码中使用了通配符,所以您可能需要更具体一些

更新:如果您希望用户来自所有匹配的OU,则可以使用:


我猜,$base是一个OU名称数组,而不是一个OU名称-SearchBase需要单个字符串,而不是集合。请检查$base的内容以确保。如果它是一个数组,那么你需要使用一些循环结构来一次处理一个,或者改进你的过滤器以得到你想要的。谢谢,我有大约5个OU要处理。resultsetsize是否只执行1个OU?是。你想从所有5个用户中获取用户吗?是的,如果可能的话,非常简单。我更新了我的答案,告诉你怎么做。
Get-ADOrganizationalUnit -Filter {(Name -like "Department")} |
    ForEach {
        Get-ADUser -Filter *  -SearchBase $_.DistinguishedName -Properties Name
    }