2013-04-03 11 views
5

Ho trovato delle guide che spiegano come eseguire gli script PowerShell su un server Exchange, ma tutte le guide richiedono che la macchina sia unita al dominio e la maggior parte sembra utilizzare soluzioni alternative piuttosto che best practice.Esiste una guida definitiva per la creazione di cassette postali di Exchange a livello di programmazione?

C'è un modo per connettersi in remoto a un server Exchange utilizzando C# .NET o VB.NET?

In sostanza, desidero connettermi al mio Exchange Server utilizzando le credenziali dell'amministratore (fornirei, crittografato, nel programma) e creare una cassetta postale utilizzando uno scriptlet PowerShell. Questo è tutto.

Vorrei avviare l'applicazione come applicazione console e, una volta confermata la funzionalità, è possibile implementarla in un'applicazione di moduli Web o MVC.

Qualsiasi consiglio è molto apprezzato!

+2

Ho lavorato con i servizi di Exchange EWS, ma sfortunatamente è solo per i dati e la gestione delle cassette postali esistenti che non ne creano di nuove. Ho trovato questo, anche se non sapevo se sarebbe stato d'aiuto in quanto non era il mio forte. http://codingchris.com/2012/02/15/creating-exchange-2010-mailboxes-in-c/ – Chris

risposta

6

Ho dovuto affrontare un problema simile di recente, il codice riportato di seguito mi ha aiutato a eseguire la funzionalità con una connessione protetta al server di Exchange remoto.

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

Naturalmente si vuole un po 'di solito la configurazione del gruppo di appartenenza dell'utente, indennità di server di connessione remota sicura/insicura remoto e così via. L'articolo this può aiutare.

+0

Grazie, questo mi ha aiutato moltissimo. Ora sono in grado di connettermi e creare utenti da remoto tramite un'applicazione console. Pubblicherò il codice a breve. – TimeBomb006

+0

@ TimeBomb006 - felice di aiutare :) – MuhammadHani

Problemi correlati