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

C# 如何使用C以编程方式从列表中设置邮箱AcceptMessagesOnly#,c#,powershell,exchange-server,C#,Powershell,Exchange Server,我正试图在C#中通过Powershell运行空间以编程方式连接到Exchange2007服务器,以便仅从邮箱列表(房间邮箱/资源邮箱)中接收消息。 代码正在执行,没有任何错误,但是用户没有被添加到列表中 这是我的密码 RunspaceConfiguration rc = RunspaceConfiguration.Create(); PSSnapInException snapEx = null; PSSnapInInfo info = rc.AddPSSnapIn("Microsoft.Exc

我正试图在C#中通过Powershell运行空间以编程方式连接到Exchange2007服务器,以便仅从邮箱列表(房间邮箱/资源邮箱)中接收消息。 代码正在执行,没有任何错误,但是用户没有被添加到列表中

这是我的密码

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);
RunspaceConfiguration rc=RunspaceConfiguration.Create();
PSSnapInException snapEx=null;
PSSnapInInfo info=rc.AddPSSnapIn(“Microsoft.Exchange.Management.PowerShell.Admin”,out snapEx);
运行空间r=RunspaceFactory.CreateRunspace(rc);
r、 Open();
RunspaceInvoke ri=新的RunspaceInvoke(r);
string str=“设置邮箱-标识”
+会议室名称
+“'-AcceptMessagesOnlyFrom((获取邮箱-标识)”
+会议室名称
+“')。AcceptMessagesOnlyFrom+”
+斯特鲁瑟
+ ")";
ICollection results=ri.Invoke(str);
请有人查看我的代码,并告诉我如何修复它,以使Set Mailbox命令成功运行,并且用户名应该从exchange server中的会议室(邮箱)列表添加到AcceptMessagesOnly中

任何帮助都将不胜感激

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

请尝试以下操作:

string str = "Set-Mailbox -Identity '" + MeetingRoomName + "' -AcceptMessagesOnlyFrom " + strUser;
应将以下结果传递给PowerShell执行:

Set-mailbox -identity 'MeetingRoom@domain.com' -acceptmessagesOnlyFrom a.user@domain.com
加上“a”。user@domain.com“仅从邮件列表中发送到AcceptMessageOnly”MeetingRoom@domain.com

今晚我将在访问Exchange服务器时进行测试,但这应该可以工作

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

重视
Arcass

谢谢您的回复。上面的命令str=“Set Mailbox-Identity”“+MeetingRoomName+”-AcceptMessagesOnlyFrom“+strUser;将重置并将用户添加到AcceptMessagesOnlyFrom列表。我想在AcceptMessagesOnlyFrom列表中添加一个用户。我从某个站点获得了此命令“Set Mailbox-Identity'MeetingRoomName'-AcceptMessagesOnlyFrom((Get Mailbox-Identity'MeetingRoomName')。AcceptMessagesOnlyFrom+'strUser')”,它在powershell中工作正常,但在c代码中无法工作。请帮我执行这个。我理解你想做什么。今晚将有一个剧本:)我有其他解决方案,但肯定不是用powershell。我们可以为AcceptMessagesOnlyFrom使用对应的AD属性“authorig”。下面是代码public void AddDeliveryRestrictions(string userDn,string allowedUser){DirectoryEntry e=new DirectoryEntry(“LDAP://“+userDn”);e.Properties[“authorig”].AddRange(new object[]{allowedUser});e.CommitChanges();}我发现这比powershell容易