1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| public static string CreateMail(
string username_,
string firstname_,
string lastname_,
string pwd_,
string adminUsrName_,
string adminPwd_,
string domain_)
{
string liveId = firstname_ + "." + lastname_ + domain_;
char[] passwordChars = adminPwd_.ToCharArray();
SecureString password = new SecureString();
foreach (char c in passwordChars)
password.AppendChar(c);
PSCredential credential = new PSCredential(adminUsrName_, password);
string liveIdconnectionUri = "http://exchange.Domain.local/Powershell?serializationLevel=Full";
string live = "https://ps.outlook.com/powershell/";
Runspace runspace;
try
{
WSManConnectionInfo connectionInfo = new WSManConnectionInfo((new Uri(live)), "http://schemas.microsoft.com/powershell/Microsoft.Exchange",
credential);
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;
runspace = RunspaceFactory.CreateRunspace(connectionInfo);
runspace.Open();
}
catch (PSRemotingTransportRedirectException ex)
{
return "ERROR : " + ex.Message;
}
PowerShell powershell = PowerShell.Create();
powershell.Runspace = runspace;
ICollection<PSObject> results;
StringBuilder stringBuilder = new StringBuilder();
PSCommand cmdPwd = new PSCommand();
cmdPwd.AddCommand("Set-Variable");
cmdPwd.AddParameter("Name", "password");
cmdPwd.AddParameter("Value", userPassword);
powershell.Commands = cmdPwd;
results = powershell.Invoke();
stringBuilder.AppendLine("SET-VARIABLE");
if (results.Count != 0)
{
foreach (PSObject obj in results)
stringBuilder.AppendLine(obj.ToString());
}
// Command to create the mail-box
string display = firstname_ + " " + lastname_;
PSCommand cmdSession = new PSCommand();
cmdSession.AddCommand("New-Mailbox");
cmdSession.AddParameter("WindowsLiveID", liveId);
cmdSession.AddParameter("Alias", userPassword);
cmdSession.AddParameter("Name", userPassword);
cmdSession.AddParameter("Password", "password");
cmdSession.AddParameter("FirstName", firstname_);
cmdSession.AddParameter("LastName", lastname_);
cmdSession.AddParameter("DisplayName", display);
powershell.Commands = cmdSession;
results = powershell.Invoke();
stringBuilder.AppendLine("NEW-MAILBOX");
if (results.Count != 0)
{
foreach (PSObject obj in results)
stringBuilder.AppendLine(obj.ToString());
}
return stringBuilder.ToString();
} |
Partager