Recherche de Boîte aux lettres A pas de travail
Je suis en train de supprimer le contenu d'une boîte aux lettres Exchange 2013 avant la date d'aujourd'hui. Il doit être précis à la seconde, j'ai appeler le Get-Date
applet de commande.
Ce code s'exécute sans erreur:
Search-Mailbox myID -SearchQuery Received:<Get-Date -DeleteContent -Force
Lors de l'exécution de cette, je vois la progression de la recherche dans la barre de PowerShell, à l'exception aucune donnée n'est trouvée. J'ai triple vérifié la boîte aux lettres, je travaille avec et il a données de plus 4/24/14/hh:mm:ss.
J'ai essayé d'innombrables variations, par exemple:
Search-Mailbox whism_j -SearchQuery "Received:<$((Get-Date).ToString("yyyy-MM-ddTHH:mm:ssZ"))" -DeleteContent -Force`
Cette commande ne s'exécute pas, que je reçois un The property keyword isn't supported
erreur.
Vous devez vous connecter pour publier un commentaire.
Pourquoi ton code ne fonctionne pas:
Cela ne fonctionne pas parce que
get-date
est analysée comme une chaîne littérale; vous n'êtes pas en interpolant les résultats de la Get-Date applet de commande. -SearchQuery est un paramètre de chaîne, et PowerShell implicitement interprète des arguments pour les paramètres de chaîne à deux chaînes entre guillemets. Pour interpoler les résultats de Get-Date, utilisez-SearchQuery Received:<$(Get-Date)
.Cela ne fonctionne pas car le format de la date n'est pas valide. Vous peut en déduire qu'elle doit être basée sur la AQS documentation, mais en fait, la date de de Recherche-Boîte aux lettres requêtes doit être dans un format conforme à la Bourse du serveur de paramètres régionaux.
Comment le faire:
Vous pourrait être en mesure de s'en tirer simplement en interpolant les résultats de Get-Date:
Toutefois, cela ne fonctionnera que si le format utilisé lorsqu'un objet DateTime est inséré dans une chaîne de caractères, qui est
MM/dd/yyyy HH:mm:ss
, correspond à la région. Pour s'assurer que vous obtenez le bon format, utilisez Get-Culture de déterminer la chaîne de format, et de l'offre de Get-Date's -Format paramètre:Si vous souhaitez utiliser la date d'aujourd'hui, vous pourrait utilisation Get-Date puis de le convertir en une chaîne de caractères comme RickH suggéré, mais ce n'est pas nécessaire, parce que l'AQS soutien nommé dates relatives, y compris aujourd'hui:
Notez que, comme le laisse entendre ce que j'ai dit ci-dessus, à l'extérieur des guillemets doubles ne sont pas strictement nécessaires si l'argument n'est pas contenir d'espaces qui ne sont pas à l'intérieur de parenthèses, mais je pense que c'est une bonne pratique, afin de les inclure.
Pour l'exhaustivité et l'avantage de futurs chercheurs, il convient de mentionner que l'AQS accepte également nommé relative des dates comme
today
,this week
, oulast month
, donc, cela devrait aussi fonctionner:Je n'ai pas prévoir que, dans le cadre de la réponse parce que dans une précédente (supprimé) version de la question de l'OP spécifiquement demandé comment rechercher des messages avant une heure précise, et
today
est juste la date actuelle sans un temps.Search-Mailbox id_attribute -SearchQuery "Received:<$(Get-Date)" -DeleteContent -Force
ce qui me donne le même ol' mot-clé d'erreur, et de ne pas courir.Search-Mailbox whism_j -SearchQuery "Received:<$(Get-Date -Format ((Get-culture).DateTimeFormat.ShortDatePattern))" -DeleteContent -Force
cela s'exécute correctement, mais ne trouve pas de données. Il me semble que quand je l'ai enfin trouver quelque chose à exécuter avec succès, aucune donnée n'est produite.Search-Mailbox whism_j -SearchQuery "Received:<$(get-date -Format d)" -DeleteContent -Force
cela fonctionne (bien que pas encore de retourner quoi que ce soit). La recherche d'unget-date -format G
ne le fait pas. Il lance le mot d'erreur."Received:<$(Get-Date -Format ((Get-culture).DateTimeFormat.ShortDatePattern))"
à l'invite de lui-même et dites-moi quels sont les résultats que vous obtenez. 2. Ce qui se passe si vous essayez de "Envoyé" au lieu de "Reçu"? 3. Que voulez-vous dire quand vous dites "pas de données est produit" ou "ne pas retourner quelque chose"? Voulez-vous dire que vous obtenez un ResultItemsCount 0, ou pas de résultats à tous? Ce dernier ne devrait pas arriver, vous devriez obtenir un rapport de résultat, même si rien n'est trouvé.-deleteContent
- je obtenir un positifResultItemCount
. J'ai re-rempli la boîte de réception de cette boîte aux lettres. Lorsque vous essayez d'ajouter unSearchQuery
monResultItemsCount
etResultItemsSize
est de 0. C'est ce que je veux dire par "pas de données". Si cela rend tout plus facile, lorsque je lance unget-culture
laLCID
est1033
,` Nom` esten-US
etDisplayName
estEnglish (United States)
"Received:<$(Get-Date -Format ((Get-culture).DateTimeFormat.ShortDatePattern))
je obtenir une fois de plus 0resultItemsCount
. Cela peut être une question bête, mais quelle est la différence entresent
etreceived
.2/5/2014 9:48:35 PM
$(Get-Date)
sans spécification d'un format (qui était de faire de la recherche universelle, mais il ne devrait pas mal pour inclure le format même si la culture est en-US). Notez également que je l'ai changé pour LongDatePattern, depuis votre exemple comprend secondes.property keyword isn't supported
erreur, j'ai pensé qu'il pourrait être intéressant de voir ce qui se passe si vous effectuez une recherche sur un autre datetime propriété.<
signe de ma requête, je trouve tous les éléments à partir d'aujourd'hui, date, et il les supprime. Toutefois, il ne faut pas suivre le format HH:mm:ss... C'est mieux qu'avant. Mais pas ce que je suis désireuxReceived:>1/1/1601
? Que doit supprimer tout.Received:>1/1/1601
ne pas supprimer n'importe quoi. J'ai essayéReceived:4/25/2014
et supprimé tous les articles que j'ai envoyé aujourd'hui...C'était un résultat haut de la page quand j'ai essayé de faire de la plage de dates des recherches sur Office 365 ( Exchange Online )
L'ajout de la SearchQuery pour trouver des e-mails vieux de plus d'un jour, je recevais ResultItemsCount 0.
Voici donc ce que j'ai finalement trouvé par essais et erreurs:
Vous recommandons d'utiliser l'ISO dash-pas-slash format: aaaa-mm-jj
VALIDE recherches:
CASSÉ recherches:
Received:>"2018-01-01"
retour-moi des messages. Pas sûr de la raison, toujours cela signifie que MS a fait un excellent travail à obscurcir la KQL analyseur de détails. Upvoted pour des exemples valides.Je pense que le problème que vous rencontrez est que la date de votre chaîne comporte des espaces dans des, il est donc l'interpréter comme une autre propriété de filtre. Il est donc de la lecture:
qui s'étend à quelque chose comme:
C'est de voir deux propriétés ici, je crois,
Received:
et10:
parce que votre date n'est pas entre guillemets. Cela devrait fonctionner pour vous:Edit: Désolé, mon erreur, pour une raison que je pensais que T était un onglet, mais il se traduit par la lettre "T". Aussi, il suffit de l'élément à rechercher est entre guillemets, pas la chose entière. Mise à jour de réponse. L'échange devrait voir la requête comme suit:
Le décalage horaire est facultative, ainsi que toutes les heures sont censés être à l'heure UTC. De Microsoft MSDN de page:
the property keyword isn't supported
. Je comprends tout à fait ce que vous dites, mais vous ne savez pas pourquoi je vois cette erreur si souvent. Je ne peux même pas le mettre dans une date précise, comme "4/24/2014"Received:<"2014-04-24T10:51:23"
me donne le mot-clé d'erreur. Quand j'enlève le format hh:mm:ss et il suffit d'utiliserReceived:<"2014-04-24"
, il s'exécute avec succès, mais ne fait pas de retourner quoi que ce soit.:
est interprétée comme une nouvelle propriété. Cependant, j'ai trouvé que Recherche de Boîte aux lettres vous ne pouvez pas gérer la norme ISO-8601 les formats de date, et requiert un format conforme avec les paramètres régionaux. Je n'ai aucun problème de la recherche avec des requêtes comme-SearchQuery "Received:<24/04/2014 15:09:37 kind:Email"
.The property keyword isn't supported
, t semblent indiquer que PowerShell est l'interprétation de quelque chose comme invalide au nom de la propriété; l'erreur que je reçois pour non valides les formats de date estPlease adjust the date time. Make sure it is in the correct format.
ouThere is an unexpected character in the query. Please re-type the query and try again.
Cependant, il est probablement essayé beaucoup de choses aujourd'hui que je me demandais si il pourrait avoir mélangé quel message d'erreur a été pour la commande. Avec son code, j'obtiens le "caractère inattendu d'erreur".yyyy/MM/ddTHHmmss
même si cela semble ridicule, qu'il fonctionne réellement. Je ne pense pas qu'il aime le côlon. De toute façon, quand je recherche juste paryyyy/MM/dd
même, aucun résultat n'est trouvé quand je suis en train de voir, 7 objets, il convient de supprimer dans la boîte aux lettres.- Je utiliser ce format et il fonctionne très bien
-A "Reçu:> $(‘22/09/2014 02:15:00’) ET Reçu:< $(‘22/09/2014 03:15:00’)"
Donc cela devrait fonctionner:
Recherche de Boîte aux lettres whism_j -A "Reçu:> $(‘22/09/2014 02:15:00’) ET Reçu:< $(‘22/09/2014 03:15:00’)" -deleteContent
Si vous souhaitez rechercher une date de gamme sans être spécifique à la seconde, il est beaucoup plus facile:
Recherche de Boîte aux lettres whism_j -A "a Reçu le:20/09/2014..23/09/2014" -deleteContent
Aussi, j'ai le problème avec une Recherche-Boîte aux lettres avec un A et il ne trouve pas les résultats, mais la Recherche de la Boîte aux lettres SANS SearchQuery le message s'affiche.
Il y a deux choses à vérifier que l'air de fonctionner.
Tout d'abord, déplacez la base de données vers un autre serveur, puis attendre (minutes/heures/jour?) alors une nouvelle recherche. Habituellement je peux trouver le message.
Suivante consiste à vérifier si c'est réellement indexées avec cette commande
Get-FailedContentIndexDocuments [email protected] | where {$_.sujet -match "des mots"} |ft Sujet, Description -AutoSize