Skip to content

Instantly share code, notes, and snippets.

@bill-long
Last active November 1, 2023 19:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bill-long/86a00c6312ec148c44945332a47c6e5c to your computer and use it in GitHub Desktop.
Save bill-long/86a00c6312ec148c44945332a47c6e5c to your computer and use it in GitHub Desktop.
[CmdletBinding()]
param (
[Parameter()]
[string]
$Mailbox
)
$mb = Get-Mailbox $Mailbox
. $exscripts\ManagedStoreDiagnosticFunctions.ps1
$mbTableResult = Get-StoreQuery -Database "$($mb.Database.ToString())" -Query "SELECT MailboxNumber FROM Mailbox WHERE MailboxGuid = '$($mb.ExchangeGuid.ToString())'"
Write-Host "Found mailbox $($mb.DisplayName) with mailbox number $($mbTableResult.MailboxNumber)."
$mailboxNumber = $mbTableResult.MailboxNumber
$searchFolders = Get-StoreQuery -Database "$($mb.Database.ToString())" -Query "SELECT * FROM Folder WHERE MailboxNumber = $mailboxNumber" | Where-Object { $_.SearchState -ne "NULL" }
$searchFolders | ForEach-Object {
$criteria = $_.QueryCriteria
$parsedCriteria = Get-StoreQuery -Database "$($mb.Database.ToString())" -Query "SELECT * FROM ParseRestriction($criteria, $mailboxNumber)"
[PSCustomObject]@{
DisplayName = $_.DisplayName
FolderId = $_.FolderId
SearchState = $_.SearchState
SetSearchCriteriaFlags = $_.SetSearchCriteriaFlags
QueryCriteria = $parsedCriteria.Value
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment