Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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?

share|improve this question

4 Answers 4

up vote 11 down vote accepted

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.

--http://social.technet.microsoft.com/Forums/en-US/...

share|improve this answer
    
+1 was just typing that. That is exactly how I do it –  Zypher Oct 20 '09 at 14:31
    
+1, and don't forget to remove full access from yourself when done! –  Darth Satan Oct 20 '09 at 14:47
6  
Easier/neater than adding their profile to your Outlook client - you can set the OOO message(s) in OWA. –  Kara Marfia Oct 20 '09 at 15:08
    
Props to doing it via OWA. –  squillman Oct 20 '09 at 15:25
    
Yowsa. That's the one. –  Darth Satan Oct 20 '09 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">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <p>
        Username
        <asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
        &nbsp;<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>

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
        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

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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