Administration distante


Bonjour,

Aujourd’hui nous allons parler un peu de PowerShell et de ce que l’on peut faire avec ! 🙂

Le but ici est d’administrer Exchange 2010 sans installer les outils de management sur la station de travail (disons un pc portable), dans notre exemple nous utiliserons Windows XP pour montrer que tout est possible.

Windows 7 fonctionne aussi parfaitement bien, en fait tout poste possédant PowerShell v2.

 

Nous allons tout d’abord vérifier les méthodes d’authentification sur la webapp PowerShell dans IIS (sur le serveur exchange qui sera notre cible).


Si authentification windows n’est pas activé il faudra l’activer.


Puis faire un iisreset /noforce pour la prise en compte.

A partir de là tout est prêt pour administrer notre serveur à distance.

Allons sur notre poste Windows XP qui se trouve dans le domaine et lançons PowerShell.

Nous allons commencer par stocker dans la variable $cred les credatials avec des droits de gestion dans exchange (domaine\user).


$cred = Get-Credential

Puis nous ouvrons une session sur le serveur distant en passant par la webapp PowerShell et en utilisant les credentials que nous avons saisis.


$session = New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri https://fqdn/powershell -Credential $cred

Attention : le fqdn doit être porté par le certificat SSL utilisé dans IIS (le certificat exchange) s’il n’y est pas un message d’erreur sera retourné.


La session est ouverte


Nous allons maintenant importer la session sur notre machine.

Import-PSSession $session


Les messages d’erreurs sont toujours agressifs 😉

Ici c’est l’execution policy qui n’était pas set sur RemoteSigned ce qui bloquait le bon fonctionnement de l’import.

Set-ExecutionPolicy RemoteSigned


Ici l’import est passé

Nous pouvons maintenant administrer notre serveur Exchange !!


Sauvegardons notre travail pour la prochaine fois.


Export-PSSession –Session $session –OutputModule ExchangeCmdlets –AllowClober

La configuration est exportée sous forme de module dans le répertoire de l’utilisateur qui travaille.


Pour charger le module la prochaine fois.


Get-Module –ListAvailable

Import-Module ExchangeCmdlets

Et vous pouvez de nouveau travailler à distance sur votre configuration exchange 🙂

 

Maintenant allons un peu plus loin.

La première chose à faire lorsqu’on vérifie son serveur exchange c’est la cmdlet Test-ServiceHelath


Ici mon service MSExchangeTransport du HUB est arrêté il faut le relancer.

Nous sommes à distance et un Start-Service ne fonctionne qu’en local, nous ne pouvons donc pas l’utiliser dans notre cas.

Il nous reste WMI et la class win32_service !

Envoyer de nouveau les credentials qui ont suffisamment de droits dans une variable, disons $cred puis construisons notre command.

(gwmi –ComputerName Exchange2k10 –Credential $cred win32_service –Filter »name=’ MSExchangeTransport' »).InvokeMethod(« StartService »,$null)

Ici je fais appel à une méthode contenue dans la class win32_service qui s’appelle StartService tout en ayant au préalable filtré sur le service qui je souhaite manipuler.

NOTE : pour retrouver rapidement les méthodes contenu dans une class WMI (celle qui sont exposées) vous pouvez utiliser la cmdlet Get-Member.

gwmi –ComputerName Exchange2k10 –Credential $cred win32_service –Filter »name=’ MSExchangeTransport' » | Get-Member



Mon serveur est de nouveau opérationnel 🙂

Si vous avez des questions n’hésitez pas.

Anthony COSTESEQUE.

Votre commentaire

Choisissez une méthode de connexion pour poster votre commentaire:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s