Что касается ...
Возможно ли использовать powershell для "почти" поиска контакта в GAL, используя название должности в качестве входного и контакт в качестве выходного?
... простой ответ, да.Вы просто пишете код для него, как если бы это был локальный Exchange, конечно, используя командлеты Exchange Online через сеанс PSRemote.
Подключение к EXO - это ежедневный сценарий использования и полностью задокументировано какКак от Microsoft здесь: Подключиться к Exchange Online PowerShell
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking
Или просто использовать этот скрипт из MS PowerSHellGallery.com
https://www.powershellgallery.com/packages/Connect-O365/1.5.4/Content/Connect-O365.ps1
Или этот
https://gallery.technet.microsoft.com/office/Connect-to-Office-53f6eb07/file/221497/1/Connect-Office365Services.ps1
Тем не менее, помните, что GAL заполняется из нашей эры.Итак, если вы находитесь в гибридной среде, вы можете просто поразить вашу локальную AD, чтобы получить это.
У вас есть встроенный командлет для поиска пользователей по AD и EXP / EXO:
Get-Command -Name '*adaccount*' | Format-Table -AutoSize
CommandType Name Version Source
----------- ---- ------- ------
Alias Set-ADAccountPasswordHash 3.4 DSInternals
Cmdlet Clear-ADAccountExpiration 1.0.1.0 ActiveDirectory
Cmdlet Disable-ADAccount 1.0.1.0 ActiveDirectory
Cmdlet Enable-ADAccount 1.0.1.0 ActiveDirectory
Cmdlet Get-ADAccountAuthorizationGroup 1.0.1.0 ActiveDirectory
Cmdlet Get-ADAccountResultantPasswordReplicationPolicy 1.0.1.0 ActiveDirectory
Cmdlet Search-ADAccount 1.0.1.0 ActiveDirectory
Cmdlet Set-ADAccountAuthenticationPolicySilo 1.0.1.0 ActiveDirectory
Cmdlet Set-ADAccountControl 1.0.1.0 ActiveDirectory
Cmdlet Set-ADAccountExpiration 1.0.1.0 ActiveDirectory
Cmdlet Set-ADAccountPassword 1.0.1.0 ActiveDirectory
Cmdlet Unlock-ADAccount 1.0.1.0 ActiveDirectory
# get function / cmdlet details
(Get-Command -Name Search-ADAccount).Parameters.Keys
Get-help -Name Search-ADAccount -Full
Get-help -Name Search-ADAccount -Online
Get-help -Name Search-ADAccount -Examples
Search-ADAccount -AccountDisabled | FT Name,ObjectClass -A
Search-ADAccount -AccountDisabled -UsersOnly | FT Name,ObjectClass -A
Search-ADAccount -AccountExpired | FT Name,ObjectClass -A
Search-ADAccount -AccountExpiring -TimeSpan 6.00:00:00 | FT Name,ObjectClass -A
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 | FT Name,ObjectClass -A
Search-ADAccount -PasswordExpired | FT Name,ObjectClass -A
Search-ADAccount -PasswordNeverExpires | FT Name,ObjectClass -A
Search-ADAccount -LockedOut | FT Name,ObjectClass -A
Search-ADAccount -AccountDisabled -ComputersOnly | FT Name,ObjectClass -A
Search-ADAccount -AccountExpiring -DateTime "3/18/2009" | FT Name,ObjectClass -A
Search-AdAccount -AccountDisabled -SearchBase "DC=AppNC" -Server "FABRIKAM-SRV1:60000"
# Or just use
(Get-Command -Name Get-ADUser).Parameters.Keys
Get-help -Name Get-ADUser -Full
Get-help -Name Get-ADUser -Online
Get-help -Name Get-ADUser -Examples
# If you are really wanting to do this using EXP/EXO, then it provide a cmdlet to help
Get-ADObject -ldapfilter "(&(objectClass=contact)(objectCategory=person)(!showinAddressBook=*))" -properties *
Вы также можете использовать ADAC, чтобы написать этот код для вас, просто нажмитечерез шаги и сохранение кода для изменения по мере необходимости.Следуйте этим инструкциям.
Введение в усовершенствования административного центра Active Directory (уровень 100)
Обучение PowerShell с помощью административного центра Active Directory (средство просмотра истории PowerShell)
Пошаговое руководство: использование средства просмотра истории PowerShell в Windows Server 2012 R2
Использование центра администрирования Active Directory для создания команд PowerShell в Windows Server 2012