2013-06-19 10 views
5

Also, ich importieren Sie die System.Management.Automation dll und ich versuche, ein New-Mailbox Befehl mit paramsC# - Powershell AddPSSnapin Ursachen Fehler

so laufen die ich benutze:

RunspaceConfiguration config = RunspaceConfiguration.Create(); 
PSSnapInException psEx = null; 
config.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", out psEx); 

Das ist alles schön und gut ist .. ., aber wenn ich die Anwendung erhalte ich die folgende gehen laufen: Cannot load Windows PowerShell snap-in Microsoft.Exchange.Management.PowerShell.E2010 because of the following error: The type initializer for 'Microsoft.Exchange.Data.Directory.Globals' threw an exception.

Also, ich habe einige Online-Forschung und fand, dass ich Any CPU-ändern müssenals Plattformziel.

Allerdings, wenn ich tun, dass ich einen HTTP Error 503. The service is unavailable. Fehler

ich fast sicher bin, dass ich es als 32-Bit-Prozess ausgeführt haben, so dass es das Snap verwenden (die von anderen zu lesen, was zu sein scheint das Snapin läuft unter)

Ich habe den App-Pool zu Enable 32-bit Applications zu True geändert. Wann bekomme ich den Fehler.

Ich habe andere Beiträge gelesen ... aber ich bin mir nicht sicher, wie man hinter diese Service unavailable Sache kommt.

Ich habe versucht, einen x64 Build verwenden und Could not load file or assembly 'EmailAdminWeb2' or one of its dependencies. An attempt was made to load a program with an incorrect format.

+0

Haben Sie Exchange Management Shell 2010 installiert? – urlreader

+0

Ja. Ich kann tatsächlich alle Skripts von Powershell ausführen, indem ich zuerst 'add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010' ausfühle – BRogers

Antwort

2

du gar nicht bekommen verwenden:

config.AddPSSnapIn("your snapin here", out psEx); 

statt .... nur verwenden, um eine Verbindung wie folgt:

WSManConnectionInfo connectionInfo = new WSManConnectionInfo(new Uri("http://yourdomainhere/Powershell/Microsoft.Exchange"), "http://schemas.microsoft.com/powershell/Microsoft.Exchange", PsCreds); 
Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo); 

Jetzt führen Sie Ihre Befehle und Sie sind gut zu gehen.

Schnell Hinweise:

  • Stellen Sie sicher, du bist App x64 nicht Any CPU oder x86
  • zielt Wenn Sie mit .net 4.5 (oder 4) stellen Sie sicher, du bist App Pools sind richtig (v4.0 nicht v2.0) und dass Sie Enable 32bit apps auf false gesetzt haben
Verwandte Themen