Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Συμπτώματα

Ας υποθέσουμε ότι δημιουργείτε μια αναζήτηση ανακάλυψης επιτόπιας στο Exchange Admin κέντρο (ΕΚΟ) για να επαναφέρετε στοιχεία που έχουν αποσταλεί σε εξωτερικούς παραλήπτες, καθορίζοντας το δεν παραλήπτες: "internalDomain" κριτήρια στην αναζήτηση. Σε αυτήν την περίπτωση, τη σύνταξη αναζήτησης εντοπίζει όλα τα στοιχεία που αποστέλλονται μόνο σε εξωτερικούς παραλήπτες, αλλά δεν περιλαμβάνει στοιχεία που έχουν εσωτερικούς και εξωτερικούς παραλήπτες.

Αιτία

Αυτό το ζήτημα παρουσιάζεται επειδή η ηλεκτρονική ανακάλυψη χρησιμοποιεί τη λέξη-κλειδί ερώτημα γλώσσας (KQL) που χρησιμοποιεί η δυαδική λογική. Επομένως, το δεν παραλήπτες: "internalDomain" δεν περιλαμβάνει όλα τα στοιχεία που περιέχουν έναν εσωτερικό παραλήπτη, ακόμα και τα είδη που έχουν επίσης έναν εξωτερικό παραλήπτη.

Σημείωση Η τρέχουσα σχεδίαση δεν παρέχει ένα πιο Εκλεπτυσμένο λειτουργίες έως το μέγεθος ΕΚΟ.

Εναλλακτικός τρόπος αντιμετώπισης

Για να επιλύσετε αυτό το ζήτημα, μπορείτε να χρησιμοποιήσετε μία από τις ακόλουθες μεθόδους.

Μέθοδος 1: Χρήση EWSEditor

Για να επιλύσετε αυτό το ζήτημα, διατίθεται μια εφαρμογή EWSEditor -είδη. Υπάρχει ένα παράθυρο ανακάλυψης που μπορεί να χρησιμοποιηθεί για την αναζήτηση στοιχείων.

Σημείωση Πρέπει να ορίσετε το λογαριασμό που χρησιμοποιείται για να έχετε το ρόλο του RBAC ελέγχου για να το κάνετε αυτές τις αναζητήσεις.

Μέθοδος 2: Χρήση ένα διαφορετικό API

Χρησιμοποιήστε ένα διαφορετικό API που δεν βασίζεται στο KQL. Πρέπει να δημιουργήσετε μια προσαρμοσμένη λύση χρησιμοποιώντας άλλα προγράμματα, όπως οι υπηρεσίες Web Exchange (EWS). Η λύση είναι να ανακτήσετε ορισμένα τμήματα των δεδομένων (ένα μεγαλύτερο σύνολο δεδομένων). Η λύση να επεξεργαστείτε περαιτέρω τα ληφθέντα αποτελέσματα με τη χρήση εξωτερικών λογική για να καταλήξουμε σε το επιθυμητό σύνολο μηνυμάτων που ταιριάζουν με το δεν παραλήπτες: "internalDomain" κριτήρια που θα το ερμηνεύσει.
Επίσης, για την αναγνώριση των μηνυμάτων πορεία, μια καλύτερη λύση θα ήταν να χρησιμοποιήσετε έναν κανόνα μεταφοράς που μπορεί να στείλει αντίγραφα των εν λόγω στοιχείων (εσωτερικοί και εξωτερικοί παραλήπτες) σε ένα γραμματοκιβώτιο του ελέγχου.

Ακολουθεί ένα δείγμα κώδικα για να επιλύσετε αυτό το ζήτημα, χρησιμοποιώντας το API διαχείρισης EWS.

Σημείωση Σε αυτό το δείγμα κώδικα, αντικαταστήστε InternalDomain1.com, InternalDomain2.com, InternalDomain3.com με το όνομα του εσωτερικού τομέα. Εμφανίζεται αυτό το σύμβολο κράτησης θέσης σε τρεις θέσεις στον κώδικα.


<#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




Μέθοδος 3: Προληπτικής εποπτείαςΓια την αναγνώριση των στοιχείων που έχουν εσωτερικούς και εξωτερικούς παραλήπτες, δημιουργήστε έναν κανόνα μεταφοράς που να στείλετε αντίγραφα αυτών των ειδών σε ένα γραμματοκιβώτιο του ελέγχου.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι αυτό οφείλεται στη σχεδίαση.

Περισσότερες πληροφορίες

Για περισσότερες πληροφορίες σχετικά με την ηλεκτρονική ανακάλυψη επί τόπου, μεταβείτε στην παρακάτω τοποθεσία Web της Microsoft:

Γενικές πληροφορίες σχετικά με την άμεση ηλεκτρονική ανακάλυψηΓια περισσότερες πληροφορίες σχετικά με το KQL, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:

KQL σύνταξη αναφοράς

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×