Artiklar som skickas till externa och interna mottagare kan inte hittas med "Inte mottagare" av e-informationsavslöjande i Exchange 2013

VIKTIGT: Denna artikel har översatts av Microsofts programvara för maskin-översättning och möjligen efterredigerats via CTF-teknologi av Microsofts community istället för av en professionell mänsklig översättare. För att du på ditt eget språk skall få tillgång till samtliga Knowledge Base-artiklar erbjuder Microsoft både mänskligt översatta såväl som maskinöversatta artiklar samt artiklar som efterredigerats av en community. En maskinöversatt artikel likväl som en artikel som blivit efterredigerad av en community är dock inte alltid helt perfekt, då de kan innehålla misstag i ordförrådet, syntax- och grammatikfel. Microsoft är inte ansvarigt för några felaktigheter, misstag eller skador orsakade av felöversättningar eller för våra kunders bruk av innehållet. Microsoft uppdaterar ofta sin programvara för maskinöversättning samt de verktyg som förbättrar den maskinöversatta efterredigeringen.

Den engelska versionen av artikeln är följande: 2977178
Symptom
Anta att du skapar en plats i e-informationsavslöjande sökning i Exchange Admin Center (UK) för retur av artiklar som skickas till externa mottagare genom att ange den INTE mottagare: "internalDomain" kriterierna i sökningen. I det här fallet Söksyntaxen returnerar artiklar som skickas till endast externa mottagare, men omfattar inte artiklar som har interna och externa mottagare.
Orsak
Det här problemet beror på att e-informationsavslöjande används nyckelordet Query Language (KQL) som använder boolesk logik. Därför den inte mottagare: "internalDomain" de objekt som innehåller en intern mottagare, även objekt som också har en extern mottagare.

Obs! Den aktuella designen ger inte en finare funktioner via UK.
Workaround
Du kan använda någon av följande metoder om du vill undvika det här problemet.

Metod 1: Använd EWSEditor

En ledig matpotatis EWSEditor programmet är tillgängligt för att undvika det här problemet. Det finns en e-informationsavslöjande fönster som kan användas för att söka efter objekt.

Obs! Du måste konfigurera det konto som används för att granska RBAC-roll att göra sökningar.

Metod 2: Använd en annan API

Använd ett annat API som inte är beroende av KQL. Du måste bygga en egen lösning med hjälp av andra program, till exempel Exchange Web Services (EWS). Lösningen kan hämta delar av data (en större datauppsättning). Lösningen kan fortsätta att bearbeta mottagna resultatet med hjälp av externa logik att komma fram till önskad uppsättning meddelanden som matchar denINTE mottagare: "internalDomain" kriterier som du kan tolka den.
För att identifiera sådana meddelanden framåt, också är en bättre lösning att använda en transportregel som kan skicka kopior av dessa objekt (interna och externa mottagare) till en brevlåda för granskning.

Följande är ett kodexempel som kan lösa problemet med hjälp av EWS hanterade API.

Obs! I det här kodexemplet Ersätt InternalDomain1.com, InternalDomain2.com, InternalDomain3.com med det interna domännamnet. Den här platshållaren visas tre platser i koden.

Kodexempel

<#AQS search using EWS Managed APIUSAGE: .\Search-Mailbox.ps1 -MailboxName mbx@domain.com -AqsString "(""Test"")"#> [CmdletBinding()]param ( [Parameter(Position=0,Mandatory=$True,HelpMessage="Mailbox SMTP format")] [ValidateNotNullOrEmpty()] [string]$MailboxName,  [Parameter(Position=1,Mandatory=$True,HelpMessage="AQS QueryString")] [ValidateNotNullOrEmpty()] [string]$AqsString )######################################################################## Update EWS DLL Folder,$domain, $account, $pwd and $exserver Values########################################################################$resultFL = "C:\Scripts\Result"$domain = "SEARCH"$account = "MailboxSearch@domain.com";$pwd = '123'$exServer = "exch01search.net"$EWSManagedApiPath = "C:\scripts\Microsoft.Exchange.WebServices.dll"########################################################################$LogFile_All = "$($resultFL)\$($Mailboxname)_All.txt"$LogFile_Filtr = "$($resultFL)\$($Mailboxname)_Filtered.txt"$LogFile_Itype = "$($resultFL)\$($Mailboxname)_ItemTypes.txt"$StopWatch = New-Object system.Diagnostics.Stopwatch$StopWatch.Start()Add-Type -Path $EWSManagedApiPath$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2)$service.Credentials= new-object Microsoft.Exchange.WebServices.Data.WebCredentials($account,$pwd,$domain)$service.UseDefaultCredentials = $false$UseAutoDiscover = $false$service.Url = new-object uri("https://domain.com/EWS/Exchange.asmx")$ImpersonatedUserId = new-object Microsoft.Exchange.WebServices.Data.ImpersonatedUserId([Microsoft.Exchange.WebServices.Data.ConnectingIdType]::SmtpAddress,$MailboxName);$service.ImpersonatedUserId = $ImpersonatedUserId#Define Extended properties$PR_Folder_Path= new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(26293, [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::String);$PR_FOLDER_TYPE = new-object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(13825,[Microsoft.Exchange.WebServices.Data.MapiPropertyType]::Integer);$folderidcnt = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::MsgFolderRoot,$MailboxName)#Define the FolderView used for Export should not be any larger then 1000 folders due to throttling$fvFolderView =  New-Object Microsoft.Exchange.WebServices.Data.FolderView(1000)#Deep Transval will ensure all folders in the search path are returned$fvFolderView.Traversal = [Microsoft.Exchange.WebServices.Data.FolderTraversal]::Deep;$pSchPropSet= new-object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)$pSchPropSet.Add($PR_Folder_Path)$fvFolderView.PropertySet = $pSchPropSet#The Search filter will exclude any Search Folders$sfSearchFilter = new-object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo($PR_FOLDER_TYPE,"1")$fiResult = $null$MsgPropSet = New-Object Microsoft.Exchange.WebServices.Data.PropertySet$MsgPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::Id)$MsgPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::ParentFolderId)$MsgPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::ItemClass)$MsgPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::Subject)$MsgPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::DateTimeSent)$MsgPropSet.Add([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::Sender)$MsgPropSet.Add([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::ToRecipients)$MsgPropSet.Add([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::ccRecipients)$MsgPropSet.Add([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::BccRecipients)$AptPropSet = New-Object Microsoft.Exchange.WebServices.Data.PropertySet$AptPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::Id)$AptPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::ParentFolderId)$AptPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::ItemClass)$AptPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::Subject)$AptPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::DateTimeSent)$AptPropSet.Add([Microsoft.Exchange.WebServices.Data.AppointmentSchema]::Organizer)$AptPropSet.Add([Microsoft.Exchange.WebServices.Data.AppointmentSchema]::RequiredAttendees)$AptPropSet.Add([Microsoft.Exchange.WebServices.Data.AppointmentSchema]::OptionalAttendees)$SchPropSet = New-Object Microsoft.Exchange.WebServices.Data.PropertySet$SchPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::Id)$SchPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::ParentFolderId)$SchPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::ItemClass)$SchPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::Subject)$SchPropSet.Add([Microsoft.Exchange.WebServices.Data.ItemSchema]::DateTimeSent)$SchPropSet.Add([Microsoft.Exchange.WebServices.Data.MeetingRequestSchema]::Organizer)$SchPropSet.Add([Microsoft.Exchange.WebServices.Data.MeetingRequestSchema]::RequiredAttendees)$SchPropSet.Add([Microsoft.Exchange.WebServices.Data.MeetingRequestSchema]::OptionalAttendees)#Write-host "Checking Mailbox: $($MailboxName)"#Write-host "Searching QueryString: $($AqsString)"#The Do loop will handle any paging that is required if there are more the 1000 folders in a mailbox$ic=0$fic=0do {    $fiResult = $Service.FindFolders($folderidcnt,$sfSearchFilter,$fvFolderView)    #$fiResult.Folders.Count    foreach($ffFolder in $fiResult.Folders){       # "Processing : " + $ffFolder.displayName       $fpath =  $ffFolder.ExtendedProperties[0].Value        $fic++       $fiItems = $null       $ItemView = New-Object Microsoft.Exchange.WebServices.Data.ItemView(1000)       do{         Write-Progress -Activity "Processing $($MailboxName) - QueryString $($AqsString)" -Status $ffFolder.DisplayName -PercentComplete ($fic/$fiResult.Folders.Count*100)   $fiItems = $ffFolder.findItems($AqsString,$ItemView)         $ic = $ic + $fiItems.items.count         $ItemView.offset += $fiItems.Items.Count   foreach($Item in $fiItems.Items){            $itype = "$($item.ItemClass)`t$($Item.id.UniqueId)"            Add-content -Value $itype -Path $LogFile_Itype            $result=""            switch ($item.ItemClass)            {                "IPM.Note" {                            $Item.Load($MsgPropSet)                            $MT = @() # Create a MAPITABLE to filter external Domains                            $eRecipients=""                            $result = "$($mailboxname)`t$($fpath)`t$($Item.Sender.Name)`t$($Item.DateTimeSent)`t$($Item.Subject)`t$($Item.id.UniqueId)`t$($item.ItemClass)"                            Add-content -Value $result -Path $LogFile_All                            $item.ToRecipients | %{If($_.RoutingType -ne "EX"){$mt+=$_.Address}}                            $item.ccRecipients | %{If($_.RoutingType -ne "EX"){$mt+=$_.Address}}                            $item.BccRecipients | %{If($_.RoutingType -ne "EX"){$mt+=$_.Address}}                            $er=@()<#Replace InternalDomain1.com, InternalDomain2.com, InternalDomain3.com with your internal domain name.#>                            $mt | %{if($_ -notmatch 'InternalDomain1.com|InternalDomain2.com|InternalDomain3.com'){                                        $eRecipients = $true                                        $er +=$_                                        }                                    }                            }                                 "IPM.Appointment" {                            $Item.Load($AptPropSet)                            $MT = @() # Create a MAPITABLE to filter external Domains                            $eRecipients=""                            $result = "$($mailboxname)`t$($fpath)`t$($Item.Organizer.Name)`t$($Item.DateTimeSent)`t$($Item.Subject)`t$($Item.id.UniqueId)`t$($item.ItemClass)"                            Add-content -Value $result -Path $LogFile_All                            $item.RequiredAttendees | %{If($_.RoutingType -ne "EX"){$mt+=$_.Address}}                            $item.OptionalAttendees | %{If($_.RoutingType -ne "EX"){$mt+=$_.Address}}                            $er=@() <#Replace InternalDomain1.com, InternalDomain2.com, and InternalDomain3.com with your internal domain name.#>                            $mt | %{if($_ -notmatch 'InternalDomain1.com|InternalDomain2.com|InternalDomain3.com'){                                        $eRecipients = $true                                        $er +=$_                                        }                                    }                                                       }                                                    "IPM.Schedule.Meeting.Request" {                            $Item.Load($SchPropSet)                            $MT = @() # Create a MAPITABLE to filter external Domains                            $eRecipients=""                            $result = "$($mailboxname)`t$($fpath)`t$($Item.Organizer.Name)`t$($Item.DateTimeSent)`t$($Item.Subject)`t$($Item.id.UniqueId)`t$($item.ItemClass)"                            Add-content -Value $result -Path $LogFile_All                            $item.RequiredAttendees | %{If($_.RoutingType -ne "EX"){$mt+=$_.Address}}                            $item.OptionalAttendees | %{If($_.RoutingType -ne "EX"){$mt+=$_.Address}}                            $er=@()<#Replace InternalDomain1.com, InternalDomain2.com, InternalDomain3.com with your internal domain.#>                            $mt | %{if($_ -notmatch 'InternalDomain1.com|InternalDomain2.com|InternalDomain3.com'){                                        $eRecipients = $true                                        $er +=$_                                        }                                    }                            }                   Default {$eRecipients="";$result=""}             } #END Switch            If($eRecipients){                            $er = $er -join ";"                            $result="$($result)`t$($er)"                            Add-content -Value $result -Path $LogFile_Filtr                            }                      }  #End Foreach Items        }while($fiItems.MoreAvailable -eq $true)    }  #End Foreach Folders    $fvFolderView.Offset += $fiResult.Folders.Count}while($fiResult.MoreAvailable -eq $true)$StopWatch.Stop()write-host "Completed $($Mailboxname) in Seconds:" $StopWatch.Elapsed.TotalSeconds -ForegroundColor GreenWrite-Host "Total Items found:" $ic$StopWatch = $null


Metod 3: Förebyggande övervakning

Skapa en transportregel som kan skicka kopior av dessa objekt till en brevlåda för granskning för identifiering av artiklar som har interna och externa mottagare.
Status
Microsoft har bekräftat att detta är avsiktligt.
Mer Information
Mer information om e-informationsavslöjande för på plats går du till följande Microsoft-webbplats:Mer information om KQL finns på följande Microsoft-webbplats:

Varning: Den här artikeln har automatöversatts

Egenskaper

Artikel-id: 2977178 – senaste granskning 03/05/2016 16:14:00 – revision: 2.0

Microsoft Exchange Server 2013 Enterprise, Microsoft Exchange Server 2013 Standard

  • kbfix kbexpertiseadvanced kbsurveynew kbbug kbmt KB2977178 KbMtsv
Feedback