2013-04-03 10 views
5

Ich habe Anleitungen gefunden, in denen erklärt wird, wie PowerShell-Skripts auf einem Exchange Server ausgeführt werden, aber in allen Handbüchern muss die Maschine domainverbunden sein, und die meisten verwenden eher Umgehungen als Best Practices.Gibt es eine definitive Anleitung zum programmgesteuerten Erstellen von Exchange-Postfächern aus der Ferne?

Gibt es eine Möglichkeit, eine Remoteverbindung zu einem Exchange Server mit C# .NET oder VB.NET herzustellen?

Im Wesentlichen möchte ich eine Verbindung zu meinem Exchange Server mit Administratorberechtigungsnachweisen herstellen (ich würde sie verschlüsselt im Programm bereitstellen) und ein Postfach mithilfe eines PowerShell-Skriptlet erstellen. Das ist alles.

Ich möchte die Anwendung als eine Konsolenanwendung starten, und sobald ich die Funktionalität bestätige, kann ich es in eine Webformularanwendung oder MVC implementieren.

Jeder Rat wird sehr geschätzt!

+2

Ich hatte mit den Exchange-EWS-Diensten gearbeitet, aber leider nur für Daten und die Verwaltung vorhandener Postfächer, die keine neuen erstellen. Ich fand das, obwohl ich nicht sicher war, ob es helfen würde, da es nicht meine Stärke ist. http://codingchris.com/2012/02/15/creating-exchange-2010-mailboxes-in-c/ – Chris

Antwort

6

Ich hatte vor kurzem mit einem ähnlichen Problem zu tun, der folgende Code half mir, die Funktionalität mit einer sicheren Verbindung mit dem Exchange-Remote-Server durchzuführen.

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

Natürlich werden Sie einige übliche Konfiguration der Benutzergruppenmitgliedschaft, Server Geld von Remote-secure/unsicheren Remote-Verbindung und so weiter. this Artikel kann helfen.

+0

Vielen Dank, das hat mir enorm geholfen. Ich bin jetzt in der Lage, Benutzer über eine Konsolenanwendung zu verbinden und Benutzer zu erstellen. Ich werde den Code in Kürze posten. – TimeBomb006

+0

@ TimeBomb006 - froh zu helfen :) – MuhammadHani

Verwandte Themen