我正在尝试获取没有图片的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'.
答案 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;
当然,你也可以在一条线上完成所有这些工作,并保持管道。