Astuces du jour d'Exchange Management Shell

 

S’applique à : Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Dernière rubrique modifiée : 2007-08-24

Cette rubrique répertorie les astuces du jour de l’environnement de ligne de commande Exchange et lie vers les rubriques d’Aide Microsoft Exchange Server 2007 associées ou d’autres documents Microsoft appropriées. Les astuces du jour s’affichent à chaque ouverture de l’environnement de ligne de commande Exchange Management Shell.

Pour afficher une astuce du jour à la demande, ouvrez l’environnement de ligne de commande Exchange Management Shell et exécutez la cmdlet Get-Tip.

Conseil Voir aussi

Saviez-vous que Identity est un « paramètre de position » ? Cela signifie que vous pouvez utiliser :

Get-Mailbox "domain\user" au lieu de : Get-Mailbox -Identity "domain\user"

Il s'agit d'un raccourci fonctionnel ingénieux !

Pour retourner tous les scripts figurant dans votre chemin, tapez :

Get-Command -Type ExternalScript

Et pour un raccourci utile, attribuez-le dans votre profil comme :

Function Get-Scripts { Get-Command -Type ExternalScript }

En avez-vous assez de devoir taper une longue commande chaque fois que vous voulez faire quelque chose ? Remplacez-la par un alias ! Tapez :

Set-Alias GetSg Get-StorageGroup

Pour tous les alias actuels, tapez :

Get-Alias

Voulez-vous exporter des données de boîte aux lettres directement dans un fichier .pst ? Utilisez la cmdlet Export-Mailbox. Vous pouvez même exporter plusieurs boîtes aux lettres à l'aide d'une seule commande. Tapez :

Get-Mailbox | Export-Mailbox -PSTFolderPath <path to folder where data will be exported>

Vous pouvez également importer des fichiers .pst dans des boîtes aux lettres à l'aide de la cmdlet Import-Mailbox. Tapez :

Get-Mailbox | Import-Mailbox -PSTFolderPath <path to folder with <alias>.pst files to import>

Voulez-vous voir les membres d'un groupe de distribution dynamique qui a un filtre personnalisé ? Utilisez seulement la cmdlet Get-Recipient. Tapez :

$DDG = Get-DynamicDistributionGroup "Contoso Marketing Managers"

Get-Recipient -RecipientPreviewFilter $DDG.RecipientFilter

Exchange Management Shell est également un calculateur ! Tentez de l'utiliser directement dans la ligne de commande :

1.2343+3123 or (23/435)*2

 

Ligne de commande 911 ! Avez-vous besoin d'aide ? Tapez :

Help <cmdlet-name> or <cmdlet-name> -?

Vous pouvez également effectuer des recherches à l'aide de caractères génériques et de correspondances de nom partiel :

Help *UM*

Et vous pouvez obtenir plus de détails sur une cmdlet en tapant :

Get-Command <cmdlet-name>

Un raccourci rapide pour obtenir tous les paramètres d'une cmdlet est :

Get-Command <cmdlet-name> | Format-List Definition

ou en abrégé :

Gcm <cmdlet-name> | Fl Def*

Le caractère tilde ( ) est en principe familier pour les utilisateurs d'Unix. Il représente le raccourci de votre répertoire racine. Pour voir son évaluation par défaut, tapez :

Dir ~

Vous pouvez l'utiliser comme un raccourci utile :

Cp SomeFile "~\My Documents"

Vous voulez déplacer des boîtes aux lettres ? Tapez :

Move-Mailbox

Vous pouvez déplacer tous les utilisateurs du serveur SRV1 vers le serveur SRV2 comme suit :

Get-Mailbox -Server SRV1 | Move-Mailbox -TargetDatabase SRV2

La combinaison de touches CTRL+C équivaut à la commande d'interruption dans Exchange Management Shell. Si l'exécution d'une commande prend trop de temps ou si vous voulez annuler une opération rapidement, appuyez sur CTRL+C pour arrêter l'exécution.

 

Les commandes Pushd et Popd fonctionnent de la même manière dans Exchange Management Shell que dans cmd.exe. Tapez :

Pushd <location>

XML avant tout ! Exchange Management Shell traite le code XML comme un type natif, de sorte que vous pouvez faire des choses intéressantes, telles que :

$Sample = [XML](Get-Content SomeXMLFile.xml)

Cette commande attribue $Sample à l'objet XML réel. Pour voir son effet, tapez :

$Sample

Pour naviguer, tapez :

$Sample.Prop1.Prop2

Pas besoin d'analyse de texte lorsque vous voulez charger des données XML !

Les cmdlets qui se terminent par « Config » gèrent la configuration singleton, un par serveur ou par organisation. Pour ces tâches, vous ne devez pas spécifier de paramètre Identity car il n'y a qu'une seule instance de la configuration. Il se peut que vous deviez spécifier le paramètre Server si la configuration est appliquée par serveur.

Pour obtenir la liste de tous les utilisateurs d'un serveur Exchange 2007 qui ne sont pas du type à messagerie unifiée activée, tapez :

Get-UmMailbox | ForEach { If($_.UmEnabled -Eq $False){$_.Name}}

Pour obtenir la liste de tous les utilisateurs d'un serveur Exchange 2007 qui sont du type à messagerie unifiée activée, tapez :

Get-UmMailbox | ForEach { If($_.UmEnabled -Eq $True){$_.Name}}

Pour afficher l'alias de l'utilisateur mis en forme dans un tableau indiquant également le nom de serveur Exchange 2007 et le numéro de poste téléphonique du l'utilisateur, tapez :

Get-UmMailbox | Format-Table ServerName,@{e={$_.SamAccountName};Label="User Alias"},@{Expression="Extensions";Label="Telephone numbers"}

Pour afficher la liste des noms des serveurs de passerelle IP de MU désactivés pour les appels sortants et des groupes de recherche associés à un serveur de passerelle IP de MU, tapez :

Get-UMIPGateway | ForEach {If($_.OutCallsAllowed -Eq $False){ "Gateway Name = " +$_.Name;ForEach ($HuntGroup In $_.Huntgroups){"Huntgroups " + $Huntgroup}}}

Si vous voulez tester tous les fournisseurs de listes rouges d'IP, vous devez canaliser la cmdlet Get-IpBlockListProvider vers la cmdlet Test-IpBlockListProvider :

Get-IpBlockListProvider | Test-IpBlockListProvider -IpAddress 192.168.0.1

Avant de supprimer un objet à l'aide du verbe Remove, utilisez le paramètre WhatIf pour vérifier que les résultats correspondent à votre attente.

Parfois, il est utile de convertir la sortie d'une cmdlet en une chaîne pour interagir avec des cmdlets natives. Par exemple, tapez :

Get-Command | Out-String | Findstr "command"

Obtenez toutes les informations sur Win32 WMI, par exemple sur les compteurs perfmon et les configurations d'ordinateur local. Par exemple, tapez :

Get-WMIObject Win32_PerfRawData_PerfOS_Memory

Las du courrier indésirable ? Qui ne l'est pas ? Vous pouvez configurer des fournisseurs de listes rouges en temps réel (RBL) avec Exchange Management Shell en exécutant les deux commandes suivantes :

Set-IPBlockListProvidersConfig -Enabled $True -ExternalMailEnabled $True

puis

Add-IPBlockListProvider -Name <Name of RBL Provider> -LookupDomain <FQDN of RBL Provider> -AnyMatch $True

Accédez au journal des événements depuis Exchange Management Shell. Pour extraire le journal des événements complet, exécutez :

Get-EventLog Application | Format-List

Pour extraire tous les événements en relation avec Exchange, exécutez :

Get-EventLog Application | Where { $_.Source -Ilike "*Exchange*" }

Un avantage offert par Exchange Management Shell est que les cmdlets peuvent envoyer des objets à la console. Vous pouvez ensuite manipuler cette sortie et l'organiser de façon intéressante. Par exemple, pour obtenir un aperçu rapide sous forme de tableau, utilisez Format-Table :

Get-Mailbox | Format-Table Name,Database,RulesQuota

Vous avez oublié un nom de propriété ? Ce n'est pas un problème car vous pouvez utiliser des caractères génériques pour extraire toutes les propriétés correspondant à la partie du nom que vous spécifiez :

Get-Mailbox | Format-Table Name,*SMTP*

Vous voulez travailler avec des données contenues dans un fichier CSV ? Utilisez Import-CSV pour attribuer les données à un objet. Par exemple, tapez :

$MyCSV = Import-CSV TestFile.CSV

Vous pouvez aussi aisément manipuler les données dans Exchange Management Shell. Par exemple, s'il y a une colonne nommée Mailboxes dans les données CSV, vous pouvez utiliser les commandes suivantes pour trier ou regrouper les données en fonction du contenu de la colonne Mailboxes :

Pour trier : $MyCSV | Sort Mailboxes

Pour regrouper : $MyCSV | Group Mailboxes

Cette commande explore tous les serveurs de boîtes aux lettres et reconnecte toutes les boîtes aux lettres ayant une identification unique mais déconnectées dans l'une des banques de boîtes aux lettres :

Get-ExchangeServer | `

Where { $_.IsMailboxServer -Eq '$True' } `

| ForEach { Get-MailboxStatistics -Server $_.Name `

| Where { $_.DisconnectDate -NotLike '' } `

| ForEach { Connect-Mailbox -Identity `

$_.DisplayName -Database $_.DatabaseName} }

La fonction de saisie semi-automatique à l'aide de la touche de tabulation réduit le nombre de frappes requises pour entrer une cmdlet. Appuyez simplement sur la touche de tabulation pour compléter la cmdlet que vous tapez. La fonction de saisie semi-automatique à l'aide de la touche de tabulation s'enclenche chaque fois qu'un tiret (-) est présent dans l'entrée. Par exemple :

Get-Send<tab>

doit compléter Get-SendConnector. Vous pouvez même utiliser des expressions régulières, telles que :

Get-U*P*<tab>

L'action de la touche de tabulation tandis que vous entrez cette commande a pour effet de parcourir toutes les cmdlets correspondant à l'expression, telles que les cmdlets de stratégie de boîte aux lettres de messagerie unifiée.

Vous voulez créer un groupe d'utilisateurs test dans votre laboratoire ? Utilisez la commande suivante :

1..100 | ForEach { Net User "User$_" MyPassword=01 /ADD /Domain; Enable-Mailbox "User$_" -Database <MailboxDatabaseName> }

Vous voulez modifier les paramètres d'authentification d'un répertoire virtuel Outlook Web Access ? Essayez, par exemple, la commande suivante. Elle modifie l'authentification par formulaires en authentification Windows :

Set-OwaVirtualDirectory -Identity "OWA (Default Web Site)" -FormsAuthentication 0 -WindowsAuthentication 1

Vous voulez définir les propriétés de répertoires virtuels Outlook Web Access ? Canalisez la sortie de Get-OwaVirtualDirectory vers la cmdlet Set-OwaVirtualDirectory. Par exemple, la commande suivante définit le niveau Gzip pour tous les répertoires virtuels Outlook Web Access :

Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -GzipLevel High

Vous voulez supprimer un périphérique ActiveSync de la liste de périphériques d'un utilisateur ? Tapez :

Remove-ActiveSyncDevice

Cette cmdlet permet de dépanner les périphériques qui ne se synchronisent pas correctement avec le serveur.

Vous voulez effacer toutes les données d'un périphérique mobile ? Utilisez :

Clear-ActiveSyncDevice

Spécifiez une heure pour l'effacement des données du périphérique ou laissez la tâche s'accomplir lors de la prochaine connexion du périphérique au serveur.

Vous voulez afficher la liste de tous les périphériques qui se synchronisent avec la boîte aux lettres d'un utilisateur ? Tapez :

Get-ActiveSyncDeviceStatistics

Une série d'informations sont retournées, dont le nom du périphérique, son système d'exploitation et la dernière heure de synchronisation.

L'un de vos utilisateurs a demandé à récupérer son mot de passe de synchronisation de périphérique mobile ? Pour retourner le mot de passe de l'utilisateur, tapez :

Get-ActiveSyncDeviceStatistics -ShowRecoveryPassword

Vous voulez déplacer le chemin du groupe de stockage ? Tapez :

Move-StorageGroupPath -LogFolderPath DestLogFolder

Pour modifier uniquement le paramétrage du chemin sans déplacer de données, utilisez cette commande avec le paramètre ConfigurationOnly. Cette commande est particulièrement utile pour une récupération d'urgence.

CautionAttention :
une utilisation incorrecte de cette cmdlet peut entraîner une perte de données.

Vous voulez déplacer le chemin de votre base de données ? Tapez :

Move-DatabasePath -EdbFilePath DestFileName

Pour modifier le paramétrage du chemin de fichier sans déplacer de données, utilisez cette commande avec le paramètre ConfigurationOnly. Cette commande est particulièrement utile pour une récupération d'urgence.

CautionAttention :
une utilisation incorrecte de cette cmdlet peut entraîner une perte de données.

Pour définir les restrictions de numérotation d'un plan de commutation des appels de messagerie unifiée spécifique, tapez :

$Dp = Get-UmDialPlan -Identity <Your_DialPlan_Identity>

$Dp.ConfiguredInCountryGroups.Add("Group1,91xxxxxxxxxx,91xxxxxxxxxx")

$Dp.ConfiguredInCountryGroups.Add("Group1,9xxxxxxxxxx,91xxxxxxxxxx")

$Dp.ConfiguredInCountryGroups.Add("Group1,9xxxxxxx,9xxxxxxx")

$Dp.AllowedInCountryGroups.Add("Group1")

$Dp.OutsideLineAccessCode = 9

$Dp | Set-UmDialPlan

Vous voulez ajouter aisément une nouvelle adresse SMTP principale à un groupe de boîtes aux lettres ? La commande suivante crée une nouvelle stratégie d'adresse de messagerie qui attribue le domaine @contoso.com à l'adresse SMTP principale de toutes les boîtes aux lettres dont le champ Société contient Contoso :

New-EmailAddressPolicy -Name Contoso -RecipientFilter {Company -Eq "Contoso"} -EnabledPrimarySMTPAddressTemplate "@contoso.com"

Vous voulez extraire un groupe d'objets ayant des identités similaires ? Vous pouvez utiliser des caractères génériques avec le paramètre Identity pour établir une correspondance avec plusieurs objets. Tapez :

Get-Mailbox *John*

Get-ReceiveConnector *toso.com

Get-JournalRule *discovery*

Vous voulez configurer un groupe d'objets ayant des identités similaires ? Vous pouvez utiliser des caractères génériques avec le paramètre Identity lorsque vous utilisez une cmdlet Get et canaliser la sortie vers une cmdlet Set. Tapez :

Get-Mailbox *John* | Set-Mailbox -ProhibitSendQuota 100MB

Cette commande établit une correspondance avec toutes les boîtes aux lettres dont le paramètre Identity contient « John » et définit le paramètre ProhibitSendQuota sur 100MB.

La plupart des cmdlets vous permettent de transférer la sortie d'un nom vers un autre afin d'afficher ou de modifier des objets associés. Par exemple, vous pouvez définir la limite de taille de toutes les boîtes aux lettres résidant dans une base de données de boîtes aux lettres spécifique sur un serveur. Pour ce faire, utilisez la commande suivante :

Get-MailboxDatabase "Executives" | Get-Mailbox | Set-Mailbox -ProhibitSendQuota 300MB

Cette commande extrait toutes les boîtes aux lettres qui résident dans la base de données de boîtes aux lettres « Executives » et définit leur valeur ProhibitSendQuota sur 300MB.

Vous avez oublié les paramètres disponibles pour une cmdlet ? Utilisez simplement la fonction de saisie semi-automatique à l'aide de la touche de tabulation ! Tapez :

Set-Mailbox -<tab>

Lorsque vous tapez un tiret (-), puis appuyez sur la touche de tabulation, l'application explore tous les paramètres disponibles pour la cmdlet. Vous voulez rétrécir la recherche ? Tapez une partie du nom du paramètre, puis appuyez sur la touche de tabulation. Tapez :

Set-Mailbox -Prohibit<tab>

Oubliez la commande ping. Voici la commande Test-MapiConnectivity ! Utilisez la commande Test-MapiConnectivity pour dépanner les problèmes de connectivité entre vos utilisateurs et vos serveurs. Combinez la commande Test-MapiConnectivity avec une série de cmdlets afin de cibler votre problème spécifique sans devoir rechercher manuellement des informations :

Boîtes aux lettres : Get-Mailbox <Mailbox Name> | Test-MapiConnectivity

Bases de données de boîtes aux lettres : Get-MailboxDatabase <Database Name> | Test-MapiConnectivity

Serveurs : Get-MailboxServer <Server Name> | Test-MapiConnectivity

Vous voulez ajouter un alias à plusieurs groupes de distribution portant un nom similaire ? Tapez :

Get-DistributionGroup *Exchange* | Add-DistributionGroupMember -Member kim

Cette commande ajoute l'alias « kim » à tous les groupes de distribution contenant le mot « Exchange ».

Vous voulez enregistrer précisément ce qu'il se passe lorsque vous utilisez Exchange Management Shell ? Utilisez la cmdlet Start-Transcript. Tout ce que vous faites après avoir exécuté cette cmdlet est consigné dans le fichier texte que vous spécifiez. Pour arrêter l'enregistrement de votre session, utilisez la cmdlet Stop-Transcript.

Notez que la cmdlet Start-Transcript remplace le fichier texte de destination par un fichier par défaut. Pour ajouter votre session à un fichier existant, utilisez le paramètre Append :

Start-Transcript c:\MySession.txt -Append

 

Voici une astuce pratique pour répéter une commande un certain nombre de fois. Au lieu d'écrire une boucle For, utilisez la syntaxe suivante :

1..10 | ForEach { "do something here" }

Par exemple, la commande suivante crée 10 nouveaux groupes de stockage nommés sg1 à sg10 sur le serveur TestServer :

1..10 | ForEach { New-StorageGroup -Name "sg$_" -server TestServer }

Vous voulez savoir quand vos bases de données de boîtes aux lettres ont été sauvegardées pour la dernière fois ? Tapez :

Get-ExchangeServer | Get-MailboxDatabase -Status | Format-Table Name, *Back*

Vous voulez déplacer toutes les boîtes aux lettres d'une base de données dans une autre ? Pour ce faire, utilisez la commande suivante :

Get-MailboxDatabase <Source Mailbox Database> | Get-Mailbox | Move-Mailbox -TargetDatabase <Destination Mailbox Database>

Vous pouvez même utiliser des caractères génériques avec la cmdlet Get-MailboxDatabase pour consolider des boîtes aux lettres à partir de plusieurs bases de données de boîtes aux lettres sources dans une seule base de données de destination.

Vous avez un utilisateur disposant d'un accès réseau mais qui maintient un compte de messagerie externe à votre organisation Exchange ? Exchange Server 2007 vous permet de créer des utilisateurs à messagerie activée qui sont des comptes Active Directory ordinaires mais qui se comportent comme des contacts à messagerie activée. La cmdlet Enable-MailUser vous permet d'ajouter des attributs de contact de messagerie à un utilisateur Active Directory ne disposant pas encore de boîte aux lettres sur un serveur Exchange. Cela permet ensuite aux utilisateurs de votre organisation Exchange d'envoyer des messages électroniques au compte de messagerie externe de cet utilisateur. Tapez :

Enable-MailUser -Identity <Active Directory Alias> -ExternalEmailAddress <Destination SMTP Address>

Vous voulez modifier le quota d'interdiction d'envoi par défaut pour une base de données de boîtes aux lettres ? Tapez :

Set-MailboxDatabase <Mailbox Database Name> -ProhibitSendQuota <New Quota Size>

Vous pouvez spécifier un qualificateur d'octets lorsque vous utilisez le paramètre ProhibitSendQuota. Par exemple, si vous voulez définir le quota d'interdiction d'envoi sur 200 mégaoctets, tapez :

ProhibitSendQuota 200MB

Vous pouvez également configurer les paramètres IssueWarningQuota et ProhibitSendReceiveQuota de la même manière.

Vous voulez connaître la version d'Exchange Server exécutée par chacun de vos serveurs ? Tapez :

Get-ExchangeServer | Format-Table Name, *Version*

Vous voulez savoir quels serveurs Exchange 2007 n'ont pas encore été configurés avec une clé de produit valide et si leur période d'essai a expiré ? Tapez :

Get-ExchangeServer | Where { $_.IsExchange12TrialEdition -Eq $true } | Format-Table Name, *Trial*

Vous voulez déterminer si un serveur exécute Exchange Server 2007 Standard Edition ou Exchange Server 2007 Enterprise Edition ? Tapez :

Get-ExchangeServer <Server Name> | Format-Table Name, Edition

Si vous voulez voir l'édition que tous vos serveurs Exchange exécutent, omettez le paramètre <Server Name>.

Vous voulez créer une nouvelle boîte aux lettres de ressources permettant de réserver une salle de réunion ? Tapez :

New-Mailbox -Name <Conference Room Name> -UserPrincipalName <SMTP Address> -Database <Mailbox Database> -OrganizationalUnit <Organizational Unit> -Room

Cette commande crée un utilisateur Active Directory désactivé disposant d'une boîte aux lettres acceptant les demandes de réunion d'utilisateurs.

Vous voulez ajouter un dédit de responsabilité à tous les messages électroniques sortants ? Tapez :

$Condition = Get-TransportRulePredicate FromScope

$Condition.Scope = "InOrganization"

$Condition2 = Get-TransportRulePredicate SentToScope

$Condition2.Scope = "NotInOrganization"

$Action = Get-TransportRuleAction ApplyDisclaimer

$Action.Text = "Sample disclaimer text"

New-TransportRule -Name "Sample disclaimer" -Condition @($Condition, $Condition2) -Action @($Action)

Vous voulez contrôler les propriétés de messages électroniques envoyés à un domaine spécifique ? Utilisez les cmdlets RemoteDomain. Créez un domaine distant à l'aide de la cmdlet New-RemoteDomain. Tapez :

New-RemoteDomain -Name "Contoso.com Configuration" -DomainName contoso.com

Modifiez ensuite les propriétés de votre choix pour ce domaine distant à l'aide de la cmdlet Set-RemoteDomain :

Set-RemoteDomain "Contoso.com Configuration" -AutoReplyEnabled $True -AutoForwardEnabled $True

Vous pouvez contrôler les fonctions disponibles pour les utilisateurs Outlook Web Access à l'aide de la cmdlet Set-OwaVirtualDirectory. Tapez :

Set-OwaVirtualDirectory "OWA (Default Web Site)" -ContactsEnabled $True -ChangePasswordEnabled $True

Les paramètres booléens peuvent être évalués comme $True ou $False. Ils sont généralement utilisés comme indicateurs sur un objet, qui modifient le comportement de ce dernier. Dans Exchange Management Shell, vous devez fournir un paramètre booléen avec $True, $False, 1 ou 0. Aucune autre valeur n'est acceptée, notamment True ou False. Par exemple, les commandes suivantes définissent toutes deux le paramètre ExternalDsnSendHtml sur $True :

Set-TransportServer <Server Name> -ExternalDsnSendHtml $True

Set-TransportServer <Server Name> -ExternalDsnSendHtml 1

Vous voulez supprimer tous les messages électroniques provenant d'un nom de domaine spécifique des files d'attente d'un serveur sans générer de rapport de non-remise (NDR) ? Tapez :

Remove-Message -WithNDR $False -Filter { FromAddress -Like "*@contoso.com" }

Vous voulez disposer d'une méthode aisée pour appliquer des limites de rétention d'éléments supprimés à plusieurs bases de données et serveurs ? Essayez d'utiliser les commandes suivantes pour configurer la rétention d'éléments supprimés pour toutes les bases de données d'un serveur spécifié :

Get-MailboxDatabase -Server <Server Name> | Set-MailboxDatabase -ItemRetention 45.00:00:00

Vous pouvez également appliquer ces limites de rétention d'éléments supprimés ou de rétention de boîtes aux lettres à tous les serveurs de votre organisation :

Get-MailboxDatabase | Set-MailboxDatabase -ItemRetention 45.00:00:00 -MailboxRetention 120.00:00:00

Vous voulez connaître les autorisations attribuées à un compte d'utilisateur Active Directory sur une boîte aux lettres spécifique ? Utilisez :

Get-Mailbox <Mailbox to Check> | Get-MailboxPermission -User <Active Directory User>

Vous voulez savoir sur quelles boîtes aux lettres un utilisateur Active Directory spécifique à des autorisations ? Tapez :

Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User <Active Directory User> | Format-Table Identity, AccessRights, Deny

Attention : cette commande génère la liste de toutes les boîtes aux lettres au sein de votre organisation. Si vous disposez d'un grand nombre de boîtes aux lettres, vous pouvez cibler des boîtes aux lettres spécifiques.

Vous voulez obtenir un rapport sur l'état de sauvegarde de toutes les bases de données de boîtes aux lettres au sein de votre organisation ? Tapez :

Get-MailboxDatabase -Status | Format-Table Name, Server, *Backup*

Pourquoi pas uniquement les boîtes aux lettres d'un serveur spécifique ? Tapez :

Get-MailboxDatabase -Server <Server Name> -Status | Format-Table Name, *Backup*

Pour extraire l'état actuel d'un serveur ou d'une base de données Exchange, utilisez le paramètre Status. Par exemple :

Get-ExchangeServer -Status | Format-List

Get-MailboxDatabase -Server <Server Name> -Status | Format-List

Vous voulez afficher l'état de montage de toutes les bases de données de boîtes aux lettres ? Tapez :

Get-MailboxDatabase -Status | Format-Table Name, Server, Mounted

Quelle est la différence entre le filtrage côté serveur et le filtrage côté client ? Le filtrage côté serveur est utilisé avec les cmdlets de destinataire et de file d'attente, qui prennent en charge le paramètre Filter, parce que ces cmdlets peuvent retourner des jeux de résultats importants. Le serveur filtre les résultats à l'aide des critères que vous spécifiez, puis vous envoie les résultats filtrés. Le filtrage côté client peut être utilisé avec n'importe quelle cmdlet. Le jeu de résultats entier est envoyé à l'ordinateur client qui filtre les données et produit un jeu de résultats filtré. Le filtrage côté client utilise la cmdlet Where-Object qui peut être raccourcie à Where.

La messagerie unifiée (MU) Exchange Server 2007 vous permet de rediriger les appelants non authentifiés auprès de certains postes téléphoniques à un opérateur. Pour afficher la liste des utilisateurs pour lesquels la MU transfère les appels non authentifiés à l'opérateur, tapez :

Get-UMMailbox | `

Where-Object { $_.AllowUMCallsFromNonUsers -eq `

[Microsoft.Exchange.Data.Directory.Recipient.AllowUMCallsFromNonUsersFlags] "None" }

Le filtrage côté client permet de ne retourner que les données que vous pouvez afficher ou utiliser. L'exemple suivant extrait tous les comptes d'utilisateurs Active Directory qui se trouvent dans le département « Engineering » et insère les résultats dans une table comportant deux colonnes, Name et Department. En utilisant le paramètre ResultSize, la cmdlet Get-User limite le jeu de résultats à 2000 utilisateurs.

Get-User -ResultSize 2000 | Where { $_.Department -Eq "Engineering" } | Format-Table Name, Department

La variable spéciale $_ représente les objets transmis d'une cmdlet à une autre dans le pipeline. La variable $_ est automatiquement initiée par le shell et est liée à l'objet pipeline actuel. Vous pouvez accéder aux propriétés de l'objet attribué à la variable $_ comme vous le feriez pour tout autre objet. L'exemple suivant montre comment afficher la propriété Name de chaque objet boîte aux lettres transmis via le pipeline :

Get-Mailbox | ForEach { $_.Name }

Vous pouvez importer des fichiers CSV et les traiter comme des objets à l'aide de la cmdlet Import-Csv. Chaque ligne d'un fichier CSV devient un élément de tableau et chaque colonne devient une propriété. Vous pouvez attribuer le fichier CSV à une variable ou canaliser son contenu directement vers une autre cmdlet. Dans l'exemple suivant, le fichier CSV comprend trois colonnes, Name, Alias et EmailAddress, qui contiennent plusieurs lignes que la commande ForEach va explorer. Les données de chaque ligne sont utilisées pour créer un contact de messagerie.

Import-Csv | ForEach { New-MailContact -Name $_.Name -Alias $_.Alias -ExternalEmailAddress $_.EmailAddress -OrganizationalUnit Users }

Vous voulez personnaliser votre profil Exchange Management Shell ? Pour déterminer l'emplacement du fichier Microsoft.PowerShell_profile.ps1, utilisez la commande suivante :

$Profile

Vous devez peut-être créer le dossier PSConfiguration et le fichier Microsoft.PowerShell_profile.ps1. Par la suite, vous pouvez ajouter vos fonctions et alias favoris qui sont chargés à chaque ouverture d'Exchange Management Shell.

Les commandes suivantes permettent de configurer une stratégie de dossiers gérée qui applique une taille de dossier électronique personnel maximale de 10MB pour toutes les boîtes aux lettres de votre organisation.

New-ManagedFolder -Name "Reference e-mail folder with 10mb quota" -FolderName "Personal and Reference E-mail" -StorageQuota 10MB

New-ManagedFolderMailboxPolicy "Personal Folder Policy" -ManagedFolderLinks "Reference e-mail folder with 10mb quota"

Get-Mailbox -ResultSize Unlimited | Set-Mailbox -ManagedFolderMailboxPolicy "Personal Folder Policy"

Set-MailboxServer <Server Name> -ManagedFolderAssistantSchedule "Sun.12:00-Sun.11:00"

Vous voulez voir tout ce qu'il se passe lorsque vous exécutez une commande ? Incluez le paramètre Verbose dans la commande. Ce paramètre donne pour instruction à Exchange Management Shell d'afficher des informations détaillées sur chaque action exécutée par le serveur pour compléter la commande. Ces informations peuvent être utiles pour le dépannage.

Toute cmdlet qui accepte une valeur de taille vous permet de spécifier si la valeur entière est exprimée en kilo-octets (Ko), mégaoctets (Mo), gigaoctets (Go) ou téraoctets (To). Par exemple :

Set-Mailbox "Kim Akers" -ProhibitSendQuota 200MB

Exchange Management Shell peut journaliser toutes les commandes Exchange qui modifient des objets. L'activité des commandes Exchange est consignée dans le journal des événements PowerShell. Pour activer la journalisation des commandes Exchange, exécutez la commande suivante :

Set-ItemProperty HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\Microsoft.Exchange.Management.PowerShell.Admin -Name LogpipelineExecutionDetails -value 1