【发布时间】:2012-04-11 22:43:29
【问题描述】:
我正在尝试用 C# 创建一个 Exchange 邮箱。以下代码不会产生错误,但它似乎也没有像我预期的那样创建邮箱:
private void buttonCreateUser_Click(object sender, EventArgs e)
{
Boolean Success = CreateUser(textBoxFirstName.Text, textBoxLastName.Text,
textBoxAlias.Text, textBoxPassword.Text,
comboBoxDomain.SelectedItem.ToString(),
comboBoxOrganizationalUnit.SelectedItem.ToString());
if (Success)
{
labelStatus.Text = "User Created";
}
else
{
labelStatus.Text = "There Is Some Error";
}
}
public 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;
RunspaceConfiguration rsConfig = RunspaceConfiguration.Create();
SecureString spassword = new SecureString();
spassword.Clear();
foreach (char c in PassWord)
{
spassword.AppendChar(c);
}
PSSnapInException snapInException = null;
PSSnapInInfo info = rsConfig.AddPSSnapIn(
"Microsoft.Exchange.Management.PowerShell.E2010", out snapInException);
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();
myRunSpace.Dispose();
success = true;
return success;
}
我没有收到错误,所以我不知道自己做错了什么。
更新
我正在为此使用 Web 服务。如果我在 Windows 应用程序上运行相同的代码,它可以工作,但不能与 WebService 一起使用?我应该在 Exchange Server 中进行任何更改吗?虽然我可以使用 Get-MailBox 获取 MailBox 的信息,但 New-MailBox 没有创建用户。
【问题讨论】:
-
您正在构建的 POSH 命令是否符合您的预期?
-
@M.Babcock 用户未添加到邮箱中
-
在尝试使用使问题复杂化的 API 动态构建之前,手动计算出 POSH 命令的详细信息。
-
我用 POSH 命令尝试了这个,没有任何问题,用户被添加但不是以编程方式
-
你应该传入一个安全的字符串。从普通字符串构建安全字符串没有什么意义(这就是为什么没有构造函数来做到这一点)
标签: c# powershell exchange-server-2010