У меня есть среда Exchange 2010. Для Outlook (настольная версия) у нас есть сценарий настройки в групповой политике для распространения стандартизированных подписей по всей организации. Я хочу сделать то же самое для OWA, но
Если бы я использовал Set-MailboxMessageConfiguration, можно ли было извлечь данные из Active Directory для создания подписей с учетом идентификатора пользователя Exchange? Я знаю, что таким образом мне придется запускать скрипт по расписанию, чтобы учитывать любые обновления и новых пользователей.
Мне постепенно удалось написать скрипт, который делает то, что мне нужно, и я поделюсь очищенной версией. Для каждого почтового ящика заставьте назначить свои подписи - как текстовую, так и HTML-версию. В зависимости от типа телефона, который есть у пользователя, он делает соответствующие сигнатуры.
Import-Module ActiveDirectory
. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1' Connect-ExchangeServer -auto
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
$userList = get-mailbox -resultsize unlimited | where-object {$_.RecipientTypeDetails -eq "UserMailbox"} | sort-object alias
foreach($user in $userList)
{
$ui = get-aduser $user.alias -properties *
$telLine = ""
$telLineHTML = ""
$telLineText = ""
if($ui.telephoneNumber -ne $null -and $ui.Mobile -ne $null -and $ui.Fax -ne $null){
$telLine = "Tel: " + $ui.telephoneNumber + " | Cell: " + $ui.Mobile + " | Fax: " + $ui.Fax
}
elseif($ui.telephoneNumber -ne $null -and $ui.Mobile -ne $null){
$telLine = "Tel: " + $ui.telephoneNumber + " | Cell: " + $ui.Mobile
}
elseif($ui.telephoneNumber -ne $null -and $ui.Fax -ne $null){
$telLine = "Tel: " + $ui.telephoneNumber + " | Fax: " + $ui.Fax
}
elseif($ui.telephoneNumber -ne $null){
$telLine = "Tel: " + $ui.telephoneNumber
}
elseif($ui.Mobile -ne $null){
$telLine = "Cell: " + $ui.Mobile
}
if($telLine -ne "")
{
$telLineHTML = $telLine + "<br>"
$telLineText = $telLine + "`n"
}
$t = $ui.DisplayName + " | " + $ui.Title + "`n" + $ui.Company + "`n" + $ui.StreetAddress + ", " + $ui.City + ", " + $ui.State + ", " + $ui.PostalCode + "`n" + $telLineText + "Email: " + $ui.EmailAddress.ToLower()
$h = "<div style='font-family:Tahoma; font-size:13px'><span color='#041F3C' style='font-family:Calibri; font-size:10pt'><strong>" + $ui.DisplayName + " | </strong></span><span color='#F37021' style='font-family:Calibri; font-size:10pt'><strong><font color='#f37021'>" + $ui.Title + "</font></strong></span><br><span style='font-family:Calibri; font-size:10pt'>" + $ui.Company + "<br>" + $ui.StreetAddress + ", " + $ui.City + ", " + $ui.State + ", " + $ui.PostalCode + "<br>" + $telLineHTML + "Email: <a href='mailto:" + $ui.EmailAddress.ToLower() + "'>" + $ui.EmailAddress.ToLower() + "</a></span></div>"
Set-MailboxMessageConfiguration $ui.SamAccountName -SignatureText $t -signatureHTML $h
#get-MailboxMessageConfiguration $ui.SamAccountName | select SignatureText, SignatureHTML | format-list
}