![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - подпись для outlook |
|
PowerShell - подпись для outlook
|
Новый участник Сообщения: 4 |
Добрый день
возник вопрос по подписи в outlook через GPO При добавление подписи в Outlook по этому скрипту в поле сайт выводит www. site. ru, а гиперссылка с указанием домена name/www.site .ru. в какой строчке кода идет при тяжка домена в имя сайта #Custom variables $CompanyName = ‘name' $SigSource = "\\dc-server.name.local\scripts$\$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 $ForceSignatureReplyForward = '1' #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() $ADDisplayName = $ADUser.DisplayName $ADEmailAddress = $ADUser.mail $ADTitle = $ADUser.title $ADTelePhoneNumber = $ADUser.TelephoneNumber $ADMobileNumber = $ADUser.Mobile $ADStreetAddress = $ADUser.StreetAddress $ADwWWHomePage = $ADUser.wWWHomePage #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 $DisplayNameREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').DisplayName $EmailAddressREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').EmailAddress $TitleREG = (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').ADTitle $MobileNumberREG= (Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').ADMobileNumber $StreetAddressREG=(Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').ADStreetAddress $wWWHomePageREG=(Get-ItemProperty $CompanyRegPath'\Outlook Signature Settings').wWWHomePage $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 $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 $StreetAddressREG -eq $ADStreetAddress -and $wWWHomePageREG -eq $ADwWWHomePage -And $MobileNumberREG -eq $ADMobileNumber -And $TelephoneNumberREG -eq $ADTelePhoneNumber -And $DisplayNameREG -eq $ADDisplayName -And $EmailAddressREG -eq $ADEmailAddress -And $ADTitleREG -eq $ADTitle -and $FileExists -eq $true) {} else { #Copy signature templates from domain to local Signature-folder #Copy-Item "$SignatureSourceFiles\* $LocalSignaturePath -Force -Recurse Copy-Item $SignatureSourceFiles $LocalSignaturePath -Force -Recurse $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+'\'+$CompanyName+'.docx' $MSWord.Documents.Open($fullPath) #www $FindText = "wWWHomePage" $ReplaceText = $ADwWWHomePage.ToString() $MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord, $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap, $Format, $ReplaceText, $ReplaceAll ) #Адрес $FindText = "StreetAddress" $ReplaceText = $ADStreetAddress.ToString() $MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord, $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap, $Format, $ReplaceText, $ReplaceAll ) #Мобила $FindText = "MobileNumber" $ReplaceText = $ADMobileNumber.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 = "DisplayName" $ReplaceText = $ADDisplayName.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 ) #Имейл $MSWord.Selection.Find.Execute("Email") $MSWord.ActiveDocument.Hyperlinks.Add($MSWord.Selection.Range, "mailto:"+$ADEmailAddress.ToString(), $missing, $missing, $ADEmailAddress.ToString()) $MSWord.Selection.Find.Execute($ADwWWHomePage.ToString()) $MSWord.ActiveDocument.Hyperlinks.Add($MSWord.Selection.Range, $ADwWWHomePage.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 $ADMobileNumber} if ($TelephoneNumberREG -eq $ADTelePhoneNumber){} else {Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name TelephoneNumber -Value $ADMobileNumber} #Проверить актуальность мобильного if ($ADMobileNumberREG -eq $ADMobileNumber){} else {Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name TelephoneNumber -Value $ADMobileNumber} if ($ADMobileNumberREG -eq $ADMobileNumber){} else {Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name TelephoneNumber -Value $ADMobileNumber} #проверить актуальность ФИО if ($DisplayNameREG -eq $ADDisplayName){} else {Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name DisplayName -Value $ADDisplayName} if ($DisplayNameREG -eq $ADDisplayName){} else {Set-ItemProperty $CompanyRegPath'\Outlook Signature Settings' -name DisplayName -Value $ADDisplayName} #проверить актуальность 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} |
|
Отправлено: 09:54, 26-10-2020 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Подпись outlook для всех учетных записей пользователй | kupaspb | Скриптовые языки администрирования Windows | 0 | 28-03-2019 13:53 | |
2013 - Запретить изменять подпись Outlook 2013 через GPO | polosaty | Microsoft Office (Word, Excel, Outlook и т.д.) | 1 | 23-11-2017 15:35 | |
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 |
|