Archives de catégorie : Exchange 2010

Exchange 2010

Afficher la taille et l’espace libre des bases de données Exchange

La taille des bases de données Exchange évoluent. Sans une défragmentation offline la taille des celles-ci ne réduiront jamais.
Vous pouvez néanmoins vérifier si vos bases de données possèdent un espace vide issu de la défragmentation online effectuée par défaut toutes les nuits.
Pour afficher la taille des vos bases de données et de l’espace libre, exécutez la commande PowerShell suivante:

Get-MailboxDatabase -Status | ft Name,DatabaseSize,AvailableNewMailboxSpace

Selon les résultats vous pouvez estimer la tailles que feront vos bases de données après une défragmentation offline.
Pour rappel, vous devez posséder 110% de la taille actuelle de la bases de données d’espace disponible.

Gérer à distance un serveur Exchange 2010 avec PowerShell

Vous souhaitez administrer vos serveurs Exchange 2010 à distance depuis un ordinateur ou un serveur sur lequel ne sont pas installés les outils d’administration Exchange 2010.
Voici la méthode pour le faire avec Windows Management Framework.

Créez un session avec New-PSSession:

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch-server01/PowerShell/ -Authentication Kerberos

Pour créer une session avec New-PSSession en utilisant un autre compte, utilisez:

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch-server01/PowerShell/ -Authentication Kerberos  -Credential (Get-Credential)

Importez la session.

Import-PSSession $session

Vous pouvez maintenant lancer les commandes PowerShell Exchange 2010 sur votre système.

Pensez à quitter proprement la session avec :

Remove-PSSession $session

 

Pour les systèmes plus anciens que Windows Seven et Windows Server 2008 R2, il est tout de même nécessaire d’avoir installé PowerShell 2.0 et WinRM 2.0.
Les sources se trouvent ici.

Tableau de compatibilité entre les versions de Exchange et d’Outlook

Tableau des versions de Outlook supportées par Exchange 2007/2010/2013.

Exchange 2007Exchange 2010Exchange 2013
Outlook 2002X
Outlook 2003X
Outlook 2003 SP2XX
Outlook 2007XX
Outlook 2007 SP3XXX
Outlook 2010XX
Outlook 2010 SP1XXX
Outlook 2013X

Source: Outlook Versions Supported by Exchange 2007/2010/2013/Online

Ajouter le Snap-In Powershell de Exchange

L’ajout du Snap-In permet de lancer des commandes Exchange dans un console PowerShell ouverte en exécutant la powershell.exe.
C’est utile pour l’exécution de scripts par taches planifiées
Exchange 2007:

Add-PSSnapin "Microsoft.Exchange.Management.PowerShell.Admin"

Exchange 2010:

Add-PSSnapin "Microsoft.Exchange.Management.PowerShell.E2010"

Envoi d’un message de test via SMTP.

Voici un petit script VBS très simple qui permet d’envoyer un message SMTP depuis un système Windows.
Ce script est compatible avec toutes les versions de Windows.
Il peut servir pour tester un relais SMTP ou la capacité d’un ordinateur à envoyer des messages en SMTP sans utiliser Outlook.

Il suffit de copier ce code dans un fichier texte et renommer l’extension du fichier en « .vbs ».

'Envoie d'un e-mail via un serveur SMTP'
With CreateObject("CDO.Message")
.From="adress@domainfrom.com"
.To="adress@domainto.com"
.Subject="-Test Message-"
.HTMLBody="Test Message"
.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "my-relay.com"
.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Configuration.Fields.Update
On Error Resume Next
.Send
If Err Then MsgBox "Le message n'a pas pu être expédié."
On Error GoTo 0
End With

Il ne reste plus qu’à changer l’adresse de l’émetteur, du destinataire et du relais SMTP.

Désactiver le mappage automatique des boites aux lettres dans Outlook

Depuis Exchange 2010 SP1, le montage des boites aux lettres où un utilisateur a l’accès complet est automatique dans Outlook.
Ce mappage automatique peut être désactivé en changeant la valeur de la propiété AutoMapping des permissions de l’utilisateur sur la boite aux lettre mappé.
Par défaut le mappage automatique est activé.
Cette modification ne peut être effectuée que par PowerShell.
On ne peut modifier une permission existante, il faut supprimer la permission accès total et la recréer avec le bon paramètre.

Voici quelque méthodes.

Donner l’accès à une boite sans le mappage automatique:

Add-MailboxPermission -Identity "Boite partagée" -User "j.doe" -AccessRight FullAccess -InheritanceType All -Automapping $false

Désactiver le mappage automatique pour un utilisateur:

Remove-MailboxPermission -Identity "Boite partagée" -User "j.doe" -AccessRights FullAccess -InheritanceType All -Confirm:$false
Add-MailboxPermission -Identity "Boite partagée" -User "j.doe" -AccessRight FullAccess -InheritanceType All -Automapping $false

Supprimer le mappage automatique pour tous les utilisateurs d’une boite aux lettres.

$DisAutoMapping = Get-MailboxPermission "Boite partagée" | where {$_AccessRights -eq "FullAccess" -and $_IsInherited -eq $false}
$DisAutoMapping | Remove-MailboxPermission
$DisAutoMapping | ForEach {Add-MailboxPermission -Identity $_.Identity -User $_.User -AccessRights:FullAccess -AutoMapping $false} 

Source Technet

Activer la gestion de l’expiration des mots de passe dans OWA

Par défaut avec Exchange 2010, il n’est pas possible de changer un mot de passe expiré dans OWA.
Pour activer cette fonctionnalité, il suffit d’ajouter une clé de registre sur vos serveurs CAS.

– Naviguez dans le registre jusqu’à la clé HKLM\SYSTEM\CurrentControlSet\Services\MSExchange OWA
– Ajoutez une valeur DWord (32-bit) avec comme nom ChangeExpiredPasswordEnabled et comme valeur 1.
– Pour appliquez la configuration, exécutez dans une invite de commande.

IISReset -Force

 
Les utilisateurs auront maintenant la possibilité de changer leur mot de passe même si celui-ci est déjà expiré.

change_password

Ils auront également un message dans OWA les informant de l’expiration prochaine de leur mot de passe.

password_will_expire

Cette méthode s’applique également pour Exchange 2007 SP3.

Gestion des rôles d’administration avec RBAC

Exchange 2010 permet l’utilisation de Role Based Access Control (RBAC) pour la gestion des rôles d’administration.
Voici la méthode que j’ai utilisé pour mettre en place des autorisations spécifiques pour des opérateurs de comptes sur les boites aux lettres présentent dans une OU.
L’objectif est de permettre à ces opérateurs de gérer les boites aux lettres des cette OU sans qu’ils puissent modifier les droits d’accès sur ces boites aux lettres sensibles.

La première étape est de créer un rôle de management à partir du rôle « Mail Recipients ».

New-ManagementRole -Name "Gestion des destinataires Finance" -Parent "Mail Recipients"
 
Name                                                        RoleType                                                   
----                                                        --------                                                  
Gestion des destinataires Finance                           MailRecipients                                             
 

Ce nouveau rôle de management a hérité des entrés de présentent dans le rôle « Mail Recipients ».
Il faut donc que les entrés de rôle que je souhaite retirées.
Pour cette demande, il faut que je retire les entrés « Add-MailboxPermission », « Remove-MailboxPermission », « Add-MailboxFolderPermission » et « Remove-MailboxFolderPermission ».
Je contrôle la présence des ces entrés avec la commande suivante:

Get-ManagementRoleEntry "Gestion des destinataires Finance\*" | Where-Object { $_.name -like "Add-Mailbox*"}
 
Name                           Role                      Parameters                                                    
----                           ----                      ----------                                                   
Add-MailboxFolderPermission    Gestion des destinatai... {AccessRights, Confirm, Debug, DomainController,ErrorActio...
Add-MailboxPermission          Gestion des destinatai... {AccessRights, Confirm, Debug, Deny, DomainController,Erro...
 
Get-ManagementRoleEntry "Gestion des destinataires Finance\*" | Where-Object { $_.name -like "Remove-Mailbox*"}
 
Name                           Role                      Parameters                                                   
----                           ----                      ----------                                                   
Remove-MailboxFolderPermission Gestion des destinatai... {Confirm, Debug, DomainController, ErrorAction,ErrorVariab...
Remove-MailboxPermission       Gestion des destinatai... {AccessRights, Confirm, Debug, Deny, DomainController,Erro...
 

Je supprime ces entrés avec la commande suivante:

Get-ManagementRoleEntry "Gestion des destinataires Finance\*" | Where-Object { $_.name -like "Add-Mailbox*"} | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry "Gestion des destinataires Finance\*" | Where-Object { $_.name -like "Remove-Mailbox*"} | Remove-ManagementRoleEntry -Confirm:$false

Je contrôle la suppression:

Get-ManagementRoleEntry "Gestion des destinataires Finance\*" | Where-Object { $_.name -like "Add-Mailbox*"}
Get-ManagementRoleEntry "Gestion des destinataires Finance\*" | Where-Object { $_.name -like "Remove-Mailbox*"}

Je crée un nouveau scope de management qui inclut tous les destinataires de l’OU que je souhaite.

New-ManagementScope -Name "Destinataires Finance" -RecipientRoot "domain.local/Finance" -RecipientRestrictionFilter {(RecipientType -eq "*")}
 
Name                ScopeRestrictionType Exclusive           RecipientRoot       RecipientFilter     ServerFilter      
----                -------------------- ---------           -------------       ---------------     ------------     
Destinataires Fi... RecipientScope       False               domain.local/Dir... RecipientType -l...                  

Je crée pour finir un groupe de rôle avec les paramètres de scope, de rôle et en y ajoutant un utilisateur.

New-RoleGroup -Name "Support Utilisateurs Finance" -CustomRecipientWriteScope "Destinataires Finance" -Roles "Gestion des destinataires Finance" -Members b.simpson
 
Name                          AssignedRoles                 RoleAssignments               ManagedBy                   
----                          -------------                 ---------------               ---------                   
Support Utilisateurs Fina ... {Gestion des destinataires... {Gestion des destinataire ... {domain.local/Micro...

Je pourrai par la suite ajouter des membres ou des groupes avec la commande:

 
 Add-RoleGroupMember -Identity "Support Utilisateurs Finance" -Member gg_adminsfin

Les services pour Exchange 2010

Liste des services installés pour le fonctionnement de Exchange 2010.

Service NameDescriptionServer Role
IIS AdminEnables the server to administer the IIS
metabase. The IIS metabase stores
configuration information for the SMTP
and FTP services.
CAS
Microsoft
Exchange Active
Directory
Topology
Provides Active Directory topology
information to Exchange services. If this
service is stopped, most Exchange servers
will not be able to start.
MAILBOX
CAS
HUB
UM
Microsoft
Exchange
Address Book
Manages client address book connections
for Exchange Server.
EDGE
Microsoft
Exchange Anti-
Spam Update
Maintains the antispam data for Forefront
Security on an Exchange server.
Microsoft
Exchange
EdgeSync
Provides EdgeSync services between Hub
and Edge servers.
HUB
EDGE
Microsoft
Exchange File
Distribution
Distributes Exchange data to other
Exchange servers.
Microsoft
Exchange IMAP4
Provides IMAP4 services to clients.CAS
Microsoft
Exchange
Information
Store
Manages the Microsoft Exchange
Information Store. This includes mailbox
stores and public folder stores.
MAILBOX
Microsoft
Exchange Mail
Submission
Submits messages from the Mailbox server
to the Hub Transport servers.
MAILBOX
Microsoft
Exchange
Mailbox
Assistants
Manages assistants that are responsible for
calendar updates and booking resources.
MAILBOX
Microsoft
Exchange
Monitoring
Provides support for monitoring and
diagnostics.
Microsoft
Exchange POP3
Provides Post Office Protocol version 3
(POP3) services to clients.
CAS
Microsoft
Exchange
Protected
Service Host
Provides secure host for Exchange Server
services.
Microsoft
Exchange
Replication
Provides replication functions for
continuous replication.
MAILBOX
Microsoft
Exchange
Replication
Service
Provides replication functionality used for
continuous replication.
MAILBOX
Microsoft
Exchange RPC
Client Access
Manages client RPC connections for
Exchange Server.
CAS
Microsoft
Exchange Search
Indexer
Controls indexing of mailboxes to improve
search performance.
MAILBOX
Microsoft
Exchange
Service Host
Provides a host for essential Exchange
services.
Microsoft
Exchange
Speech Engine
Provides speech processing services for
Microsoft Exchange. If this service is
stopped, speech recognition services will
not be available to Unified Messaging
clients.
UM
Microsoft
Exchange
System
Attendant
Provides monitoring, maintenance, and
Active Directory lookup services.
CAS
Microsoft
Exchange
Throttling
Provides throttling functions to limit the
rate of user operations.
CAS
Microsoft
Exchange
Transport
Provides mail transport for Exchange
Server.
HUB
EDGE
Microsoft
Exchange
Transport Log
Search
Provides search capability for Exchange
transport log files.
HUB
EDGE
Microsoft
Exchange
Unified
Messaging
Enables voice and fax messages to be
stored in Exchange and gives users
telephone access to e-mail, voice mail,
calendar, contacts, or an automated
attendant.
UM
Microsoft
Forefront Server
Security
ADO/EWS
Navigator
Navigates the objects in Active Directory
for Forefront Security by connecting with
Exchange Web Services (EWS) or Exchange
ActiveX Directory Objects (ADO) to retrieve
objects.
FOREFRONT
Microsoft
Forefront Server
Security
Controller
Controls interaction between Forefront
Security and the Microsoft Exchange
Information Store. Ensures that Forefront
initializes properly with the information
store. Controller starts and stops scan jobs
and applies engine updates.
FOREFRONT
Microsoft
Forefront Server
Security
Eventing Service
Processes incidents and manages
quarantine logging, performance logging
and notifications.
FOREFRONT
Microsoft
Forefront Server
Security for
Exchange
Registration
Service
Ensures the Forefront Transport Agent is
registered with Exchange Server.
FOREFRONT
Microsoft
Forefront Server
Security Mail
Pickup
Provides mail pickup services for Forefront.FOREFRONT
Microsoft
Forefront Server
Security Monitor
Monitors the information store, SMTP/IMS,
and Forefront processes to ensure that
Forefront provides continuous protection.
FOREFRONT
Microsoft Search
(Exchange)
Provides search services for mailboxes,
address lists and so on.
MAILBOX
Secure Socket
Tunneling
Protocol Service
Provides support for Secure Socket
Tunneling Protocol (SSTP) for securely
connecting to remove computers.
CAS
Web
Management
Service
Enables remote and delegated
management for the web server, sites and
applications.
CAS
Windows
Remote
Management
Service
Implements the WS-Management
protocol. Required for remote
management using the Exchange console
and PowerShell.
World Wide
Web Publishing
Services
Provides Web connectivity and
administration features for IIS.
CAS

La commande suivant pour vérifier que tous les services nécessaires sont démarrés sur votre serveur.

Test-ServiceHealth

Récupérer la clé privée d’un certificat SSL

Voici la procédure à appliqué lorsque le message « Ce certificat est valide pour une utilisation avec Exchange – Raison: la clé privée manquant » apparaît lors de l’activation d’un certificat via la commande Enable-ExchangeCertificate dans Exchange 2007 ou 2010.

Ce message signifie que Windows n’arrive pas à trouver la clé privée associée à votre certificat SSL.

Vous pouvez essayer la procédure suivante pour récupérer votre clé privée:
– Noter le numéro de série du certificat
Avec PorwerShell

Get-ExchangeCertificate | ft Thumbprint,Subject,SerialNumber

Ou dans l’onglet détail en ouvrant le fichier certificat SSL.
– Lancer dans un commande CMD

Certutil –repairstore my 

Enlever au préalable les espaces dans le numéro de série.

Si la commande se termine correctement, relancer Enable-ExchangeCertificate.