如何获得没有Picture的AD用户

时间:2014-12-18 20:32:44

标签: powershell active-directory

我正在尝试获取没有图片的AD用户列表。我在QBC.CAN域上并尝试从KOBAL域获取信息。 KOBAL域看起来像这个KOBAL.COM。 OU称为SALES AND子OU,名为NORTHWEST。

我的工作是获取名称,标题,电子邮件的用户列表,其中图片不存在。 thumbnailPhoto是ldap显示名称。我尝试了几个查询,但它没有给我我需要的东西并且不断收到错误。

Get-ADUser -Filter * -Server "ADCP12WSDC54X01.KOBAL.COM" -properties thumbnailPhoto | ? {!$_.thumbnailPhoto} | select Name

此代码有效,但我不需要整个列表。我只需要OU = SALES,OU = NORTHWEST。如果我将脚本更改为以下,则会出现错误

Get-ADUser -Filter * -SearchBase "OU=NORTHWEST, OU=SALES ,DC=KOBAL,DC=COM" -properties thumbnailPhoto | ? {!$_.thumbnailPhoto} | select Name

Get-ADUser : The supplied distinguishedName must belong to one of the following
 partition(s): 'DC=QBC,DC=CAN , CN=Configuration,DC=QBC,DC=CAN , cN=Schema,CN=Configuration,DC=QBC,DC=CAN , DC=DomainDnsZones,DC=QBC,DC=CAN, DC=ForestDnsZones,DC=QBC,DC=CAN'.

1 个答案:

答案 0 :(得分:3)

这是我要用的东西:

$SearchBase = 'OU=NORTHWEST,OU=SALES,DC=KOBAL,DC=COM';
$LdapServer = 'YourLDAPServerName';

$UsersWithoutPhotos = Get-ADUser -Filter 'thumbnailPhoto -notlike "*"' -SearchBase $SearchBase -SearchScope 'Subtree' -Server $LdapServer | Select-Object 'Name'

此处的过滤器无需管道Where-Object。它将返回目标OU或以下没有thumbnailPhoto属性的任何用户。您现在不需要-Properties thumbnailPhoto,因为您不再使用它,因此您无法返回所有数据。


编辑添加:

默认情况下,Get-ADUser返回的唯一属性是DistinguishedName,Enabled,GivenName,Name,ObjectClass,ObjectGUID,SamAccountName,SID,Surname,UserPrincipalName。如果您想要访问其他任何内容,则需要再次使用-Properties包含Get-ADUser参数来告诉该命令以获取该数据。所有Select-Object命令都会消除您不想看到的字段。

这应该适合你:

$UsersWithoutPhotos = Get-ADUser -Filter 'thumbnailPhoto -notlike "*"' -SearchBase $SearchBase -SearchScope 'Subtree' -Server $LdapServer -Properties 'title', 'displayName';

然后,您可以将其限制为您想要的字段:

$UsersWithoutPhotos = $UsersWithoutPhotos | Select-Object 'Name','title', 'displayName';

或按字段排序:

$UsersWithoutPhotos = $UsersWithoutPhotos | Sort-Object 'displayName';

并显示它:

$UsersWithoutPhotos | Format-Table -AutoSize;

或者:

$UsersWithoutPhotos | Out-GridView;

当然,你也可以在一条线上完成所有这些工作,并保持管道。