Exchange your Mind

"La connaissance ne vaut que si elle est partagée" / "An effective Knowledge is a shared one"

Archive pour la catégorie ‘1-EXCHANGE 2010’

Exchange et le Stockage – Partie 12

Publié par Anthony Costeseque le mai 25, 2012

Bonjour à tous,

Apres une longue absence :/ en ce moment (c’est en permanence en fait) mais particulièrement ces 4 derniers mois, le planning était très chaud.

Mais reprenons là où nous avions arrêté, comment déployer au mieux (best practices) votre solution exchange 2010 en fonction des différents constructeurs.

Nous avons vu dans la Partie 11 comment faire EMC² (ce post sera complété dans un proche avenir suite aux différentes annonces faites à l’EMC² Word 2012 qui c’est déroulé cette semaine à Las Vegas).

Nous allons voir aujourd’hui Hitachi (HDS) !

  1. Commençons par le commencement le type de la baie !

Il est évident que le model sera conditionné par la taille de votre future infrastructure : Le nombre d’utilisateurs et la taille des boîtes aux lettres étant les principaux facteurs.

Chez Hitachi (HDS) nous parlerons maintenant de Hitachi Unified Storage 100 Family (HUS (nouvelle baie unifiées)).

Le standard sera une HUS130 et pour les déploiements plus importants on passera sur un HUS150 (le plus important étant le nombre maximum de disque supporté)

HUS110 : 120 disks

HUS130 : 252 disks

HUS150 : 960 disks

En règle générale sur un déploiement d’au moins 10000 utilisateurs on a souvent 2 salles (voir 2 sites) pour la Haute Disponibilité et donc 2 HUS130 font parfaitement l’affaire.


Un exemple d’implémentation (ici sur des HUS 150 mais sur des HUS 130 c’est très bien aussi)

Prenons un exemple de design de solution pour 8000 utilisateurs

  1. Ensuite vient le type de disque

Les HUS supportent SAS/NL-SAS

Nous l’avons vu dans les précédents billets, Exchange est optimisé du côté des IO permettant l’utilisation de disque 7200tr/m donc la règle est la suivante :

Faible IOs requis et large capacité de boîtes aux lettres (2Go) -> On utilisera du NL-SAS (ou encore du SATA) 7200 tr/m

Important IOs requis et faible capacité de boites aux lettres (<1Go) -> On utilisera du SAS 10000 tr/m voir 15000 tr/m (si besoin)

Jusqu’à maintenant j’ai toujours vu du NL-SAS 7200 tr/m de 2To.

  1. Puis le type de RAID (bien lire le concept d’Hitachi)

Attention cette étape est très importante.

Concept : Sur les HUS nous utiliserons « Hitachi Dynamic Provisioning » qui s’appuie sur l’utilisation de Pools (Dynamic Provisioning Pool (DP Pool)) constitués de plusieurs RAID Group.

On provisionnera dans ces DP Pools des Dynamic Provisioning Virtual Volumes (DP-VOLs)

Pour les RAID Group nous utiliserons du RAID 1/0 (2+2) (striping + mirroring)


Avec Schéma ça aide :)

Découpage :


Ici nous avons bien une séparation de domaine de Risques pour les DBs et Logs.

Nous créerons donc 2 Dynamic Provisioning Pools (DP Pools) :

  • DB Pool avec 7 RAID Group 1/0 (2+2)
  • Logs Pool avec 2 RAID Group 1/0 (2+2)

A partir du DB Pool nous créerons 8 Dynamic Provisioning Virtual Volumes (DP-VOLs) de 1200GB chacun pour contenir les 8 DB requises (1000 utilisateurs par DBs)

A partir du Logs Pool nous créerons 8 Dynamic Provisioning Virtual Volumes (DP-VOLs) de 120GB chacun pour contenir les 8 espaces de Logs requis (pour les 8 DBs)

  1. Le type de connexion

Stockage « intelligent » donc pas de DAS que du SAN en FC ou iSCSI.

Je vous recommande du FC pour les 8Gb/s de bande passante (2 ports FC de 4Gb/s en roud robin)
ainsi que la faible latence !

L’iSCSI est bien aussi mais demande tout de même des switch dédiés pour le trafic stockage (optimisés iSCSI si possible) mais le problème vient surtout de la bande passante disponible ! De façon classique nous avons 2Gb/s (2 ports Ethernet de 1Gb/s en roud robin) qui peuvent vite représenter un goulot d’étranglement sur des infrastructures importantes ! (rappelez-vous le background database maintenance (BDM) et son besoin en bande passante !). Les ports iSCSI 10Gb/s existent pour les VNX et peuvent représenter une alternative intéressante mais vos switch Ethernet devront les supporter !

Si vous pensez mettre en place une infrastructure FCoE (10Gb) alors pas de problèmes du moment que toute la chaine est prévue pour ! (switch Nexus etc).

  1. Enfin les recommandations générales

Si votre baie est multi usage (pas uniquement Exchange) :

  • Au moment du formatage de votre LU, mettre l’ALU à 64KB pour les DB et 4KB pour les Logs
  • Pas de problèmes d’alignement des disques avec Windows 2008 R2 (aligné à 1MB)
  • Eviter de mixer les Workload d’Exchange avec d’autres applications (dans les 2 DP Pools que nous avons créé dans notre exemple)
  • Utiliser Hitachi Dynamic Link Manager pour la partie MultiPathing (éviter le soft de multipathing natif à l’OS)
  • Utiliser Hitachi Dynamic Provisioning (HDP) comme nous l’avons vu dans notre exemple
  • Due à la différence des paterns d’IO pour les DB et Logs, séparer les DBs des Logs en utilisant plusieurs DP Pools (comme vu dans notre exemple)
  • Vous pouvez utiliser du RAID-5 ou du RAID-10 pour les DBs et Logs, mais l’utilisation du RAID-10 apporte une pénalité en écriture moindre et des temps de réponses meilleurs ! (et en plus une reconstruction de disque suite à remplacement de disque HS plus rapide !)
  • Les Logs LU doivent être d’au moins 10% la taille du LU des DBs (mais peut être supérieur en fonction du nombre de jours de retentions que vous souhaitez (attention si vous utilisez des Lagged Databases))
  • L’utilisation de LU concaténées n’est pas recommandé
  • L’utilisation des DAGs avec au moins 2 DBs (1 active et 1 passive) est recommandée (pas besoin de mécanisme au niveau du stockage pour la résilience)
  • Isoler la copie active de la copie passive soit entre plusieurs HDP soit entre 2 ou + baies (le cas dans notre exemple (2 baies))
  • Utiliser des LUs plus grande pour réduire le nombre de DBs (Maximum recommandé 2TB pour les DBs)

Pour toutes questions n’hésitez pas !

Bonne lecture :)

La prochaine fois nous parlerons de NetApp.

Anthony COSTESEQUE

Publié dans 1-EXCHANGE 2010, Exchange 2010 SP2, Performance-2010, Stockage-2010 | 2 Commentaires »

An unexpected error occurred and your request couldn’t be handled. OWA 2010

Publié par Teruin laurent le mai 10, 2012

Error Message : An unexpected error occurred and your request couldn’t be handled / The service ‘/EWS/exchange.asmx’ cannot be activated due to an exception during compilation

We have encountered this issue on 3 fresh Exchange 2010 installations SP1 RU1 on OWA when trying to delete a message on OWA
Nous avons rencontrés dans le cadre d’une installation Exchange 2010 le problème suivant lors de la tentative de suppression d’un message dans OWA



We have decided to install RU2 reboot etc…
Nous avons installé le RU2 . meme probléme

Same issue
Our binding on default website are


When we try to delete a msg on owa we have this on application log.
En supprimant un message nous avons vu dans le journal des applications les entrées suivantes.


WebHost failed to process a request.

Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/56566820

Exception: System.ServiceModel.ServiceActivationException: The service ‘/EWS/exchange.asmx’ cannot be activated due to an exception during compilation. The exception message is: This collection already contains an address with scheme http. There can be at most one address per scheme in this collection.

Parameter name: item. —> System.ArgumentException: This collection already contains an address with scheme http. There can be at most one address per scheme in this collection.

 

Outlook Web App couldn’t connect Exchange Web Services due to a configuration error. Response code = “500″.

We change the binding in a way to have just one binding per port


Same Issue

The certificate on IIS is ok and contains right Subject alternate name

Le certificate sur IIS est correct et contient les bon SAN

We have delete the second entries http 4443 used for a specific remote powershell connection and it works again.

Nous avons supprimer l’entrée que nous avions ajouter et tout refonctionne.

The question is now … how to have a secondary bindings ;-)
La question est désormais de savoir comment l’on peut mettre une seconde entrée sans avoir ce souci .

Cordialement
Laurent Teruin

Noubliez Pas ! Si vous désirez avoir acces au réféntiel documentaire envoyez un message à Unifiedit@hotmail.com !

 

 

 

Publié dans 1-EXCHANGE 2010, Owa-2010 | Laisser un Commentaire »

Exchange 2010 Cas : Utiliser les fonctionnalités X-Forwarded-For sous Windows 2008 R2

Publié par Teruin laurent le avril 24, 2012

Dans le cas de l’utilisation des fonctions de répartition de charges, et dans le but d’éviter des demi-sessions, on peut être contraint à utiliser des fonctions de Nat source (SNat ou Snat Automap) sur les répartiteurs de charge.

Note : Après l’avoir testeé, la procédure donnée par F5 dans le guide « Deploying the BIG-IP System v10 with Microsoft Internet Information Services 7.0 » ne semble pas correcte.

L’inconvénient de cette technique est que par défaut, les administrateurs Exchange vont perdre l’adresse IP des clients http(s). Une solution de contournement consiste à mettre en place sur les répartiteurs de charge réseau une fonctionnalité qui permet d’insérer dans l’entête http l’adresse Ip de ces derniers. Si cela est possible dans certains répartiteur de charge, les serveurs IIS par défaut, ne logueront pas cette information sauf si vous activez les options de journalisations avancées de IIS et que vous configuriez ces dernières pour prendre en compte cette information.

Pour installer sur vos Cas Server Windows 2008 R2 X64 cette fonctionnalité, il vous faudra récupérer un module complémentaire. Pour récupérer ce module de journalisation avancée cliquez sur le lien suivant :

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=7211

Et procédez à son installation sur le serveur Web Windows 2008 R2 Cas Exchange 2010



Une fois installé, ouvrez Internet Information Services (IIS) Manager et dans le panneau de connexion cliquez sur le répertoire sur lequel vous désirez configurer la journalisation avancée.


Activer les fonctions de journalisation avancées en cliquant sur Enable Advanced Logging


Puis modifier les journaux en ajoutant la valeur X-Forwaded-For comme le montre l’exemple suivant :



Ensuite retourner dans Advanced Logging et cliquer sur Edit Log Definition


Dans la fenêtre suivante cliquez sur X-Forwarded-FOR pour activer son suivi


Si la fonction n’est pas activée pensez à l’activer en cliquant sur Enable Advanced Logging



 

Les journaux IIS comprendront désormais les adresses IP de vos chers clients http.

 

Cordialement
Laurent Teruin

 

 

 

Publié dans 1-EXCHANGE 2010, Cas-2010, Haute disponibilité | Laisser un Commentaire »

Lync & Certificats Publics.. : Pas si publics que ça … suite et fin ;-)

Publié par Teruin laurent le mars 14, 2012

Bon alors comme je voulais avoir le fin mot de l’histoire et surtout savoir si l’on devait déployer ces fameuses autorités de certification intermédiaire, je me suis mis en tête d’appeler Verisign. Bon après un demie heure de .. appuyer sur 1 appuyer sur 2 etc.. Pour finalement tomber sur un répondeur m’invitant à taper une extension de poste…., j’ai switcher sur le support Globalsign ou j’ai pu avoir le fin mot de l’histoire.

Remerciements au passage aux interlocuteurs de Globalsign pour leur disponibilité et la qualité de leurs échanges ainsi que du temps passé. C’est assez rare parfois, alors autant le souligner. ;-)

D’après le support, les autorités de certifications intermédiaires auraient été positionnées pour éviter de trop exposer les autorités racines. Utilisée sur un serveur Web elles n’impliqueraient pas la nécessité de déployer la chaine de certificat de l’autorité intermédiaire sur le poste de travail car rappelons le, l’utilisateur ne sera pas prompté si et seulement si les 4 conditions ci-dessous sont remplies:

  • Le certificat n’est pas révoqué
  • Le certificat contient le nom qui correspond à l’URL tapée par l’utilisateur
  • Le certificat est émis d’une autorité de certification approuvé par le poste de travail
  • Le certificat n’est pas expiré

Or les autorités de certifications intermédiaires permettraient (à conditions qu’elles soient néanmoins déployées sur le serveur Web) de ce passer de les déclarer sur les postes qui visiteraient le site. Entre nous….ce qui parait plausible.

Alors …j’ai testé en prenant un poste Windows 7 tout neuf et en allant sur un site Web (https://meet.mycompany.com) doté d’un beau certificat Wildcard Globalsign et ça marche !!! Pas de prompt !

Le poste est tout neuf, n’est pas dans le domaine et n’a rien à voir avec l’entreprise.

Alors installons le client Lync et testons l’accès au Edge doté cette fois ci d’un certificat SAN Globalsign.

Et …

Ca marche !


Passons maintenant à la dernière version du client Lync CU3

Résultat ;-))


Note : notre serveur Edge possède bien dans son magasin l’autorité de certification intermédiaire. C’est également le cas pour ce qui est des serveurs Edge de fédération qui de facto fonctionne

Donc .. le consultant GlobaSign ..avait raison ;-) . Voila de quoi me réconcilier avec ces chères institutions ;-)

Un grand merci encore une fois aux équipes de GlobalSign

Bonne soirée

Laurent Teruin

 


 

Publié dans Certificat-2010, Lync 2010, Lync Client | Laisser un Commentaire »

Lync & Certificats Publics.. : Pas si publics que ça … mise à jour

Publié par Teruin laurent le mars 14, 2012

Bonjour

Plusieurs problèmes récents liés aux certificats et à Lync 2010 m’amène à poster cet article

Pour que les services Lync Edge / reverse proxy fonctionnent correctement, il faut que le mobile ou le pc approuve l’autorité de certification de confiance qui a émis ce certificat. L’autorité de certification la plus communément reconnue et par conséquent installée dans le magasin de certificat des ordinateurs semble être Verisign et Thawte.

Cependant, cela n’empêche pas les autres de fonctionner convenablement à condition que les autorités de certification qui ont délivrées le certificat, à savoir l’Autorité racine de confiance ou l’autorité intermédiaire soient présentes dans le magasin du périphérique qui accède à Lync. Périphérique qui peut être un téléphone mobile (Windows Phone, Iphone etc..) , un Serveur Lync Edge (Fédération), un Pc de l’entreprise dans le domaine, un pc externe inconnu.

Bien sûr me direz-vous que si vous achetez des certificats publics (au prix où parfois ils sont vendus ….), c’est pour justement ne pas avoir à mettre en place des certificats d’autorités de confiance dans les PC. J’en conviens mais……. Mais parfois ce n’est pas le cas.

Pour tester j’ai installé une machine Windows 7 «  from scratch » que je l’ai mis à jour.

Voici ce qu’elle possédé dans son magasin de certifications


 


On n’y trouve Thawte Verisign (qui semble être la même société par ailleurs) mais pas de trace de Comodo ni de Globalsign par exemple. Ce qui veut dire que pour ces autorités, il faudra déployer des certificats d’autorités de confiance Racines et voir intermédiaires sur les postes de travail de l’entreprise. En Gpo ça se fait très rapidement. Par contre sur les Smartphones, c’est selon le système d’exploitation parfois un peu plus compliqué, surtout si vous en avez beaucoup ;-))

Cependant reste le problème de l’accès WEB APP de Lync qui est censé être utilisé par des clients externes en https, et qui n’étant pas dans le domaine, n’auront pas forcement les bonnes autorités de certifications dans leurs magasins. Pour eux, lorsqu’ils tenteront d’accéder à une réunion par web app un warning de certificat s’affichera avec la possibilité de continuer néanmoins. C’est moyen je vous l’accorde mais ….pas le choix.

Si vous mettez en place une fédération alors il faudra également penser à ce que les deux serveurs Edge possèdent de part et d’autre les bonnes autorités de certification de confiance (racines et intermédiaires) et dans les bons conteneurs !.

D’autre part, il n’est pas exclu, même si vous choisissez une autorité connue par défaut dans Windows 7 que cela suffise. Pourquoi ? Parce que les autorités de certifications publiques peuvent si elle le souhaite, utiliser des nouvelles autorités de certifications intermédiaires pour délivrer des certificats publics. De facto, cette nouvelle autorité de certification publique de confiance et intermédiaire ne sera donc pas présente dans vos magasins. Et par conséquent cela ne fonctionnera pas. Un exemple ? un certificat récemment acheter auprès de Vérisign . Vous remarquerez le nom de l’autorité de certification intermédiaire


Concernant la fédération avec Windows Live et autre IM, peu de problème sont remontés pour le moment.

Certificat pour les Phone Edition

Pour les téléphones voici les autorités racines approuvés par défaut sur Lync Phone Edition

Fournisseur  

Nom du certificat  

Date d’expiration  

Longueur de la clé  

Comodo 

AAA Certificate Services 

12/31/2020 

2048 

Comodo

AddTrust External CA Root 

5/30/2020 

2048 

Cybetrust 

Baltimore CyberTrust Root 

5/12/2025 

2048 

Cybetrust 

GlobalSign Root CA 

1/28/2014 

2048 

Cybetrust 

GTE CyberTrust Global Root 

8/13/2018 

1024 

VeriSign 

Class 2 Public Primary Certification Authority 

8/1/2028

1024 

VeriSign 

Thawte Premium Server CA 

12/31/2020 

1024 

VeriSign 

Thawte Server CA 

12/31/2020 

1024 

VeriSign 

Comodo 

1/7/2010 

1000 

VeriSign 

Class 3 Public Primary Certification Authority 

8/1/2028 

1024 

Entrust 

Entrust.net Certification Authority (2048)

12/24/2019 

2048 

Entrust 

Entrust.net Secure Server Certification Authority 

5/25/2019 

1024 

Equifax 

Equifax Secure Certification Authority 

8/22/2018 

1024 

GeoTrust 

GeoTrust Global CA 

5/20/2022 

2048 

Go Daddy 

Go Daddy Class 2 Certification Authority 

6/29/2034

2048 

Go Daddy 

http://www.valicert.com/ 

6/25/2019 

1024 

Go Daddy 

Starfield Class 2 Certification Authority 

6/29/2034 

2048 

 

Donc avant de signer chez un fournisseur d’autorité de certification publique comme on dit dans le sud … Méfi !

Vérifier également sur le site de Microsoft que cette autorité de certifications publiques est bien certifiée UC par l’éditeur voir ci-dessous ou. lien suivant : http://support.microsoft.com/kb/929395


Au prix où ils le vendent leurs services ne serait-t-il pas de bon ton de les publier au moins via Windows Update non ? Sinon à quoi bon passer par une autorité de certification publique. J’ai dit une bêtise la ?

Laurent Teruin

 

 

Publié dans Certificat-2010, Lync 2010 | 3 Commentaires »

Exchange 2010 SP2 RU1

Publié par Teruin laurent le février 14, 2012

Bonjour

Microsoft vient de publier un correctif pour Exchange 2010 SP2. Qui corrige les problèmes suivants :

  • New updates for Dec DST – Exchange 2010 – SP2 RU1 – Display name for OWA.
  • 2616230 Exchange 2010 CAS server treats UTF-7 encoding NAMESPACE string from CHS Exchange 2003 BE server as ASCII, caused IMAP client fails to login.
  • 2599663 RCA crashes when recipient data is stored in bad format.
  • 2492082 Freebusy publish to Public Folders fails with 8207 event.
  • 2666233 Manage hybrid configuration wizard won’t accept domains starting with a numeral for FOPE outbound connector FQDN.
  • 2557323 “UseLocalReplicaForFreeBusy” functionality needed in Exchange 2010.
  • 2621266 Exchange 2010 Mailbox Databases not reclaiming space.
  • 2543850 Exchange 2010 GAL based Outlook rule not filtering emails correctly.

Vous pouvez le récupérez a l’adresse suivante : http://www.microsoft.com/download/en/details.aspx?id=28809

Bonne journée

Laurent Teruin

Publié dans Exchange 2010 SP2, Mise-a-jour-2010 | Laisser un Commentaire »

Redirection IIS par Script de la racine vers le Vdir « OWA »

Publié par David PEKMEZ le décembre 21, 2011

Bonjour,

J’avais déjà fait un article à ce sujet il y a un an déjà ! http://unifiedit.wordpress.com/2010/12/04/iis-redirection-vers-owa-exchange-server-2010-2/

Le but est de rediriger les requêtes de la racine du Serveur IIS

Et voici le script Powershell qui va vous aider à configurer correctement vos serveurs Exchange

Le principe est très simple, vous avez deux paramètres à renseigner :

  • Le premier est l’URL de redirection que vous désirez utiliser exemple : https://unifiedit.wordpress.com/owa
  • Le second paramètre est l’utilisation ou non du SSL pour l’accès au téléchargement de l’OAB dans votre infrastructure, ici vous pouvez utiliser au choix :
    • http
    • https

Pour de plus amples informations sur l’utilisation du script vous pouvez utiliser le paramètre - ?

Exemple d’utilisation du script :


.\IISRedirect.ps1 -URLRedirect "https://exchsp2DCFR.intra.net/owa" -OAB HTTP

Code source

#=================================================================================
#	IISRedirect.ps1
#
#	THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
#	KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
#	IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
#	PARTICULAR PURPOSE.
#	
#	Description:  Redirect IIS to a Vdir Directory
#
#	# Script Written By: David Pekmez ( http://unifiedit.wordpress.com )
#
#	Version: 1
#	Last Updated: 08/12/2011
#
#=================================================================================


#=================================================================================
# Parameter definition
#=================================================================================

Param(
	[Parameter(Mandatory=$true, Position=0, HelpMessage="Please Enter the redirection URL",ValueFromPipeline=$true)][string] $URLRedirect,
	[Parameter(Mandatory=$true, Position=1, HelpMessage="Please Enter HTTP or HTTPS for OAB Access",ValueFromPipeline=$true)][string] $OAB
)

#=================================================================================
# OAB Access HTTP or HTTPS
#=================================================================================

if ($OAB -eq "HTTP")    {
    [string]$OABConf = ""
}    else    {
    [string]$OABConf = "Ssl"
}

#=================================================================================
# Add Exchange 2010 Powershell Snapin
#=================================================================================

if ( (Get-PSSnapin -Name Microsoft.Exchange.Management.PowerShell.E2010 -ErrorAction SilentlyContinue) -eq $null )
{
    Add-PsSnapin Microsoft.Exchange.Management.PowerShell.E2010
}

#==========================================================================
# Function that returns true if the incoming argument is a help request
#==========================================================================

function IsHelpRequest
{
param($argument)
return ($argument -eq "-?");
}

#==========================================================================
# Function Debug
#==========================================================================
function Debug([string]$data)
{
$var = $null
$var = get-variable($data) -ea SilentlyContinue

	if ($var)
	{
	write-host "DEBUG: " -foregroundcolor cyan -nonewline
	write-host $var.name "  " -nonewline
	write-host "[$var.value]"
	}
	else
	{
	write-host "DEBUG: " -foregroundcolor cyan -nonewline
	write-host "[$data]"
	}
	
}


#=======================================
# Reset IIS on the server
#=======================================
function ResetIIS
{

Write-Host "Restarting IIS Services..." -foregroundcolor Green

IISRESET

Write-Host ""
Write-Host "Redirection set to $URLRedirect and $OAB for OAB Access" -foregroundcolor green
Write-Host ""
}

#===================================================================
# Function that displays the help related to this script following
# the same format provided by get-help or <cmdletcall> -?
#===================================================================
function Usage
{

@"
NAME: IISRedirect.ps1

SYNOPSIS:
Add a redirection on IIS default web site to another Virtual directory 
Made for Exchange Server to redirect to OWA directory

SYNTAX:
IISRedirect.ps1

`t[-URLRedirect <Redirection URL>]
`t[-OAB <HTTP or HTTPS>]
`t[-?]

PARAMETERS:
-URLRedirect (Requiered)
Enter the IIS redirection URL to use

-OAB (Requiered)
Set OAB access to HTTP Or HTTPS

-?
Help on usage

-------------------------- EXAMPLE --------------------------

.\IISRedirect.ps1 -URLRedirect "https://unifiedit.intra.net/owa" -OAB HTTP

"@
}	

#=============================================================================================
# Redirection
# More information http://www.iis.net/ConfigReference/system.webServer/httpRedirect
# Note: You must be sure to set the commit parameter to apphost when you use AppCmd.exe 
# to configure these settings. This commits the configuration settings to the appropriate 
# location section in the ApplicationHost.config file
#=============================================================================================

Write-host ""
Write-host "IIS Config is starting ... " -foregroundcolor Green
Write-host ""

Set-Location "$env:windir\System32\inetsrv"

.\appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /exactDestination:"False" /childonly:true /enabled:"True" /destination:$URLRedirect

.\appcmd.exe set config "Default Web Site/Aspnet_Client" -section:system.webServer/httpRedirect /enabled:false /commit:apphost
.\appcmd.exe set config "Default Web Site/Autodiscover" -section:system.webServer/httpRedirect /enabled:false /commit:apphost
.\appcmd.exe set config "Default Web Site/EWS" -section:system.webServer/httpRedirect /enabled:false /commit:apphost
.\appcmd.exe set config "Default Web Site/ECP" -section:system.webServer/httpRedirect /enabled:false /commit:apphost
.\appcmd.exe set config "Default Web Site/Microsoft-Server-ActiveSync" -section:system.webServer/httpRedirect /enabled:false /commit:apphost
.\appcmd.exe set config "Default Web Site/OWA" -section:system.webServer/httpRedirect /enabled:false /commit:apphost
.\appcmd.exe set config "Default Web Site/PowerShell" -section:system.webServer/httpRedirect /enabled:false /commit:apphost
.\appcmd.exe set config "Default Web Site/OAB" -section:system.webServer/httpRedirect /enabled:false /commit:apphost
.\appcmd.exe set config "Default Web Site/Rpc" -section:system.webServer/httpRedirect /enabled:false /commit:apphost
.\appcmd.exe set config "Default Web Site/RpcWithCert" -section:system.webServer/httpRedirect /enabled:false /commit:apphost

Write-host ""
Write-host "Redirection HTTP Done .. " -foregroundcolor Green
Write-host ""

#====================================================================================
# Suppress SSL on "Default Web Site"
# More information http://www.iis.net/ConfigReference/system.webServer/security/access
# Note: You must be sure to set the commit parameter to apphost when you use AppCmd.exe 
# to configure these settings. This commits the configuration settings to the appropriate 
# location section in the ApplicationHost.config file
#====================================================================================

Set-Location "$env:windir\System32\inetsrv"

# Unlock IIS Config
.\appcmd.exe unlock config -section:system.webServer/security/access

Write-Host ""
Write-Host "IIS Unlock Security Access Done ...." -foregroundcolor green
Write-Host "Setting SSLFlags now ..." -foregroundcolor green
Write-Host ""


.\appcmd.exe set config "Default Web Site" -section:system.webServer/security/access /sslFlags:""
.\appcmd.exe set config "Default Web Site/Aspnet_Client" -section:system.webServer/security/access /sslFlags:"Ssl,Ssl128"
.\appcmd.exe set config "Default Web Site/Autodiscover" -section:system.webServer/security/access  /sslFlags:"Ssl,Ssl128"
.\appcmd.exe set config "Default Web Site/EWS" -section:system.webServer/security/access /sslFlags:"Ssl,Ssl128"
.\appcmd.exe set config "Default Web Site/ECP" -section:system.webServer/security/access /sslFlags:"Ssl,Ssl128"
.\appcmd.exe set config "Default Web Site/Microsoft-Server-ActiveSync" -section:system.webServer/security/access /sslFlags:"Ssl,Ssl128"
.\appcmd.exe set config "Default Web Site/OWA" -section:system.webServer/security/access /sslFlags:"Ssl,Ssl128"
.\appcmd.exe set config "Default Web Site/PowerShell" -section:system.webServer/security/access /sslFlags:""
# OAB conf is set to HTTP or HTTPS
.\appcmd.exe set config "Default Web Site/OAB" -section:system.webServer/security/access /sslFlags:$OABConf
.\appcmd.exe set config "Default Web Site/Rpc" -section:system.webServer/security/access /sslFlags:"Ssl"
.\appcmd.exe set config "Default Web Site/RpcWithCert" -section:system.webServer/security/access /sslFlags:"Ssl,Ssl128"

If ($OAB -eq "HTTP")
{
Write-Host ""
Write-Host "OAB Vdir is set to HTTP so all the infrastructure must be set to HTTP for OAB access" -foregroundcolor yellow
Write-Host ""
}
Else
{
Write-Host ""
Write-Host "OAB Vdir is set to HTTPS so all the infrastructure must be set to HTTPS for OAB access" -foregroundcolor yellow
Write-Host ""
}

#==================================================================================================
# Change security settings on the web.config file that lost the Authenticated User permissions
# The Web.config file will be created during the IIS Redirection setup
#==================================================================================================


# get file web.config path and set the right permissions if exists

$setupRegistryPath = Get-ItemProperty -path 'HKLM:SOFTWARE\Microsoft\ExchangeServer\v14\Setup' 
$exchangeInstallPath = $setupRegistryPath.MsiInstallPath 
$WebConfigFile = ($exchangeInstallPath)+"ClientAccess\OAB\web.config"
$FileExists = Test-Path $WebConfigFile
$ErrorActionPreference = "Stop"

# Authenticated Users Group SID = S-1-5-11
# a "*" is added before the SID because icacls needs it when using SIDs

$Group = "*S-1-5-11"
$GrantPerm = icacls $WebConfigFile /grant:R $Group':R'

# Set Permissions on Web.Config file giving Read Access to Anthenticated Users Group

If ($FileExists -eq $True)
{
$GrantPerm
Write-Host ""
Write-Host "Security Settings on Web.Config file Done " -foregroundcolor green
Write-Host ""
}
	
Else {Write-Host "The Web.config File is not present in Directory: $exchangeInstallPath" -foregroundcolor red}

#==================================================================================================
# IISReset
#==================================================================================================

ResetIIS  

Ce script est en téléchargement via le lien : IISRedirect.zip

Hope this Help !

David Pekmez

Publié dans Exchange Server 2010, Outils-2010, script | Laisser un Commentaire »

The Remote UC Troubleshooting Tool

Publié par David PEKMEZ le décembre 18, 2011

Encore une présentation d’un outil super sympa pour Lync Server 2010 !

Il vous aidera notamment à diagnostiquer les problématiques liées aux certificats ou aux noms DNS utilisés, très pratique donc !

Exemple d’utilisation


Détail de l’utilisation ci-dessous

http://www.insideocs.com/Tools/RUCT/RUCT.htm

Outil : The Remote UC Troubleshooting Tool

Auteur : Curtis Johnstone, Architecte chez Quest Software et MVP Microsoft

Site Web: http://blog.insidelync.com/

Téléchargement de l’outil : http://www.insideocs.com/Tools/RUCT/RUCT.htm

David Pekmez

Publié dans Lync 2010, Outils-2010 | Laisser un Commentaire »

Exchange 2010 SP2 – GAL Segmentation (ABP) – Implementation

Publié par Anthony Costeseque le décembre 7, 2011

Suite au billet de David voyons comment mettre tout cela en place !

La première étape va consister à diviser votre organisation (virtuelle)

Pour cela vous avez un certain nombre d’options à votre disposition, qui consiste à :

  1. Créer des OU dans votre AD pour séparer les utilisateurs


Ici sous utilisateurs j’ai créé des OU par société

  1. Personnaliser les attributs LDAP d’un objet « mail enabled »

En règle générale nous utiliserons les attributs de l’onglet organisation d’un objet mail enabled : Société, Département ou encore Region.


Ou encore les attributs personnalisés (vous en avez 15 pour faire ce que vous voulez !)


(Onglet General > Attributs personnalisés)

Maintenant comment mettre cela en place rapidement ?

2 méthodes :

Si vous avez une faible population de personnes vous pouvez mettre à jours les attributs à la main.

Si vous avez un nombre d’utilisateurs important, ou que vous aimez gagner du temps ! PowerShell est là :) il faudra sélectionner les bon utilisateurs (grâce aux OU) puis mettre à jour les attributs

Get-Mailbox -OrganizationalUnit ‘NomDeLOU’ | Set-User -Company ‘CeQueVousVoulez’

Get-Mailbox -OrganizationalUnit ‘NomDeLOU’ | Set-User -Department ‘CeQueVousVoulez’

Simple non ? :) Ici nous avons pris tous les objets mail enabled de l’OU NomDeLOU et nous avons changé l’attribut Société (company) ou encore le Service (department) avec le nom de la société que vous voulez

Petite différence pour les attributs personnalisés nous utiliserons Set-Mailbox (avec CustomAttributeX ou X est compris entre 1 et 15)

Get-Mailbox -OrganizationalUnit ‘NomDeLOU’ | Set-Mailbox -CustomAttribute1 ‘CeQueVousVoulez’

Il vous reste à répéter le process pour toutes les sociétés que vous voulez mettre en place.

Maintenant nous avons un attribut ou des attributs nous permettant de filtrer nos utilisateurs.

La deuxième étape va consister à créer les AL (Address List), les GAL (Global Address List) et les OAB (Offline Address Book)

Ici il est recommandé d’utiliser des vrai filtres LDAP donc PowerShell uniquement pas de EMC (la console) possible :p (l’exemple est sur une installation française, il faudra adapter « -Container » en fonction de votre langue d’installation)

On commence par les AL Classique, nous allons créer :

1 AL pour tous les Utilisateurs et les Listes de distribution

New-AddressList -Name “AL_Societe1_Users_DGs” -RecipientFilter {(((RecipientType -eq ‘UserMailbox’) -or (((RecipientType -eq ‘MailUniversalDistributionGroup’) -or (RecipientType -eq ‘MailUniversalSecurityGroup’) -or (RecipientType -eq ‘MailNonUniversalGroup’) -or (RecipientType -eq ‘DynamicDistributionGroup’))))) -and (Company -eq ‘Societe1′)} -Container ‘\Tous les utilisateurs’ -DisplayName ‘Tous les utilisateus Societe1′

Update-AddressList ‘AL_Societe1_Users_DGs’

1 AL pour les contacts

New-AddressList -Name “AL_Societe1_Contacts” -RecipientFilter {((RecipientType -eq ‘MailContact’) -and (Company -eq ‘Societe1′))} -Container ‘\Tous les contacts’ -DisplayName ‘Tous les contacts Societe1′

Update-AddressList ‘AL_Societe1_Contacts’

1 AL pour les salles (mailbox de type ressource) obligatoire si vous n’en avez pas il faudra en créer une blank !

Pour la version vide

New-AddressList -Name AL_BlankRoom -RecipientFilter {((Alias -ne $null) -and ((RecipientDisplayType -eq ‘ConferenceRoomMailbox’) -or (RecipientDisplayType -eq ‘SyncedConferenceRoomMailbox’)))} -Container ‘\Toutes les salles’ -DisplayName ‘Toutes les salles Societe1′

Update-AddressList ‘AL_BlankRoom’

Pour la version non vide

New-AddressList -Name “AL_Societe1_Rooms” -RecipientFilter {(Alias -ne $null) -and (Company -eq ‘Societe1′) -and (RecipientDisplayType -eq ‘ConferenceRoomMailbox’) -or (RecipientDisplayType -eq ‘SyncedConferenceRoomMailbox’)} -Container ‘\Toutes les salles’ -DisplayName ‘Toutes les salles Societe1′

Update-AddressList ‘AL_Societe1_Rooms’

1 GAL

New-GlobalAddressList -Name “Global Address List Societe1″ -RecipientFilter {(Company -eq ‘Societe1′)}     

1 OAB

New-OfflineAddressBook -Name “OAB_Societe1″ -AddressLists “Global Address List Societe1″

Il vous reste à répéter le process pour toutes les sociétés que vous voulez mettre en place.

La troisième étape va consister à créer les ABP (Address Book Policies)

Pour la version sans room

New-AddressBookPolicy -Name “ABP_Societe1″ -AddressLists “AL_Societe1_Users_DGs”,”AL_Societe1_Contacts” -OfflineAddressBook “\OAB_Societe1″ -GlobalAddressList “\Global Address List Societe1″ -RoomList “\Toutes les salles\AL_BlankRoom”

Pour la version avec room

New-AddressBookPolicy -Name “ABP_Societe1″ -AddressLists “AL_Societe1_Users_DGs”,”AL_Societe1_Contacts” -OfflineAddressBook “\OAB_Societe1″ -GlobalAddressList “\Global Address List Societe1″ -RoomList “\Toutes les salles\AL_Societe1_Rooms”

Il vous reste à répéter le process pour toutes les sociétés que vous voulez mettre en place.

Et la quatrième et dernière étape va consister a appliquer la policy aux utilisateurs

Get-Mailbox -OrganizationalUnit ‘NomDeLOU’ | Set-Mailbox -AddressBookPolicy “ABP_Societe1″

Il vous reste à répéter le process pour toutes les sociétés que vous voulez mettre en place.

Pour verifier :

Get-Mailbox -OrganizationalUnit ‘NomDeLOU’ | fl Name,AddressBookPolicy

Il faudra ensuite fermer le client de l’utilisateur s’il est en train d’utiliser Outlook !

TRES IMPORTANT : Cela ne fonctionne pas si votre serveur exchange fait aussi DC et sur tout Global Catalogue car à ce moment-là c’est Name Service Provider Interface (NSPI) et non Microsoft Exchange Address Book service qui est utilisé pour les recherches ! (NSPI passe au-dessus des ABP)

EDIT (09/12/11) : suite au message de Julien Ohayon qui m’a remonté un problème de typo due à la réinterprétation du code par WordPress du code PowerShell je vous joint une capture d’écran et un fichier txt avec les commandes.



Le fichier texte

https://skydrive.live.com/redir.aspx?cid=2baad2dff0402075&resid=2BAAD2DFF0402075!1024&parid=2BAAD2DFF0402075!114

Pour toutes questions n’hésitez pas.

Anthony COSTESEQUE

Publié dans 1-EXCHANGE 2010, Exchange 2010 SP2, Exchange Server 2010 | 10 Commentaires »

Exchange Server 2010 SP2 : la Segmentation est de retour !

Publié par David PEKMEZ le décembre 7, 2011

Bonjour,

Avec l’arrivée du service pack 2 d’Exchange Server 2010, revient le principe de segmentation des listes d’adresses, mais par la grande porte ;)

Le nouveau principe mis en place par les équipes produit est d’une simplicité et d’une efficacité redoutable !

En effet cette segmentation repose sur deux principes :

  • La création de listes d’adresses, Global Address list, OAB filtrés pour ne contenir que les utilisateurs désirés)
  • L’application d’une stratégie aux utilisateurs, permettant de se voir affecter les objets contenus dans la stratégie.

Le schéma ci-dessous représente un des scénarios cibles possible à savoir deux sociétés hébergées sur la même infrastructure mais totalement hermétiques l’une de l’autre, en termes de partage de données (Listes d’adresses etc …)

Ce besoin peut être appliqué à d’autres scénarios tel que :

  • Au sein de la même société filtrer qui voit telle ou telle liste d’adresses, segmenter pour des raisons pratiques, légales, ou de sécurité
  • Bien entendu cette nouvelle fonctionnalité répond parfaitement aux besoins des hébergeurs, pouvant ainsi très simplement proposer un environnement Exchange hermétique et pourtant mutualisé


Les règles d’application reposent sur une stratégie, contenant les objets devant être vus de l’utilisateur, appliquée à tel ou tel utilisateur


L’opération de mise en place va donc consister en :

  • La création des objets Exchange GAL, Address lists, OAB …)
  • La création des Address Book Policy
  • L’application de la stratégie aux utilisateurs

Création des Objets Exchange

Exemple de création ci-dessous des objets Exchange (GAL, Address lists, OAB …)


Création des stratégies

Exemple de création de la stratégie contenant les objets de la société « Contoso »

  • Renseignement des éléments
    • Global Address list
    • Offline Address Book
    • Room list
    • Address lists


Exemple de création de la stratégie contenant les objets de la société « Fabrikam »

  • Renseignement des éléments
    • Global Address list
    • Offline Address Book
    • Room list
    • Address lists


Puis application des paramètres à un
/ des
utilisateur(s) à l’aide du paramètre « Address Book Policy » disponible en mode graphique ou par cmdlet Powershell


En commande powershell, filtrage sur la paramètre AddressBookPolicy.


Un nouvel onglet dans la console Exchange nous présente ces stratégies, au niveau Organisation, dans l’onglet « Address Book Policies »


Dans Active Directory ce nouveau conteneur se trouve juste en dessous de l’organisation Exchange, ici « INTRA »


Résultat dans OWA de la segmentation pour le plaisir J et vue des bonnes listes d’adresses, ici pour la société « Contoso »

Conclusion

Nul doute que cette nouvelle fonctionnalité va faire fureur chez les clients, peu importe le but (hosting, legal, autres besoins de segmentation), il y a des chances que cela réponde parfaitement à toutes les solutions de déploiement d’Exchange. Belle avançée et depuis le nombre de version ou cette fonctionnalité apparaissait puis disparaissait et dans tous les cas était assez complexe à mettre en place, voici une implémentation simple et bien pensée de l’équipe produit ! ABP Rocks J

PS : petit bémol mais qui ne pouvait pas être contourné, les clients LDAP ne se verront affectés par ces stratégies.. les clients Entourage par exemple

Bons déploiements !

David Pekmez

Publié dans Exchange 2010 SP2, Exchange Server 2010 | 1 commentaire »

 
Suivre

Get every new post delivered to your Inbox.

Joignez-vous à 108 followers