2009-09-23 2 views
1

Je rencontre des problèmes lors de l'utilisation de Microsoft.Exchange.Management.PowerShell.Admin sur un serveur. Le serveur n'est pas celui qui exécute Exchange 2007, c'est un serveur distant (dans la même zone). Je ne peux pas comprendre comment ajouter le Snapin pour Powershell - Microsoft.Exchange.Management.PowerShell.Admin. Est-il possible de simplement obtenir le fichier dll à partir du serveur Exchange 2007 et de le copier sur le serveur sur lequel mon code est en cours d'exécution? Est-ce que quelqu'un peut expliquer ce que je dois faire pour que mon code fonctionne? L'exception que j'obtiens maintenant est: "Aucun composant logiciel enfichable Windows PowerShell n'est disponible pour la version 1". Ceci est le code qui génère l'erreur:Microsoft.Exchange.Management.PowerShell.Admin

public void CreateMailBox(User user) 
     {    
      //Create a runspace for your cmdlets to run and include the Exchange Management SnapIn... 

      RunspaceConfiguration runspaceConf = RunspaceConfiguration.Create(); 
      PSSnapInException PSException = null; 
      PSSnapInInfo info = runspaceConf.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out PSException); 
      Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConf); 

      runspace.Open(); 

      Pipeline pipeline = runspace.CreatePipeline(); 
      Command command = new Command("New-Mailbox"); 

      command.Parameters.Add("Name", user.UserName); 

....

L'erreur vient sur la ligne avec PSSnapInfo info = runspaceConf ..... J'utilise .NET 3.5

Répondre

0

Je doute qu'il suffit de saisir le dll. Et même si c'est juste une DLL, le snapin supportera-t-il les opérations distantes? Eithe façon, vous avez encore besoin « installer » le snapin de sorte que PowerShell voit par exemple .:

PS> $snapinPath = 'Microsoft.Exchange.Management.PowerShell.Admin.dll' 
PS> C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /i $snapinPath 

Si vous voulez faire à distance et vous arrive d'utiliser PowerShell 2.0 essayez les fonctionnalités d'accès distant. Il serait probablement préférable d'exécuter le snapin via une session à distance sur le serveur Exchange.

+0

Y at-il un endroit que je peux télécharger des fichiers theese? –

+0

InstallUtil se trouve sur votre ordinateur si vous avez installé PowerShell. C'est dans "$ env: windir \ Microsoft.NET \ Framework \ v2.0.50727". Vous ne savez pas où trouver la DLL de snapin d'échange sauf de MS Exchange Server. –

+0

J'ai fini par télécharger les outils de gestion Exchange 2007 pour 32 bits. Et tout mon code fonctionne comme il se doit, il crée les boîtes aux lettres parfaitement sur le serveur Exchange distant. MAIS !!!! Maintenant, je copie les fichiers de programme de mon application sur un autre serveur, où il est censé fonctionner. C'est un système d'exploitation x64, et il a les outils Exchange Mngmt (x64), et Powershell installé. Lorsque j'ouvre Powershell, je peux voir que le snapin Microsoft.Exchange.Management.PowerShell.Admin est disponible dans la version x64 de PowSh, mais pas dans le PowSh 32bit. Je reçois une erreur, semble essayer de charger le 32 bits. * Soupir * –

0

Je crois que le snapin Exchange 2007 est une DLL 32 bits. Je ne suis pas un programmeur professionnel, mais que diriez-vous d'essayer de créer votre programme en tant qu'application 32 bits?

Je pense que si vous construisez votre application en 32 bits, elle utilisera le moteur PowerShell 32 bits et pourra charger le snapin correctement.

Maintenant, je ne recommande pas d'essayer de copier la DLL sur d'autres serveurs. Vous devez installer les outils d'administration Exchange sur le serveur sur lequel vous développez votre application.

Espérons que cela aide ... Sinon, postez un commentaire ci-dessous.

0

Sérieusement confondu par ceci. Exchange 2007 SP2 installé, indique qu'il prend en charge PowerShell v2.0, mais ce n'est pas vrai.

apparaît toujours comme PSVersion 1.0 et non 2.0 regard ci-dessous:

Nom: microsoft.exchange.management.powershell.admin PSVersion: 1.0 Description: Tâches d'administration pour le serveur Exchange

+0

J'ai renfloué sur celui-ci .. Tout fonctionne, sauf faire les alias à l'email. Je le fais manuellement sur le peu qui le demande .. –

1

Il dépend également de la façon dont le code est compilé dans VS 2010 (x86 ou x64). Si vous voulez charger le 64 bits Snapin Exchange Server, vous devez compiler avec x64.

Vous pouvez utiliser PsVersionTable $ pour vérifier si l'PowerShell est la version 2.0 (il devrait)