2013-04-03 13 views
5

Bir Exchange Server'da PowerShell betiklerinin nasıl çalıştırılacağını açıklayan kılavuzlar buldum, ancak tüm kılavuzlar makinenin etki alanına katılmasını ve çoğu uygulamanın en iyi uygulamalardan ziyade geçici çözümler kullanmasını gerektiriyor.Program aracılığıyla Exchange Mailbox'ları uzaktan oluşturmak için kesin bir kılavuz var mı?

C# .NET veya VB.NET kullanarak bir Exchange Server'a uzaktan bağlanmanın bir yolu var mı?

Esasen, Exchange Server'ım yönetici kimlik bilgilerini kullanarak (bunları programda şifreli olarak temin ederim) ve bir PowerShell betiği kullanarak bir posta kutusu kullanarak bağlamak istiyorum. Hepsi bu.

Uygulamayı bir konsol uygulaması olarak başlatmak istiyorum ve işlevselliği onayladığımda bir web form uygulamasına veya MVC'ye uygulayabilirim.

Her türlü tavsiye büyük önem taşımaktadır!

+2

Exchange EWS hizmetleriyle çalışmıştım, ancak maalesef yalnızca veri için ve varolan posta kutularını yenilerini oluşturmayan yönetiyor. Bunu, forte'm olduğu gibi yardımcı olacağı konusunda emin değilim. http://codingchris.com/2012/02/15/creating-exchange-2010-mailboxes-in-c/ – Chris

cevap

6

Son zamanlarda benzer bir sorunla uğraşmak zorunda kaldım, aşağıdaki kod, işlevselliği uzak Exchange sunucusuna güvenli bir bağlantıyla gerçekleştirmeme yardımcı oldu. Tabii

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(); 

olacak kullanıcı grubu üyeliğinin bazı olağan konfigürasyonu, böylece uzaktan güvenli/güvensiz uzaktan bağlantı ve sunucu parası. this makalesi yardımcı olabilir.

+0

Teşekkürler, bu bana çok yardımcı oldu. Artık bir konsol uygulaması aracılığıyla kullanıcıları uzaktan bağlayıp oluşturabiliyorum. Kodu kısa süre yayınlayacağım. – TimeBomb006

+0

@ TimeBomb006 - yardımcı olmaktan mutluluk duyuyorum :) – MuhammadHani

İlgili konular