Иногда член нашей группы звонит больному и либо не хочет, либо не может отправить свое сообщение об отсутствии на работе в Exchange.
В прошлом мы просто сбросили пароль этого пользователя, передали его его менеджеру и попросили его установить сообщение «Нет на работе». В других случаях менеджеры вели электронные таблицы с паролями пользователей (без ведома ИТ-специалистов!), Чтобы им вообще не приходилось нас привлекать.
Мы думаем, что должен быть лучший способ ... и что мы не можем быть первой организацией, которая столкнется с этой проблемой.
Как вы, ребята, решили эту проблему?
Невозможно сделать это из системного менеджера Exchange, но вы можете предоставить себе ПОЛНЫЙ доступ к их почтовому ящику и профилю, и сделать это таким образом. Тогда вам не нужно менять пароль. Как отметила Кара, вместо профиля, если у вас включен доступ к Outlook в Интернете (OWA), вы можете использовать его.
Пожалуйста, сначала войдите в ADUC (Active Directory Users and Computers), разверните домен, найдите Users, на правой панели найдите пользователя, которому нужно установить Out Of Office.
Щелкните его правой кнопкой мыши, на вкладке Exchange Advanced щелкните Права почтового ящика, убедитесь, что ваша учетная запись имеет права на чтение и полный доступ к почтовому ящику. Затем нажмите ОК.
После этого откройте панель управления, найдите значок «Почта», дважды щелкните его, нажмите кнопку «Показать профили», нажмите кнопку «Добавить», затем следуйте инструкциям мастера для создания профиля пользователя. Когда вам будет предложено ввести учетную запись пользователя и пароль, введите свою учетную запись и пароль вместо самого профиля пользователя.
Мое решение таково:
Я создал учетную запись пользователя, которая имеет полный доступ к каждому почтовому ящику (вы можете предоставить это на уровне сервера).
Затем я написал небольшую программу, которая работает с этими разрешениями, но настроена таким образом, что пользователю, осуществляющему доступ к программе, не нужен пароль. Это делается путем запуска программы на веб-сервере с использованием олицетворения.
Это в 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
Обратите внимание, что вам необходимо установить Outlook на веб-сервере, на котором вы его запускаете, поскольку он использует MAPI для подключения к почтовому серверу (вам также понадобится ссылка на уровне проекта на библиотеку Microsoft CDO Library, которая является MAPI). Пока вы все являетесь одной организацией Exchange, не имеет значения, какой почтовый сервер - Exchange перенаправит приложение на нужный сервер.
Вы можете использовать раздел своего web.config, чтобы ограничить доступ к приложению для вашей службы поддержки и системных администраторов, чтобы обычные пользователи не могли получить доступ к приложению сами.
Вы не сказали, какая у вас версия Exchange, но похоже, что можно будет установить сообщение через сценарий PowerShell в Exchange 2010 и Exchange 2007 при установке управляемого API EWS. Сейчас кажется, что это доступно только как релиз-кандидат.
Если вы входите в консоль управления Exchange как администратор домена или как администратор Exchange, а затем разверните свой сервер обмена, затем выберите «Панель инструментов». Затем дважды щелкните Отслеживание сообщений, чтобы открыть веб-консоль и войти в систему как администратор домена / администратор Exchange. Вверху выберите «Управление моей организацией», затем выберите «Другой пользователь». Найдите и выберите пользователя. Когда справа открывается страница свойств пользователя, появляется сообщение «Сообщите людям, что вы в отпуске». Вы можете установить «Нет на работе» там. без предоставления чьей-либо информации и без знания чужих паролей.
Вы можете использовать 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
Вы только что описали СОП, в котором я работаю, за исключением того, что обычно делается только для владельца компании, и я знаю его pswd, поэтому он не меняется.
Мое видение проблемы состоит в том, что меня просят снова выключить функцию «Нет на работе», когда он вернется.
Я согласен, что должен быть способ получше.
Вы можете выйти из офиса, используя Exchange. Я только что сделал это для одного из наших пользователей. Мне НЕ нужно было предоставлять себе доступ к его почтовому ящику, и мне вообще не нужно было настраивать его учетную запись или использовать Outlook.
Как правильно говорит Десшилс, это легко сделать: