0

我很难理解如何在PowerShell中使用EWS managed API时获得一些基本属性,但他们的文档几乎没有关于使用Powershell完成大多数任务的信息。使用EWS托管API 2.2获取用户帐户的别名列表

我真正想看到的是用户帐户中的所有别名。但我也想不明白如何让那里列出一些具体领域如Microsoft.Exchange.WebServices.Data.AlternateId

$Email = '[email protected]' 
$Pass = 'example4321' 
#path for the Exchange WebServices DLL 
$EWSPath = "C:\path\Microsoft.Exchange.WebServices.dll" 
#Connecting with EWS/Exchange 
[Reflection.Assembly]::LoadFile($EWSPath) | Out-Null 
$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2013_SP1) 
$service.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials($Email,$Pass) 
$service.Url = new-object Uri("https://outlook.office365.com/EWS/Exchange.asmx"); 
$service.traceenabled = "true" 

#Defining the Root folder 

$RootFolderId = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox,$email) 
$RootFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($Service,$RootFolderId) 
# ################ 
# Here I want to list all the user's aliases. 
################## 
$Mailbox = $RootFolder.getMailbox() 

回答

1

ResolveName https://msdn.microsoft.com/en-us/library/office/dn645423(v=exchg.150).aspx可能是你会得到的东西,会做,在EWS例如,如果您解析名称,然后返回最接近目录中的联系人信息。然而,它只会返回前3个地址中为EmailAddresses collection.eg

$ncCol = $service.ResolveName("[email protected]", [Microsoft.Exchange.WebServices.Data.ResolveNameSearchLocation]::DirectoryOnly, $true); 
if($ncCol.Count -gt 0){ 
    #Write-output ("Found " + $ncCol[0].Contact) 
} 

如果您正在使用Office365那么这种类型的事情是最适合的图形API将返回所有的寻找如https://graph.windows.net/youorg.com/me/proxyAddresses信息将返回一个帐户的所有代理地址

相关问题