I want to create Mailbox in exchange server 2013 using c# .

I tried lots of codes but each one gets an error that there is no obvious solution to solve it. 

my code is 

```
public static Boolean CreateUser(string FirstName, string LastName, string Alias,string PassWord, string DomainName, string OrganizationalUnit)
    {
        string Name = FirstName + " " + LastName;
        string PrincipalName = FirstName + "." + LastName + "@" + DomainName;

        Boolean success = false;
        string consolePath = @"C:\Program Files\Microsoft\Exchange Server\V15\bin\exshell.psc1";
        PSConsoleLoadException pSConsoleLoadException = null;
        RunspaceConfiguration rsConfig = RunspaceConfiguration.Create(consolePath, out pSConsoleLoadException);
        SecureString spassword = new SecureString();
        spassword.Clear();

        foreach (char c in PassWord)
        {
            spassword.AppendChar(c);
        }

        PSSnapInException snapInException = null;
        Runspace myRunSpace = RunspaceFactory.CreateRunspace(rsConfig);
        myRunSpace.Open();
        Pipeline pipeLine = myRunSpace.CreatePipeline();

        Command myCommand = new Command("New-MailBox");
        myCommand.Parameters.Add("Name", Name);
        myCommand.Parameters.Add("Alias", Alias);
        myCommand.Parameters.Add("UserPrincipalName", PrincipalName);
        myCommand.Parameters.Add("Confirm", true);
        myCommand.Parameters.Add("SamAccountName", Alias);
        myCommand.Parameters.Add("FirstName", FirstName);
        myCommand.Parameters.Add("LastName", LastName);
        myCommand.Parameters.Add("Password", spassword);
        myCommand.Parameters.Add("ResetPasswordOnNextLogon", false);
        myCommand.Parameters.Add("OrganizationalUnit", OrganizationalUnit);
        pipeLine.Commands.Add(myCommand);
        pipeLine.Invoke();     // got an error here
        myRunSpace.Dispose();
       }

```

and call it :

```
Boolean Success = CreateUser("firstname", "lastName", "aliasName", "AAaa12345", "mydomain.com", "mydomain.com/Users");

```

which I get this error :

```
Additional information: The term 'New-MailBox' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

```

and another code that I test is:

```
string userName = "administrator";
        string password = "mypass";
        System.Security.SecureString securePassword = new System.Security.SecureString();
        foreach (char c in password)
        {
            securePassword.AppendChar(c);
        }
        PSCredential credential = new PSCredential(userName, securePassword);
        WSManConnectionInfo connectionInfo = new WSManConnectionInfo(new Uri("https://{my server IP}/POWERSHELL/Microsoft.Exchange"),
        "http://schemas.microsoft.com/powershell/Microsoft.Exchange",
        credential);

        connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;
        connectionInfo.SkipCACheck = true;
        connectionInfo.SkipCNCheck = true;
        connectionInfo.MaximumConnectionRedirectionCount = 2;

        using (Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo))
        {
            runspace.Open();
            using (PowerShell powershell = PowerShell.Create())
            {
                powershell.Runspace = runspace;
                //Create the command and add a parameter
                powershell.AddCommand("Get-Mailbox");
                powershell.AddParameter("RecipientTypeDetails", "UserMailbox");
                //Invoke the command and store the results in a PSObject collection
                Collection<PSObject> results = powershell.Invoke();
                //Iterate through the results and write the DisplayName and PrimarySMTP
                //address for each mailbox
                foreach (PSObject result in results)
                {
                    Console.WriteLine(
                        string.Format("Name: { 0}, PrimarySmtpAddress: { 1}",

                result.Properties["DisplayName"].Value.ToString(),
                result.Properties["PrimarySmtpAddress"].Value.ToString()

                ));

                }
            }
        }

```

and I get this error

```
Additional information: Connecting to remote server {Server IP Address} failed with the following error message : [ClientAccessServer=WIN-FRP2TC5SKRG,BackEndServer=,RequestId=460bc5fe-f809-4454-8472-ada97eacb9fb,TimeStamp=4/6/2016 6:23:28 AM] Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.

```

I think I gave every permission which is needed to my administrator user and firewall is off but it doesn't work yet. 

Any help or hint !!
thanks