如何使用C#以编程方式设置邮箱AcceptMessagesOnlyFrom列表

时间:2011-11-07 11:25:11

标签: c# powershell exchange-server

我正在尝试通过Powershell运行空间以编程方式将C#连接到Exchange 2007服务器,以连接到邮箱(Room mailbox / resource mailbox)的AcceptMessagesOnlyFrom列表。 代码正在执行而没有任何错误,但用户没有被添加到列表中。

这是我的代码

RunspaceConfiguration rc = RunspaceConfiguration.Create();
PSSnapInException snapEx = null;
PSSnapInInfo info = rc.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapEx);
Runspace r = RunspaceFactory.CreateRunspace(rc);
r.Open();
RunspaceInvoke ri = new RunspaceInvoke(r);

string str = "Set-Mailbox -Identity '" 
    + MeetingRoomName
    + "' -AcceptMessagesOnlyFrom ((Get-Mailbox -identity '" 
    + MeetingRoomName 
    + "').AcceptMessagesOnlyFrom + " 
    + strUser 
    + ")";

ICollection<PSObject> results = ri.Invoke(str);

有人可以查看我的代码并让我知道如何修复它以便Set-Mailbox命令成功运行,并且用户名应该添加到Exchange服务器中的MeetingRoom(邮箱)列表的AcceptMessagesOnlyFrom中。

非常感谢任何帮助

*会议室邮箱:这是专门分配给会议室的邮箱。 其相关的用户帐户将在Active Directory中禁用。

1 个答案:

答案 0 :(得分:0)

试试这个:

string str = "Set-Mailbox -Identity '" + MeetingRoomName + "' -AcceptMessagesOnlyFrom " + strUser;

应该导致以下内容传递给PowerShell执行:

Set-mailbox -identity 'MeetingRoom@domain.com' -acceptmessagesOnlyFrom a.user@domain.com

将“a.user@domain.com”添加到来自MeetingRoom@domain.com的acceptmessageonly

列表中

今天晚上,当我有权访问Exchange服务器时,我会进行测试,但这应该可行。

更新 的 经过测试,我现在可以确认about string / cmdlet成功地将用户添加到acceptmessageOnlyFrom列表中。

方面 Arcass