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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - подпись для outlook

Ответить
Настройки темы
PowerShell - подпись для outlook

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


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

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


Добрый день
возник вопрос по подписи в 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

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - подпись для outlook

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход