On occasion, a member of our team calls in sick and is either unwilling, or unable, to set their Out of Office message in Exchange.

What we've done in the past is just reset that user's password, give it to their manager, and have the manager set the Out of Office message. At other times, managers have kept spreadsheets containing users' passwords (without IT's knowledge!) so that they don't have to involve us at all.

We're thinking there has to be a better way...and that we can't possibly be the first organization to have this problem.

What are some ways you guys have solved this problem?

7 Answers 7


There is no way to do it from the Exchange system Manager, but you can give yourself FULL access to their mailbox, and the profile, and do it that way. Then you don't have to change the password. As Kara pointed out, instead of the profile, if you have outlook web access enabled (OWA), you can use that.

Please first go into ADUC (Active Directory Users and Computers), expand the domain, locate the Users, in the right panel, find the user that you need to set the Out Of Office.

Right click it, in the Exchange Advanced tab, click Mailbox Rights, confirm your account has the rights for read permissions and full mailbox access. Then click OK.

After that, please open Control Panel, locate Mail icon, double click it, click Show Profiles button, click Add button, then follow the wizard to create the user profile. When you are prompted to input the user account and password, please input your account and password instead of the user profile itself.


  • +1 was just typing that. That is exactly how I do it
    – Zypher
    Oct 20, 2009 at 14:31
  • +1, and don't forget to remove full access from yourself when done! Oct 20, 2009 at 14:47
  • 6
    Easier/neater than adding their profile to your Outlook client - you can set the OOO message(s) in OWA. Oct 20, 2009 at 15:08
  • Props to doing it via OWA.
    – squillman
    Oct 20, 2009 at 15:25
  • Yowsa. That's the one. Oct 20, 2009 at 17:40

My solution is this:

I created a user account that has full mailbox access to every mailbox (you can grant this at the level of the server).

I then wrote a little program that runs with these permissions, but set up in such a way that the user accessing the program does not need the password. This is done by running the program on a web server using impersonation.

This is in VB.NET / WebForms.

In web.config:

<identity impersonate="true" userName="domain\username" password="password" />

Then there is a really simple ASP.NET page. In the aspx, I have this:

<%@ 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">
    <form id="form1" runat="server">
        <asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
        &nbsp;<asp:Button ID="btnGetUser" runat="server" Text="Select" />
            <asp:Label ID="lblUserName" runat="server"></asp:Label>
<p>        <asp:CheckBox ID="chkOofEnabled" runat="server" /> Out of Office on/off

        <asp:TextBox ID="txtOofText" runat="server" Height="217px" Width="479px" 
        <asp:Button ID="btnUpdateUser" runat="server" Text="Update User" />

and in the .vb file, I have

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
    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
    End Sub
End Class

Note that you will need to have Outlook installed on the web server you run this on, as it uses MAPI to connect to the mailserver (you also need a reference at the project level to Microsoft CDO Library, which is MAPI). As long as you are all one Exchange Organisation, it doesn't matter which mailserver - Exchange will redirect the app to the right server.

You can use the section of your web.config to restrict access to the app to your helpdesk and sysadmins so ordinary users can't access the application themselves.


You can use Exchange PowerShell Set-MailboxAutoReplyConfiguration for this:

To Enable

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"

To Disable

Set-MailboxAutoReplyConfiguration -Identity tony -AutoReplyState Disabled

You didn't say what version of Exchange you had, but it looks like it will be possible to set the message via a powershell script in Exchange 2010 and Exchange 2007 if you install EWS Managed API. Right now it appears this is only available as a release candidate though.


If you log into your Exchange management Console as the Domain Admin or Exchange Admin - and then expand your exchange Server, then Select 'Toolbox'. Then double click in Message tracking to open the web console and log in as Domain Admin/Exchange Admin. At the top select 'Manage My organisation' then select 'Another User'. Search for, and select, the user. When the user's properties sheet opens on the right there is a 'Tell People You're on Vacation'. You can set the Out of Office there. without giving anyone anyone else's details or knowing anyone else's passwords.


You just described the SOP where I work, with the exception that is typically just done for the owner of the company, and I know his pswd so it doesn't get changed.

My twist on the problem is being asked to turn the Out Of Office back OFF when he returns.

I agree there has to be a better way.


You can set out of office using Exchange. I have just done this for one of our users. I did NOT have to give myself access to his mailbox, nor did I have to set up his account or use Outlook at all.

As desshiels correctly says, this can easily be done:

  1. Click Toolbox in the Exchange
  2. Click Message Tracking and log into the OWA console
  3. Click Manage My Organisation
  4. Select 'another user'
  5. Type the username e.g. John Smith
  6. Click "Tell People You're on Vacation" and you will have a page for automatic replies
  7. Configure this and save
  8. Done

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.