Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Exchange Server » V. 2010 - [решено] Единая подпись Outlook, AD, Powershell, word.application

Ответить
Настройки темы
V. 2010 - [решено] Единая подпись Outlook, AD, Powershell, word.application

Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: dopk
Дата: 22-05-2015
Вложения
Тип файла: docx company.docx
(18.8 Kb, 19 просмотров)
Тип файла: 7z Set-OutlookSignature.7z
(3.6 Kb, 15 просмотров)
Сделал подпись по инструкции с http://habrahabr.ru/sandbox/84137/.
Суть инструкции: сделать сценарий Powershell (вложение Set-OutlookSignature.7z), к нему файл с образцом подписи (вложение company.docx), поставить сценарий в ГП в качестве логон скрипта.
Суть скрипта PowerShell - он получает из AD реквизиты, заменят в образце заданный текст на реквизиты из AD и подставляет в Outlook полученный файл в качестве подписи по умолчанию.

Но в моем случае поступил запрос в подпись вставить логин скайп, для тех, кто этим скайпом пользуется.
Скрытый текст

Логин скайп забил в поле IPPhone в AD. вот мы его получаем:
Код: Выделить весь код
$ADIPPhone = $ADUser.ipPhone
вот мы его заменяем в файле:
Код: Выделить весь код
"$FindText = "IPPhone"
$ReplaceText = $ADIPPhone.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord,    $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap,    $Format, $ReplaceText, $ReplaceAll    )"
В случае, когда полу IPPhone заполнено, всё замечательно. А вот когда пустое, кажется, получится строка вида: Skype: {пустота}.
Сейчас для решения этой задачи сделал группы в AD "GP_Подпись простая" и "GP_Подпись со скайпом", и две групповые политики, выполняющиеся для этих групп, в одной в файле-образце есть строка "Skipe: IPPhone", в другом нет. Задача решена, но не красиво, тем более, что от меня хотят включение строки icq для тех, кто им пользуется, а это значит еще и третью политику городить.
Я бы хотел, чтобы Групповая политика была одна, а скрипт удалял в случае ненужности строку.

Как логический вариант решения вижу поставить в образце вместо строки:
"Skype{табуляция}{табуляция}IPPhone"
просто строку
"IPPhone"

Искать текст: {символ нового абзаца}IPPhone
Код: Выделить весь код
"$FindText = "{символ нового абзаца}IPPhone"
и заменять на
если $ADIPPhone пустое - на пустоту
в ином случае на:
Код: Выделить весь код
$ReplaceText = "{символ нового абзаца}Skype:{символ табуляция}{символ табуляция}"+$ADIPPhone
Но в программировании и написании скриптов я слабоват, вот и не знаю как правильно задачу выполнить. В придуманном мной варианте, не знаю чем заменить символ нового абзаца и табуляции, и вообще будет ли оно работать в таком виде.


Быть может найдется, кто может подсказать как это реализовать.

Отправлено: 18:23, 21-05-2015

 

Пользователь


Сообщения: 112
Благодарности: 20

Профиль | Отправить PM | Цитировать


Например так

Отправлено: 06:34, 22-05-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: docx company.docx
(18.8 Kb, 26 просмотров)

Цитата:
Например так
при исполнении скрипт на третьей строке ошибку выдает.
по тексту не нашел нигде выравнивания текста, вставок табуляции или чего-либо подобного. А также в данном примере все атрибуты являются обязательными, что совершенно не помогает выполнению моей задачи
скрипт из статьи позволяет сделать шаблон и подпись будет ровно того форматирования, что и в шаблоне, с сохранением отступов, шрифтов и проч. Но как убрать строчку из шаблона в случае ненужности не знаю. Если не найду, оставлю тогда так с несколькими групповыми политиками.

Отправлено: 10:41, 22-05-2015 | #3


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


код скрипта
Код: Выделить весь код
#Custom variables
$CompanyName = ‘company'
$SigSource = "\\Domain.local\SysVol\Domain.local\Policies\{7A1CC634-AB6E-4254-B254-92480ADDAC89}\User\Scripts\Logon\$CompanyName"
$ForceSignatureNew = '1' #When the signature are forced the signature are enforced as default signature for new messages the next time the script runs. 0 = no force, 1 = force (1 -установить по умолчанию, 0 - не устанавливать
$ForceSignatureReplyForward = '0' #When the signature are forced the signature are enforced as default signature for reply/forward messages the next time the script runs. 0 = no force, 1 = force

#Environment variables
$AppData=(Get-Item env:appdata).value
$SigPath = ‘\Microsoft\Signatures'
$LocalSignaturePath = $AppData+$SigPath
$LocalSignatureFile = $LocalSignaturePath+'\'+$CompanyName+'.files'
$RemoteSignaturePathFull = $SigSource+'\'+$CompanyName+'.docx'

#Get Active Directory information for current user
$UserName = $env:username
$Filter = "(&(objectCategory=User)(samAccountName=$UserName))"
$Searcher = New-Object System.DirectoryServices.DirectorySearcher
$Searcher.Filter = $Filter
$ADUserPath = $Searcher.FindOne()
$ADUser = $ADUserPath.GetDirectoryEntry()

$ADCName = $ADUser.cn
$ADName = $ADUser.givenName
$ADSurname = $ADUser.sn
$ADEmailAddress = $ADUser.mail
$ADTitle = $ADUser.title
$ADTelePhoneNumber = $ADUser.TelephoneNumber
$ADMobilePhoneNumber = $ADUser.mobile
$ADFaxNumber = $ADUser.facsimileTelephoneNumber
$ADCompany = $ADUser.company
$ADWWW = $ADUser.wWWHomePage
$ADDepartment = $ADUser.department
$ADIPPhone = $ADUser.ipPhone


#Setting registry information for the current user
$CompanyRegPath = "HKCU:\Software\"+$CompanyName

if (Test-Path $CompanyRegPath)
{}
else
{New-Item -path "HKCU:\Software" -name $CompanyName}

if (Test-Path $CompanyRegPath'\Outlook Signature Settings')
{}
else
{New-Item -path $CompanyRegPath -name "Outlook Signature Settings"}

$SigVersion = (gci $RemoteSignaturePathFull).LastWriteTime #When was the last time the signature was written
$ForcedSignatureNew = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').ForcedSignatureNew
$ForcedSignatureReplyForward = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').ForcedSignatureReplyForward
$SignatureVersion = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').SignatureVersion
Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name SignatureSourceFiles -Value $SigSource
#присваиваем переменные взяв значения из реестра
$TelephoneNumberREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').TelephoneNumber
$NameREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').Name
$SurnameREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').Surname
$EmailAddressREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').EmailAddress
$ADTitleREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').ADTitle
$ADMobilePhoneNumberREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').MobilePhone
$ADCompanyREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').Company
$ADwwwREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').WWW
$ADFaxNumberREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').Fax
$ADDepartmentREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').Department
$ADCNameREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').CName
$ADIPPhoneREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').IPPhone

$SignatureSourceFiles = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').SignatureSourceFiles

#Forcing signature for new messages if enabled
if ($ForcedSignatureNew -eq '1')
{
#Set company signature as default for New messages
echo >> 1
$MSWord = New-Object -com word.application
$EmailOptions = $MSWord.EmailOptions
$EmailSignature = $EmailOptions.EmailSignature
$EmailSignatureEntries = $EmailSignature.EmailSignatureEntries
$EmailSignature.NewMessageSignature = $CompanyName
$MSWord.Quit()
}

#Forcing signature for reply/forward messages if enabled
if ($ForcedSignatureReplyForward -eq '1')
{
#Set company signature as default for Reply/Forward messages
$MSWord = New-Object -com word.application
$EmailOptions = $MSWord.EmailOptions
$EmailSignature = $EmailOptions.EmailSignature
$EmailSignatureEntries = $EmailSignature.EmailSignatureEntries
$EmailSignature.ReplyMessageSignature = $CompanyName
$MSWord.Quit()
}

#Copying signature sourcefiles and creating signature if signature-version are different from local version
$FileExists =  Test-Path "$LocalSignatureFile"
if ($SignatureVersion -eq $SigVersion -And $ADCNameREG -eq $ADCName -And $ADMobilePhoneNumberREG -eq $ADMobilePhoneNumber -And $ADCompanyREG -eq $ADCompany -and $ADwwwREG -eq $ADWWW -And $ADFaxNumberREG -eq $ADFaxNumber -And $ADDepartmentREG -eq $ADDepartment -And $TelephoneNumberREG -eq $ADTelePhoneNumber -And $NameREG -eq $ADName -And $SurnameREG -eq $ADSurname -And $EmailAddressREG -eq $ADEmailAddress -And $ADIPPhoneREG -eq $ADIPPhone -And $ADTitleREG -eq $ADTitle -and $FileExists -eq $true) {}
else
{
#Copy signature templates from domain to local Signature-folder
Copy-Item "$SignatureSourceFiles\*" $LocalSignaturePath -Recurse -Force

$ReplaceAll = 2
$FindContinue = 1
$MatchCase = $False
$MatchWholeWord = $True
$MatchWildcards = $False
$MatchSoundsLike = $False
$MatchAllWordForms = $False
$Forward = $True
$Wrap = $FindContinue
$Format = $False

#Insert variables from Active Directory to rtf signature-file
$MSWord = New-Object -com word.application
$fullPath = $LocalSignaturePath+'\'+$CompanyName+'.docx'
$MSWord.Documents.Open($fullPath)

$FindText = "CName"
$ReplaceText = $ADCName.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord,    $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap,    $Format, $ReplaceText, $ReplaceAll    )

$FindText = "FaxNumber"
$ReplaceText = $ADFaxNumber.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord,    $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap,    $Format, $ReplaceText, $ReplaceAll    )

$FindText = "TelephoneNumber"
$ReplaceText = $ADTelephoneNumber.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord,    $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap,    $Format, $ReplaceText, $ReplaceAll    )

$FindText = "MobPhone"
$ReplaceText = $ADMobilePhoneNumber.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord,    $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap,    $Format, $ReplaceText, $ReplaceAll    )

$FindText = "Department"
$ReplaceText = $ADDepartment.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord,    $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap,    $Format, $ReplaceText, $ReplaceAll    )

$FindText = "Name"
$ReplaceText = $ADName.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord,    $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap,    $Format, $ReplaceText, $ReplaceAll    )

$FindText = "Surname"
$ReplaceText = $ADSurname.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord,    $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap,    $Format, $ReplaceText, $ReplaceAll    )

$FindText = "Companyname"
$ReplaceText = $ADCompany.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord,    $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap,    $Format, $ReplaceText, $ReplaceAll    )

$FindText = "Title"
$ReplaceText = $ADTitle.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord,    $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap,    $Format, $ReplaceText, $ReplaceAll    )

$FindText = "IPPhone"
$ReplaceText = $ADIPPhone.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord,    $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap,    $Format, $ReplaceText, $ReplaceAll    )


$MSWord.Selection.Find.Execute("Email")
$MSWord.ActiveDocument.Hyperlinks.Add($MSWord.Selection.Range, "mailto:"+$ADEmailAddress.ToString(), $missing, $missing, $ADEmailAddress.ToString())

$MSWord.Selection.Find.Execute("site")
$MSWord.ActiveDocument.Hyperlinks.Add($MSWord.Selection.Range, $ADWWW.ToString(), $missing, $missing, $ADWWW.ToString())

$MSWord.ActiveDocument.Save()
$saveFormat = [Enum]::Parse([Microsoft.Office.Interop.Word.WdSaveFormat], "wdFormatHTML");
[ref]$BrowserLevel = "microsoft.office.interop.word.WdBrowserLevel" -as [type]

$MSWord.ActiveDocument.WebOptions.OrganizeInFolder = $true
$MSWord.ActiveDocument.WebOptions.UseLongFileNames = $true
$MSWord.ActiveDocument.WebOptions.BrowserLevel = $BrowserLevel::wdBrowserLevelMicrosoftInternetExplorer6
$path = $LocalSignaturePath+'\'+$CompanyName+".htm"
$MSWord.ActiveDocument.saveas([ref]$path, [ref]$saveFormat)

$saveFormat = [Enum]::Parse([Microsoft.Office.Interop.Word.WdSaveFormat], "wdFormatRTF");
$path = $LocalSignaturePath+'\'+$CompanyName+".rtf"
$MSWord.ActiveDocument.SaveAs([ref] $path, [ref]$saveFormat)

$saveFormat = [Enum]::Parse([Microsoft.Office.Interop.Word.WdSaveFormat], "wdFormatText");
$path = $LocalSignaturePath+'\'+$CompanyName+".rtf"
$MSWord.ActiveDocument.SaveAs([ref] $path, [ref]$saveFormat)

$path = $LocalSignaturePath+'\'+$CompanyName+".txt"
$MSWord.ActiveDocument.SaveAs([ref] $path, [ref]$SaveFormat)    #::wdFormatText)
$MSWord.ActiveDocument.Close()

$MSWord.Quit()

}

#Stamp registry-values for Outlook Signature Settings if they doesn`t match the initial script variables. Note that these will apply after the second script run when changes are made in the "Custom variables"-section.
if ($ForcedSignatureNew -eq $ForceSignatureNew){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name ForcedSignatureNew -Value $ForceSignatureNew}

if ($ForcedSignatureReplyForward -eq $ForceSignatureReplyForward){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name ForcedSignatureReplyForward -Value $ForceSignatureReplyForward}


if ($SignatureVersion -eq $SigVersion){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name SignatureVersion -Value $SigVersion}

#проверить актуальность тел. номера
if ($TelephoneNumberREG -eq $ADTelePhoneNumber){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name TelephoneNumber -Value $ADTelePhoneNumber}
if ($TelephoneNumberREG -eq $ADTelePhoneNumber){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name TelephoneNumber -Value $ADTelePhoneNumber}

#проверить актуальность ФИО
if ($ADСNameREG -eq $ADСName){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name CName -Value $ADCName}
if ($ADCNameREG -eq $ADCName){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name CName -Value $ADCName}

#проверить актуальность Имени
if ($NameREG -eq $ADName){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name Name -Value $ADName}
if ($NameREG -eq $ADName){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name Name -Value $ADName}

#проверить актуальность e-mail
if ($EmailAddressREG -eq $ADEmailAddress){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name EmailAddress -Value $ADEmailAddress}
if ($EmailAddressREG -eq $ADEmailAddress){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name EmailAddress -Value $ADEmailAddress}

#проверить актуальность должности
if ($ADTitleREG -eq $ADTitle){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name ADTitle -Value $ADTitle}
if ($ADTitleREG -eq $ADTitle){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name ADTitle -Value $ADTitle}

#проверить актуальность мобильного
if ($ADMobilePhoneNumberREG -eq $ADMobilePhoneNumber){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name MobilePhone -Value $ADMobilePhoneNumber}
if ($ADMobilePhoneNumberREG -eq $ADMobilePhoneNumber){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name MobilePhone -Value $ADMobilePhoneNumber}

#проверить актуальность компании
if ($ADCompanyREG -eq $ADCompany){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name Company -Value $ADCompany}
if ($ADCompanyREG -eq $ADCompany){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name Company -Value $ADCompany}

#проверить актуальность www
if ($ADwwwREG -eq $ADWWW){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name WWW -Value $ADWWW}
if ($ADwwwREG -eq $ADWWW){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name WWW -Value $ADWWW}


#проверить актуальность skype
if ($ADIPPhoneREG -eq $ADIPPhone){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name IPPhone -Value $ADIPPhone}
if ($ADIPPhoneREG -eq $ADIPPhone){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name IPPhone -Value $ADIPPhone}

#проверить актуальность факса
if ($ADFaxNumberREG -eq $ADFaxNumber){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name Fax -Value $ADFaxNumber}
if ($ADFaxNumberREG -eq $ADFaxNumber){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name Fax -Value $ADFaxNumber}

#проверить актуальность отдела
if ($ADDepartmentREG -eq $ADDepartment){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name Department -Value $ADDepartment}
if ($ADDepartmentREG -eq $ADDepartment){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name Department -Value $ADDepartment}

#проверить актуальность фамлиии
if ($SurnameREG -eq $ADSurname){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name Surname -Value $ADSurname}
if ($SurnameREG -eq $ADSurname){}
else
{Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name Surname -Value $ADSurname}

Отправлено: 10:47, 22-05-2015 | #4


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


подумал,другой вариант решения, может сделать три файла шаблона, из скрипта проверять заполнен ли реквизит у пользователя и в соответствии выбирать шаблон, видимо так и сделаю. Кажется так будет красиво, во-первых групповая политика будет одна и скрипт один. И сомнительное для меня место "удаление ненужного текста" обойду.
Сейчас времени нет, в свободное время доведу скрипт до ума.

Отправлено: 15:16, 25-05-2015 | #5


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


Сделал, как написал.
Если кого заинтересует, скрипт выложу.
Три шаблона, выбирается шаблон в зависимости от наличия/отсутсвия skype, icq.

Отправлено: 18:32, 25-05-2015 | #6


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: 7z SetOutlookSignature.7z
(99.3 Kb, 98 просмотров)

ну вот готов скриптец,
как тут тему отмечать решенной?
Спасибо Всем за помощь.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:03, 25-05-2015 | #7


Пользователь


Сообщения: 85
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата dopk:
ну вот готов скриптец, »
Спасибо, очень полезно!

Отправлено: 16:36, 28-05-2015 | #8


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


как шутка самосмейка
сам вопрос спросил, сам ответил. Но это помогает для мыслительного процесса.

Отправлено: 18:49, 28-05-2015 | #9



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Exchange Server » V. 2010 - [решено] Единая подпись Outlook, AD, Powershell, word.application

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Подпись с .jpeg в outlook pogo Скриптовые языки администрирования Windows 3 19-11-2014 11:13
VBS/WSH/JS - [решено] Картинка-подпись генерируемая vbs для Outlook Black_Sun Скриптовые языки администрирования Windows 12 28-08-2014 15:42
2010 - Убрать подпись в Outlook Dlovar Microsoft Office (Word, Excel, Outlook и т.д.) 4 31-05-2013 10:43
PowerShell - [решено] PowerShell AD значение поля forsem Скриптовые языки администрирования Windows 4 12-12-2012 10:26
Прочие - Ошибка в Word 2010 Microsoft Visual Basic for Application akalibr Microsoft Office (Word, Excel, Outlook и т.д.) 3 06-11-2011 21:53




 
Переход