2014-12-03 3 views
0

회사 도메인에 사용자 계정을 만드는 응용 프로그램을 작성합니다. Exchange 2010 서버를 설치했으며 새 사용자 계정 전자 메일 주소를 새로 만들어 Unify Massaging을 사용하도록 설정해야합니다. 문제없이 전자 메일을 만들지 만 UMmailbox를 사용하려고하면 오류가 발생하고 내가 잘못한 것을 찾을 수 없습니다.UMMailbox Exchange 2010을 활성화하는 방법

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Management.Automation; 
using System.Management.Automation.Runspaces; 
using System.Collections.ObjectModel; 


private string RunLocalExchangePowerShell(string script) 
    { 
     // create the runspace and load the snapin 
     RunspaceConfiguration rsConfig = RunspaceConfiguration.Create(); 
     PSSnapInException snapInException = null; 
     Runspace runSpace = RunspaceFactory.CreateRunspace(rsConfig); 
     runSpace.Open(); 
     rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", out snapInException); 

    string DN = @"CN=User Name,OU=Company Users,DC=local,DC=contoso,DC=com"; 

     Command enableUMMB = new Command("Enable-UMMailbox"); 
     enableUMMB.Parameters.Add("Identity", DN); 
     enableUMMB.Parameters.Add("PinExpired", false); 
     enableUMMB.Parameters.Add("UMMailboxPolicy", "UM2 Default Policy"); 
     enableUMMB.Parameters.Add("IgnoreDefaultScope"); 

     Pipeline enableUMMailbox = runSpace.CreatePipeline(); 

     enableUMMailbox.Commands.Add(enableUMMB); 

     Collection<PSObject> enabelUMmaiiboxResults = enableUMMailbox.Invoke(); 

     enableUMMailbox.Dispose(); 
     runSpace.Close(); 
    } 

오류는 다음입니다 : 내 코드의 일부가 아래 'Microsoft.Exchange.UM.UMCommon.UmGlobals'에 대한

형식 이니셜 라이저에서 예외를 Throw했습니다.

Powershell 콘솔에서 위의 명령을 사용하면 UMmailbow가 문제를 일으키지 않습니다. 내가 어떻게 사용-UMMailbox의 커맨드를 사용하는 하나의 방법을 찾은

Enable-UMMailbox -Identity "CN=User Name,OU=Company Users,DC=local,DC=contoso,DC=com" -PinExpired $false -UMMailboxPolicy "UM2 Default Policy" -IgnoreDefaultScope 

답변

0

: PowerShell 콘솔에서 나는 다음과 같은 문자열을 사용했다. URI를 통해 Exchange 서버에 연결합니다. 내 코드의 벨로우즈 부분 :

string exchangePowershellRPSURI = "http://my.domain/powershell?serializationLevel=Full"; 

    PSCredential credentials = (PSCredential)null; 
    //Provides the connection information that is needed to connect to a remote runspace 
    // Prepare the connection   
    WSManConnectionInfo connInfo = new WSManConnectionInfo((new Uri(exchangePowershellRPSURI)), 
     "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credentials); 
    connInfo.AuthenticationMechanism = AuthenticationMechanism.Kerberos; 
    connInfo.SkipCACheck = true; 
    connInfo.SkipCNCheck = true; 
    connInfo.SkipRevocationCheck = true; 

    // Create the runspace where the command will be executed   
    Runspace runspace = RunspaceFactory.CreateRunspace(connInfo); 

    // Add the command to the runspace's pipeline   
     runspace.Open(); 
     try 
       { 
        Command enableUMMB = new Command("Enable-UMMailbox"); 
        enableUMMB.Parameters.Add("Identity", UserPrincipalName); 
        enableUMMB.Parameters.Add("PinExpired", false); 
        enableUMMB.Parameters.Add("UMMailboxPolicy", "UM2 Default Policy"); 

        Pipeline enableUMMailboxPipiLine = runspace.CreatePipeline(); 
        enableUMMailboxPipiLine.Commands.Add(enableUMMB); 
        enableUMMailboxPipiLine.Invoke(); 
       } 
       catch (ApplicationException e) 
       { 
        MessageBox.Show("Unable to connect to UMMailbox.\n Error:\n" + e.Message, 
         "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
       }