PI Services

Le blog des collaborateurs de PI Services

Erreur DCOM 10016 suite aux déploiements de l’agent SCCM sur des contrôleurs de domaine.

Le déploiement de l’agent SCCM dans une infrastructure peut générer des messages d’erreur dans les journaux d’évènements clients.

En effet, on peut rapidement saturer les journaux SYSTEM des clients et serveurs par des erreurs DCOM 10016.

clip_image002

Ces erreurs sont gênantes vu quelles sont inscrites chaque minute.

Elles sont généralement dues à des permissions insuffisantes sur des composants DCOM.

La procédure de résolution est la suivante :

1. Identifier l’application DCOM qui génère l’erreur, pour cela il faut recherche dans le registre l’ID clip_image004.

2. Après avoir identifier l’application ID :

clip_image005

3. Ouvrir la console Component Services en tapant dans la Dcomcnfg.exe :

clip_image007

4. Dans la console Component Services, cliquer sur DCOMConfig :

clip_image009

5. Rechercher dans la liste l’APP ID (étape 2)

clip_image011

6. Faire ensuite un clic droit sur SMS Agent et cliquer sur Propriétés :

Cliquer ensuite sur Security

clip_image013

7. Cliquer ensuite sur Edit

clip_image015

8. Vérifier que l’autorisation « Local Launch » est autorisé pour le compte System

clip_image017

Dans notre cas, l’autorisation est refusée. Ce qui explique l’erreur DCOM.

Pour corriger le problème, il faut cocher la case « Local Launch » est sur Allow.

clip_image019

En conclusion, cette erreur peut être résolue manuellement via la procédure ci-dessus ou elle peut être automatisée via la création d’une GPO .

Celle-ci pourra se baser sur un script d’ouverture de session qui va importer une clé de registre .Cette clé de registre va mettre à jour les permissions DCOM.

A très bientôt

Khalil Bezneiguia

Evolution de l’OAB dans Exchange 2013

L’accès à l’OAB est devenu crucial dans une infrastructure Exchange et plus précisément dans des configurations spécifiques où :

· Outlook est utilisé avec le mode cache activé.

· Outlook est en mode déconnecté.

Dans ces deux cas de figures, Outlook utilisera le carnet en mode hors connexion. Celui-ci sera mis à jour chaque 24 heures via un téléchargement différentiel, à noter que c’est le client Outlook qui initie la connexion.

Avec Exchange 2007, Microsoft a introduit le mécanisme de distribution Web, le client Outlook 2007 & 2010 peuvent télécharger l’OAB en se connectant directement sur les serveurs CAS en utilisant du le protocole http ou https.

L’url de téléchargement de l’OAB est fournie par le service Autodiscover aux clients Outlook.

Quant à la génération de L’OAB, celle-ci est gérée par un serveur Mailbox qui est désigné comme serveur de génération.

Qu’est ce qui a changé avec Exchange 2013?

Sur les versions précédentes Exchange, on pouvait désigner qu’un seul serveur de génération par OAB, ce qui représente un SPOF (Single point of failure).

Imaginer que le serveur Mailbox est en erreur, cela implique la non génération de l’OAB et ainsi que la non distribution de celui-ci aux clients Outlook.

L’impact de ce disfonctionnement peut être important, on peut citer deux phénomènes :

· Messages d’erreurs lors du téléchargement de l’OAB.

clip_image002

· Utilisation d’une version obsolète de l’OAB par les clients Outlook (les nouveaux contacts et les nouveaux utisateurs n’apparaissent pas sur l’OAB)

Avec Exchange 2013, l’OAB est généré par plusieurs serveurs Mailbox Exchange 2013 qui hébergent des boites aux lettres systèmes nommées « Organization Mailbox ».

Dans cette configuration, la génération de l’OAB est effectuée par plusieurs serveurs Mailbox ce qui permet d’assurer une résilience du processus de génération de l’OAB.

Quel Composant génère l’OAB ?

Le processus « Microsoft Exchange Mailbox Assistants/ OABGeneratorAssistant» est responsable de la génération de l’OAB dans Exchange 2013.

Ou sont stockés les fichiers OAB ?

Les fichiers OAB sont stockés en premier dans la Organization Mailbox et sont ensuite copiés dans le dossier %ExchangeInstallPath%\ClientAccess\OAB\

Méthode de distribution OAB :

Dans Exchange 2013, seule la distribution Web est supportée. Plus besoin de dossiers publics ! J

Le processus est le suivant :

1. Outlook reçoit l’URL de téléchargement OAB depuis le service Autodiscover.

2. Outlook s’authentifie auprès du serveur CAS pour télécharger l’OAB.

3. Le serveur CAS interroge un DC/GC pour :

a. Déterminer l’emplacement de l’Organization Mailbox la plus proche.

b. Déterminer quelle est la base de données qui herberge l’Organization Mailbox.

4. Le serveur CAS interroge ensuite l’Active Manager pour déterminer la copie Active de la base de données (Seulement si la base de données fait partie d’un DAG)

5. Le serveur CAS proxie ensuite la demande de téléchargement vers le serveur Mailbox identifié dans les étapes précédentes.

6. Le serveur Mailbox renvoie les fichiers OAB au serveur CAS qui les renvoie à son tour au Client Outllok.

Avec Exchange 2013, il a vraisemblablement une avancée importante du processus OAB,cette avancée permet de garantir une tolérance de panne mais implique aussi un troubleshooting plus compliqué en cas d’anomalie de génération de l’OAB.

Pour plus d’informations :

http://blogs.technet.com/b/exchange/archive/2012/10/26/oab-in-exchange-server-2013.aspx

À Très bientôt

Khalil Ben Zneiguia

Vérification de l’application d’une GPO

Vérification de l’application d’une GPO (Heure de la dernière application de la stratégie de groupe)

Il est possible de vérifier la dernière fois que les stratégies de groupe ont été appliquées avec la commande Gpresult

Pour cela, il suffit de lancer une fenêtre de commande cmd, exécuter ensuite la commande GPresult :

Le résultat de la commande est composé de deux parties :

· Paramètre de l'ordinateur : liste les GPO appliquées au compte ordinateur.

· Paramètre Utilisateur : liste les GPO appliquées au compte utilisateur.

L’utilisation de cette commande nous permet de valider la liste des GPO’s liées aux compte ordinateur et utilisateur et nous permet aussi de valider l’heure de la dernière application de celles-ci.

Pour cela, il suffit de vérifier la ligne «Heure de la dernière application de la stratégie de groupe » :

· Capture écran Paramètre ordinateur :

clip_image002[4]

· Capture écran paramètre utilisateur :

clip_image004

A bientôt

Khalil Bezneiguia

Active Directory Replication Status Tool

Pour vérifier la santé de l’Active Directory on utilise habituellement un outil

en ligne de commande tel que  REPADMIN.

Microsoft met à disposition un outil graphique, Active Directory Replication Status Tool.

Cet outil s’installe sur plusieurs version d’OS Windows (prérequis .Net Framework 4.0).

Après installation de l’outil, lancez la console.

image

Cliquez sur Refresh Replication Status

Ce type de résultat est retourné:

image

Dans ce cas il n’y a pas d’erreur.

En fonction des erreurs liées au “Tombstone LifeTime”, les informations prendront une couleur diffèrente.

Pour rappel le “Tombstone LifeTime” est de 180 jours depuis Windows 2003 SP1.

On peut modifier les colonnes à afficher par un clique droit dans l’une des colonnes :

image

Le rapport peut être exporté:

image

N’hésitez pas à installer cet outil que vous pourrez télécharger depuis ce lien:

http://www.microsoft.com/en-us/download/details.aspx?id=30005.

EXCHANGE 2010 - Bascule de bases

La commande “Switchover server” permet de basculer les banques actives

vers un serveur de destination.

Ayant rencontré à de maintes reprises des soucis lors de l’utilisation de cet utilitaire

j’ai préféré utiliser un script.

*********************************************************

######## Move database
######## Ce script permet le déplacement des banques actives d'un serveur "A" vers un serveur "B"
######## Ecrit par Pascal FEDAN
######## Le 05 Novembre 2012
######## Version 1.0
######## Modifié le
######## Version

######## Déclaration des serveurs source et cible

$sourceserver = "serveur2"
$targetserver = "serveur1"

####### Fonction d'envoi d'un message

function sendmail {
         send-mailmessage -from "adm_mail@pub.ad" -to "Franck.Test@pub.ad" -subject "MoveDatabase" -body " Merci de consulter le fichier." -Attachment "C:\Temp\databasecopystatus.txt" -priority High -dno onSuccess, onFailure -smtpServer 10.10.10.10
                  }
####### Statut des bases avant la bascule

get-Date >> c:\Temp\databasecopystatus.txt
Write-output "########## Databasecopystatus avant le déplacement " >> c:\Temp\databasecopystatus.txt
Write-output " " >> c:\Temp\databasecopystatus.txt

get-mailboxdatabasecopystatus -Server $sourceserver >> c:\Temp\databasecopystatus.txt

Write-output " " >> c:\Temp\databasecopystatus.txt

get-mailboxdatabasecopystatus -Server $targetserver >> c:\Temp\databasecopystatus.txt

######### recherche des banques "montées" sur le serveur source

$MountedDB=get-mailboxdatabasecopystatus -Server $sourceserver | where { ($_.Status -eq "Mounted")}

########  si aucune banque "montée", sortie du script

if (!$MountedDB) { Write-Host "PAS DE BANQUE ACTIVE SUR $sourceserver"
                   Write-output " " >> c:\Temp\databasecopystatus.txt
                   Write-output "########## PAS DE BANQUE ACTIVE SUR $sourceserver " >> c:\Temp\databasecopystatus.txt
                   Write-output " " >> c:\Temp\databasecopystatus.txt
                   sendmail
                   exit
                  }
                           
######### bascule des banques

else {
      Foreach ($DB in $MountedDB)
         { Move-ActiveMailboxDatabase -Identity $DB.DatabaseName -ActivateOnServer $targetserver -MountDialOverride:None -confirm:$false >> c:\Temp\databasecopystatus.txt}
      }
     
Start-Sleep -s 30

######### statut des banques après la bascule

Write-output " " >> c:\Temp\databasecopystatus.txt
Write-output "########## Databasecopystatus après le déplacement" >> c:\Temp\databasecopystatus.txt
Write-output " " >> c:\Temp\databasecopystatus.txt

get-mailboxdatabasecopystatus -Server $sourceserver >> c:\Temp\databasecopystatus.txt

Write-output " " >> c:\Temp\databasecopystatus.txt

get-mailboxdatabasecopystatus -Server $targetserver >> c:\Temp\databasecopystatus.txt

######## Appel de la fonction sendmail

sendmail

 

***********************

Ce script recherche les banques actives et les bascule sur le serveur de destination

mentionné dans la déclaration des variables.

Bien sûr, testez avant de l’utiliser en production.