web-dev-qa-db-fra.com

Exchange Powershell - Comment invoquer le module Exchange 2010 à partir d'un script interne?

J'écris un script qui fait un certain nombre de choses avec AD et Exchange et j'arrive à la partie de l'interface graphique où je dois commencer à travailler avec Exchange, mais je ne vois pas où je peux spécifier manuellement pour inclure le module Exchange. Le processus normal que je connais est le répertoire d'activation du module d'importation, mais l'échange de module d'importation ne fonctionne pas.

J'ai effectué un Get-Module -ListAvailable | Sélectionnez Nom et ne voyez rien indiquant Exchange. Cependant, Exchange Management Shell IS chargé sur le serveur Exchange sur lequel je travaille.

Quelqu'un sait-il comment inclure le module Exchange 2010 dans mon script afin que je puisse utiliser les applets de commande spécifiques à Exchange en interne? TIA ...

9
thepip3r

Tu peux le faire:

add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010

et la plupart fonctionnera (bien que le support MS vous dira que cette opération n'est pas prise en charge car elle contourne RBAC).

J'ai vu des problèmes avec certaines applets de commande (spécifiquement activer/désactiver UMmailbox) ne fonctionnant pas avec le composant logiciel enfichable chargé.

Dans Exchange 2010, ils ne prennent essentiellement pas en charge l'utilisation de Powershell en dehors de l'environnement distant implicite d'un shell EMS réel).

18
mjolinor

Je sais que c'est une vieille question, mais plutôt que d'ajouter le composant logiciel enfichable qui n'est apparemment pas pris en charge, j'ai simplement regardé les propriétés de raccourci EMS et copié ces commandes).

L'objectif de raccourci complet est le suivant:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto"

J'ai donc mis ce qui suit au début de mon script et il a semblé fonctionner comme prévu:

. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto

Remarques:

  • Doit être exécuté en 64 bits PS
  • Cela a été testé sur un serveur avec seulement les outils de gestion installés. Il s'est automatiquement connecté à notre infrastructure Exchange existante.
  • Aucun test approfondi n'a été effectué, donc je ne sais pas si cette méthode est viable. Je modifierai ce message si je rencontre des problèmes.
16
Huon Imberger

import-module Microsoft.Exchange.Management.PowerShell.E2010aEssayez avec une implémentation comme:

$exchangeser = "MTLServer01"
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionURI http://${exchangeserver}/powershell/ -Authentication kerberos
import-PSSession $session 

ou

add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
2
Yan Gauthier