Assinatura automatica no Outlook via GPO utilizando dados do AD
Necessário criar um script VBS rodando via script de logon na configuração de usuário
segue script
------------------------- assinatura.vbs ------------------
' VBScript source code
' Configuracao para buscar os dados no Active Directory
' Pagina do script base: http://social.technet.microsoft.com/Forums/pt-BR/scriptadminpt/thread/a591403a-796a-4a45-872d-febe44265e34
' Nome da Consulta no forum: Script para inserir assinatura
' Referencias para Funções: http://www.pctools.com/guides/scripting/id/25/?act=reference
On Error Resume Next
Set objSysInfo = CreateObject("ADSystemInfo")
strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)
strName = objUser.FullName
strFirstName = objuser.givenName
'StrLastName = objuser.sn
strTitle = objUser.Title
srtDepartament = objUser.department
'strCompany = objUser.Company
'strStreet = objUser.StreetAddress
'strLocation = objUser.l
'strCountry = objUser.co
'strPostCode = objUser.PostalCode
strPhone = objUser.TelephoneNumber
'strFax = objUser.FacsimileTelephoneNumber
strEmail = objUser.mail
strNomeArq = "Assinatura " & strFirstName
' Caminho para buscar o logo da empresa
strLogo = "\\SRVAD\netlogon\Assinatura\Logo.png"
strBarra = "\\SRVAD\netlogon\Assinatura\Barra.png"
Set objWord = CreateObject("Word.Application")
objWord.Visible = False
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
Set objRange = objDoc.Range()
Set objEmailOptions = objWord.EmailOptions
Set objSignatureObject = objEmailOptions.EmailSignature
Set objSignatureEntries = objSignatureObject.EmailSignatureEntries
' Formatacao de fonte e paragrafo
objSelection.Font.Name = "Franklin Gothic Book"
objSelection.Paragraphs.LineSpacingRule = wdLineSpaceSingle
objselection.Paragraphs.SpaceAfter = 1
objRange.Font.Name = "Franklin Gothic Book"
objRange.Font.Size = 10
' Inicio da Assinatura
' Define uma tabela de 1x1
objDoc.Tables.Add objRange, 1, 2
Set objTable = objDoc.Tables(1)
'Logotipo Empresa
With objTable.Cell(1, 1)
With .Range.Select
objSelection.InlineShapes.AddPicture(strLogo)
objTable.Columns(1).Width = 120
objTable.Columns(2).Width = 440
End With
End With
'Insere nome do funcionario
With objTable.Cell(1, 2)
With .Range.Select
objSelection.Font.Name = "Franklin Gothic Book"
objSelection.Font.Size = "16"
objSelection.Font.Color = RGB(175,0,15)
objSelection.Font.Bold = False
objSelection.TypeText strName & VbCr
'Insere Cargo, email e telefone
Set objSelection = objWord.Selection
objSelection.Font.Bold = False
objSelection.Font.Size = "11"
objSelection.Font.Color = RGB(69,69,69)
objSelection.TypeText strTitle & VbCr
objSelection.TypeText strEmail & VbCr
objSelection.TypeText strPhone & VbCr
objSelection.Font.Size = "5"
objSelection.TypeText VbCr
'Insere barra no final
objSelection.InlineShapes.AddPicture(strBarra)
End With
End With
'Finalizacao e Definicao do nome da assinatura e coloca a mesma como padrao
Set objSelection = objDoc.Range()
objSignatureEntries.Add strNomeArq, objSelection
objSignatureObject.NewMessageSignature = strNomeArq
objSignatureObject.ReplyMessageSignature = strNomeArq
objDoc.Saved = True
objWord.Quit
quinta-feira, 5 de dezembro de 2019
Definindo Wallpaper conforme resolução
Na empresa onde trabalho se fez necessário dois papeis diferentes conforme o tipo de monitor, 4:3 ou 16:9, para isso foi necessário colocar o script abaixo no em uma GPO de logon para que mude o papel de parede conforme o tipo de tela
-------------------------------------
echo off
setLocal EnableDelayedExpansion
if %computername% == Servidor GOTO server
wmic path Win32_VideoController get CurrentHorizontalResolution| FIND /I "1920">Nul && (GOTO wide)
wmic path Win32_VideoController get CurrentHorizontalResolution| FIND /I "1440">Nul && (GOTO wide)
wmic path Win32_VideoController get CurrentHorizontalResolution| FIND /I "1366">Nul && (GOTO wide)
wmic path Win32_VideoController get CurrentHorizontalResolution| FIND /I "1360">Nul && (GOTO wide)
wmic path Win32_VideoController get CurrentHorizontalResolution| FIND /I "1600">Nul && (GOTO wide)
GOTO normal
:wide
copy /y \\servidor\sysvol\scripts\Wallpapers\wide\* %userprofile%\Pictures\
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True
GOTO fim
:normal
copy /y \\servidor\sysvol\scripts\Wallpapers\normal\* %userprofile%\Pictures\
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True
GOTO fim
:server
del /q c:\temp\wallpaper.bmp
del /q c:\temp\wallpaper.jpg
:fim
-------------------------------
Após o script é necessário definir na GPO que o papel de parede é o %userprofile%\Pictures\wallpaper.jpg
Como funciona
Ele verifica a resolução de tela e conforme a resolução copia um arquivo para o %userprofile%\Pictures\ , e a GPO usa esta imagem como padrão
-------------------------------------
echo off
setLocal EnableDelayedExpansion
if %computername% == Servidor GOTO server
wmic path Win32_VideoController get CurrentHorizontalResolution| FIND /I "1920">Nul && (GOTO wide)
wmic path Win32_VideoController get CurrentHorizontalResolution| FIND /I "1440">Nul && (GOTO wide)
wmic path Win32_VideoController get CurrentHorizontalResolution| FIND /I "1366">Nul && (GOTO wide)
wmic path Win32_VideoController get CurrentHorizontalResolution| FIND /I "1360">Nul && (GOTO wide)
wmic path Win32_VideoController get CurrentHorizontalResolution| FIND /I "1600">Nul && (GOTO wide)
GOTO normal
:wide
copy /y \\servidor\sysvol\scripts\Wallpapers\wide\* %userprofile%\Pictures\
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True
GOTO fim
:normal
copy /y \\servidor\sysvol\scripts\Wallpapers\normal\* %userprofile%\Pictures\
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True
GOTO fim
:server
del /q c:\temp\wallpaper.bmp
del /q c:\temp\wallpaper.jpg
:fim
-------------------------------
Após o script é necessário definir na GPO que o papel de parede é o %userprofile%\Pictures\wallpaper.jpg
Como funciona
Ele verifica a resolução de tela e conforme a resolução copia um arquivo para o %userprofile%\Pictures\ , e a GPO usa esta imagem como padrão
Assinar:
Postagens (Atom)