2013-04-03 66 views
5

我發現瞭解釋如何在Exchange Server上運行PowerShell腳本的指南,但所有指南都要求該計算機已加入域,並且大多數似乎都使用變通方法,而不是最佳實踐。是否有遠程編程創建Exchange郵箱的權威指南?

有沒有辦法使用C#.NET或VB.NET遠程連接到Exchange Server?

本質上,我想使用管理員憑證(我會在程序中提供它們進行加密)連接到我的Exchange Server,並使用PowerShell腳本創建郵箱。就這些。

我想將應用程序作爲控制檯應用程序啓動,一旦我確認了功能,我就可以將它實現爲Web窗體應用程序或MVC。

任何意見非常感謝!

+2

我一直在使用Exchange EWS服務,但不幸的是,它僅用於數據和管理現有郵箱而不創建新郵件。我發現這一點,雖然不確定是否會有幫助,因爲它不是我的特長。 http://codingchris.com/2012/02/15/creating-exchange-2010-mailboxes-in-c/ – Chris

回答

6

最近我不得不面對一個類似的問題,下面的代碼幫助我通過與遠程Exchange服務器的安全連接執行功能。

Runspace remoteRunspace = null; 
PSCredential psc = null; 
// If user name is not passed used the credentials of the current farm account 
if (!string.IsNullOrWhiteSpace(username)) 
{ 
    if (!string.IsNullOrWhiteSpace(domain)) 
     username = domain + "\\" + username; 
    SecureString secpassword = new SecureString(); 
    if (!string.IsNullOrEmpty(password)) 
    { 
     foreach (char c in password) 
     { 
      secpassword.AppendChar(c); 
     } 
    } 
    psc = new PSCredential(username, secpassword); 
} 

WSManConnectionInfo rri = new WSManConnectionInfo(new Uri(RemotePowerShellUrl), PowerShellSchema, psc); 
if (psc != null) 
    rri.AuthenticationMechanism = AuthenticationMechanism.Credssp; 
remoteRunspace = RunspaceFactory.CreateRunspace(rri); 
remoteRunspace.Open(); 

Pipeline pipeline = remoteRunspace.CreatePipeline(); 
Command cmdSharePointPowershell = new Command(Commands.AddPSSnapin.CommandName); 
cmdSharePointPowershell.Parameters.Add(Commands.AddPSSnapin.Name, MicrosoftSharePointPowerShellSnapIn); 
pipeline.Commands.Add(cmdSharePointPowershell); 
pipeline.Invoke(); 

當然,你會對用戶組成員的一些常用配置,遠程安全/不安全遠程連接的服務器允許等等。 this文章可能會有所幫助。

+0

謝謝,這對我的幫助非常大。我現在可以通過控制檯應用程序遠程連接和創建用戶。我會很快發佈代碼。 – TimeBomb006

+0

@ TimeBomb006 - 很高興幫助:) – MuhammadHani

相關問題