Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

Síntomas

Suponga que crea una búsqueda de eDiscovery In situ de Exchange Admin Center (EAF) para devolver los elementos que se envían a destinatarios externos especificando el destinatarios no: "internalDomain" criterios en la búsqueda. En esta situación, la sintaxis de búsqueda devuelve elementos que se envían a destinatarios externos sólo, pero excluye los elementos que tienen los destinatarios internos y externos.

Causa

Este problema se produce porque eDiscovery utiliza el lenguaje de consulta de palabra clave (KQL) que utiliza la lógica booleana. Por lo tanto, los no los destinatarios: "internalDomain" excluye todos los elementos que contienen un destinatario interno, incluso los elementos que también tienen un destinatario externo.

Nota: El diseño actual no proporciona una funcionalidad más refinada mediante el CEF.

Solución alternativa

Para evitar este problema, utilice uno de los métodos siguientes.

Método 1: Usar EWSEditor

Una aplicación de software gratuito EWSEditor está disponible para solucionar este problema. Hay una ventana de eDiscovery que se puede utilizar para buscar elementos.

Nota: Tendrá que configurar la cuenta utilizada para tener la función de auditoría RBAC para realizar estas búsquedas.

Método 2: Usar una API diferente

Usar una API diferente que no se basa en KQL. Tiene que crear una solución personalizada con otros programas, como Exchange Web Services (EWS). La solución puede recuperar algunas partes de los datos (un conjunto de datos más grande). La solución más tarde, procesar los resultados recibidos mediante lógica externa para llegar al conjunto deseado de los mensajes que coinciden con la no los destinatarios: "internalDomain" criterios según lo interpretará.
Además, para la identificación de dichos mensajes en el futuro, una solución mejor sería utilizar una regla de transporte que podría enviar copias de dichos elementos (destinatarios internos y externos) a un buzón de auditoría.

El siguiente es un código de ejemplo para evitar este problema utilizando la API administrada de EWS.

Nota: En este ejemplo de código, reemplace InternalDomain1.com, InternalDomain2.com, InternalDomain3.com con tu nombre de dominio interno. Este marcador de posición aparece en tres lugares del código.


<#AQS search using EWS Managed API
USAGE: .\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=0
do {
$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 Green
Write-Host "Total Items found:" $ic
$StopWatch = $null




Método 3: Supervisión preventivaPara la identificación de los elementos que tienen los destinatarios internos y externos, cree una regla de transporte que puede enviar copias de dichos elementos a un buzón de auditoría.

Estado

Microsoft ha confirmado que esto es así por diseño.

Más información

Para obtener más información acerca de eDiscovery In situ, visite el siguiente sitio Web de Microsoft:

Información general sobre eDiscovery In situPara obtener más información acerca de KQL, visite el siguiente sitio Web de Microsoft:

Referencia de sintaxis KQL

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×