18 подписчиков

Outlook: адрес вместо имени

Или так: вместо имени отображается e-mail. Или вместо ФИО отображается e-mail.

В общем, на работе вы используете Outlook для работы с почтой внутри сети. У вас есть домен с именем, например, xz.local, установлен и настроен Exchange, настроен autodiscover. При настройке Outlook-а на новом комп-е вы просто запускаете аутлук и жмете Да, Далее и так далее, в результате чего Outlook находит Excnahge, цеплятся к нему- и все готово.

После запуска аутлука вы смотрите на список ящиков, а ящик там называется, например user@xz.local и эти же некрасивые буквы мы видим в заголовке окна Outlook-а. При этом при поиске адресата мы же не вводим user@xz.local, мы просто ищем по ФИО, так что нам эти кракозябры ни к чему. Ну, что ж, давайте зайдем в Outlook-е в Учетные записи да переименуем наш user@xz.local в Иванов Иван Иванович. Зашли, потыкали во все кнопки...В общем, не мучайтесь- нет такой возможности.

Раз не можем это сделать через графический интерфейс, делаем так:

создаем файл с расширением vbs. Содержимое файла:

Dim colStores 'As Outlook.Stores
Dim oStore 'As Outlook.Store
Dim oRoot 'As Outlook.folder
Dim oldName
Dim newName 'As String

Set objSysInfo = CreateObject("ADSystemInfo")
strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)
newName = objUser.Get("displayName")
oldName = CreateObject("WScript.Network").UserName
oldName =oldName & "@xz.local"
'On Error Resume Next

Set objOutlook = CreateObject("Outlook.Application")
Set colStores = objOutlook.Session.Stores
For Each oStore In colStores
Set oRoot = oStore.GetRootFolder
If oRoot = oldName Then
oRoot.Name = newName
End If
Next

Сохраняем, запускаем, после этого перезаходим в Outlook. Ну и видим, что вместо user@xz.local у нас везде прописано ФИО пользователя.

По поводу выделенной строки. displayName - это атрибут учетной записи. Если вы в Active Directory откроете пользователя(причем его нужно не поиском найти- а просто), там есть вкладка Редактор атрибутов. Там есть много атрибутов и вместо(или вместе) displayName вы можете написать еще что-нибудь. Например, если строка будет иметь такой вид: newName = objUser.Get("displayName") & ", " & objUser.Get("lastLogon")

то выведется ФИО и через запятую- дата и время последнего входа.

The конец