Answers:
无法从Exchange系统管理器中执行此操作,但是可以授予自己对他们的邮箱和配置文件的完全访问权限,然后执行此操作。然后,您不必更改密码。正如Kara指出的那样,如果您启用了Outlook Web Access(OWA),则可以使用它代替配置文件。
请首先进入ADUC(Active Directory用户和计算机),展开域,找到“用户”,在右侧面板中,找到设置“外出”所需的用户。
右键单击它,在“ Exchange高级”选项卡中,单击“邮箱权限”,确认您的帐户具有读取权限和完全邮箱访问权限。然后单击确定。
之后,请打开“控制面板”,找到“邮件”图标,双击它,单击“显示配置文件”按钮,单击“添加”按钮,然后按照向导创建用户配置文件。当提示您输入用户帐户和密码时,请输入您的帐户和密码,而不是用户配置文件本身。
我的解决方案是这样的:
我创建了一个用户帐户,该帐户具有对每个邮箱的完全邮箱访问权限(您可以在服务器级别授予此权限)。
然后,我编写了一个使用这些权限运行的小程序,但是设置方式使得用户访问该程序不需要密码。这是通过使用模拟在Web服务器上运行程序来完成的。
这在VB.NET/WebForms中。
在web.config中:
<identity impersonate="true" userName="domain\username" password="password" />
然后是一个非常简单的ASP.NET页面。在aspx中,我有这个:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="SetOOF._Default" AspCompat="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<p>
Username
<asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
<asp:Button ID="btnGetUser" runat="server" Text="Select" />
</p>
<p>
<asp:Label ID="lblUserName" runat="server"></asp:Label>
</p>
<p> <asp:CheckBox ID="chkOofEnabled" runat="server" /> Out of Office on/off
</p>
</div>
<p>
<asp:TextBox ID="txtOofText" runat="server" Height="217px" Width="479px"
TextMode="MultiLine"></asp:TextBox>
</p>
<p>
<asp:Button ID="btnUpdateUser" runat="server" Text="Update User" />
</p>
</form>
</body>
</html>
在.vb文件中
Imports MAPI
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub btnGetUser_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnGetUser.Click
Dim ses As MAPI.Session
ses = New MAPI.Session
ses = CreateObject("MAPI.Session")
ses.Logon(ShowDialog:=False, NoMail:=True, ProfileInfo:="mailserver" & vbLf & txtUsername.Text)
Dim user As MAPI.AddressEntry = ses.CurrentUser
lblUserName.Text = user.Name
chkOofEnabled.Checked = ses.OutOfOffice
txtOofText.Text = ses.OutOfOfficeText
ses.Logoff()
End Sub
Protected Sub btnUpdateUser_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnUpdateUser.Click
Dim ses As New MAPI.Session
ses = CreateObject("MAPI.Session")
ses.Logon(ShowDialog:=False, NoMail:=True, ProfileInfo:="mailserver" & vbLf & txtUsername.Text)
ses.OutOfOffice = chkOofEnabled.Checked
ses.OutOfOfficeText = txtOofText.Text
ses.Logoff()
End Sub
End Class
请注意,您将需要在运行此服务器的Web服务器上安装Outlook,因为它使用MAPI连接到邮件服务器(您还需要在项目级别引用Microsoft CDO库,即MAPI)。只要您是一个Exchange组织,那么哪个邮件服务器都没关系-Exchange会将应用重定向到正确的服务器。
您可以使用web.config的部分将对应用程序的访问限制为服务台和系统管理员,这样普通用户就无法自己访问该应用程序。
您没有说您使用的是哪个版本的Exchange,但如果您安装EWS托管API ,则看起来可以通过Exchange 2010和Exchange 2007中的Powershell脚本设置消息。目前看来,这只是作为候选版本提供。
您可以为此使用Exchange PowerShell Set-MailboxAutoReplyConfiguration:
启用
Set-MailboxAutoReplyConfiguration -Identity tony -AutoReplyState Enabled -InternalMessage "Internal auto-reply message."
-ExternalMessage "External auto-reply message."
预定的
Set-MailboxAutoReplyConfiguration -Identity tony -AutoReplyState Scheduled -StartTime "7/10/2015 08:00:00" -EndTime "7/15/2015 17:00:00" -InternalMessage "Internal auto-reply message"
禁用
Set-MailboxAutoReplyConfiguration -Identity tony -AutoReplyState Disabled