Configurar assinatura automática no Outlook através de script VBS e GPO - versão com logomarca à esquerda e informações à direita
Autor: Gutemberg Lima | Publicado: 2016-10-24T22:25:00-02:00



OBS: Este post se destina a analistas de suporte, administradores de redes / infraestrutura.




Para os caros colegas administradores de redes, vou postar uma dica que me serviu muito bem.




Existem soluções pagas no mercado que automatizam a configuração de uma bonita assinatura corporativa nos e-mails do Microsoft Outlook.







Tais ferramentas, na realidade importam os atributos das contas do AD (Active Directory) e a transferem para um arquivo de assinatura automaticamente gerado no Outlook.









No entanto, existem formas simples e gratuitas de implementarmos uma assinatura automática e exclusiva no Outlook de todos os usuários.







Precisaremos apenas de um script, de uma pequena figura JPG ou PNG (logomarca) e de uma GPO.

OBS: Recomendo que a logomarca (figura) tenha fundo transparente.




Script 'VBS' para assinatura no Outlook


OBS: Todos os passos deste tutorial foram implementados com êxito num ambiente real de produção. No ambiente existe uma combinação dos sistemas operacionais&nbsp;Windows 7 e 10&nbsp;e dos pacotes Office 2010, 2013 e 2016.

 Segue abaixo o script. Em seguida explicarei os pontos mais importantes do mesmo e fornecerei mais alguns detalhes. No exemplo abaixo criei um script chamado "Signature.vbs". É evidente que o script abaixo deverá ser copiado para o bloco de notas.

 
On Error Resume Next
Set objSysInfo = CreateObject("ADSystemInfo")
strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" &amp; strUser)

With objUser
&nbsp;&nbsp;
strName = .FullName
strTitle = .Title
strl = .l
strco = .co
strMobile = .Mobile
strPhone = .TelephoneNumber
strMail = .mail
strweb = LCase(.wWWHomePage)

End With


Set objword = CreateObject("Word.Application")
With objword
&nbsp; &nbsp; Set objDoc = .Documents.Add()
&nbsp; &nbsp; Set objSelection = .Selection
&nbsp; &nbsp; Set objEmailOptions = .EmailOptions
End With

Set objSignatureObject = objEmailOptions.EmailSignature
Set objSignatureEntries = objSignatureObject.EmailSignatureEntries
With objSelection

&nbsp; &nbsp; .ParagraphFormat.Alignment = wdAlignParagraphLeft
&nbsp; &nbsp;
&nbsp; &nbsp; .InlineShapes.AddPicture "\\contoso\NETLOGON\logomarca.png", True, True
&nbsp; &nbsp; objDoc.InlineShapes(1).ConvertToShape
&nbsp; &nbsp; 'objDoc.Shapes(1).WrapFormat.Type = 4 'Abaixo
&nbsp; &nbsp; objDoc.Shapes(1).WrapFormat.Type = 0 'Ao Lado
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; 'NOME
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 11
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = True
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(0, 75, 118)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText strName &amp; Chr(11)
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; .TypeText Chr(6)
&nbsp;&nbsp;
&nbsp; &nbsp; 'CARGO
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 9
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = True
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(127, 127, 127)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText strTitle &amp; Chr(11)
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; 'LOCALIZAÇÃO
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 9
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = False
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(127, 127, 127)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText strl &amp; Chr(11)

&nbsp; &nbsp; .TypeText Chr(11)

&nbsp; &nbsp; 'TELEFONE
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 9
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = False
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(127, 127, 127)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText strPhone &amp; " &nbsp; " &amp; strMobile &amp; Chr(11)
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; 'E-MAIL
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 9
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = False
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(0, 0, 255)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = True
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText strMail &amp; Chr(11)
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; 'SITE
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 9
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = true
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(57, 181, 74)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; .TypeText strweb &amp; Chr(11)
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; .TypeText Chr(11)
&nbsp; &nbsp; .TypeText Chr(11)
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; 'MENSAGENS
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "arial"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = "8"
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = False
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(160, 160, 160) '8421504
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = True
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText "Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode usar, copiar ou divulgar as informações nela contidas ou tomar qualquer ação baseada nessas informações. Se você recebeu esta mensagem por engano, por favor, avise imediatamente o remetente, respondendo o e-mail, e em seguida apague-o. Agradecemos sua cooperação."
&nbsp; &nbsp; .TypeText Chr(11)
&nbsp; &nbsp; .TypeText Chr(11)

&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "arial"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = "8"
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = False
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(160, 160, 160)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = True
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText "This message may contain confidential and/or privileged information. If you are not the address or authorized to receive this for the address, you must not use, copy, disclose or take any action base on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation"

End With

Set objSelection = objDoc.Range()
objSignatureEntries.Add "AD Signature", objSelection
objSignatureObject.NewMessageSignature = "AD Signature"
objSignatureObject.ReplyMessageSignature = "AD Signature"
objDoc.Saved = True
objword.Quit


Compreendendo o script

(adsbygoogle = window.adsbygoogle || []).push({});

Iremos analisar apenas os pontos mais importantes deste script.

Note este trecho:

strName = .FullName
strTitle = .Title
strl = .l
strco = .co
strMobile = .Mobile
strPhone = .TelephoneNumber
strMail = .mail
strweb = LCase(.wWWHomePage)


Cada linha se refere a um atributo específico de uma conta de usuário do Active Directory. Por exemplo, "strName = .FullName" se refere ao nome completo, "strTitle = .Title" se refere ao cargo&nbsp;e por aí vai.

O trecho acima se refere aos seguintes atributos do AD nesta ordem:

Nome para exibição
Cargo
Cidade
Empresa
Telefone fixo
Telefone Móvel (caso a conta possua este atributo no AD)
E-mail
Site




No trecho em vermelho ".InlineShapes.AddPicture "\\contoso\NETLOGON\logomarca.png", True, True" você especificará o caminho onde se encontra a logomarca da empresa no formato "PNG". Lembre-se que também é possível utilizar arquivos JPG.



No exemplo acima, a logomarca se encontra na pasta "Netlogon" com o nome "logomarca.png" localizado nos&nbsp;controladores de domínio da empresa "Contoso"com domínio "contoso.com".


Para quem não sabe, para acessar um controlador de domínio, basta digitar o UNC \\NOME_DO_DOMÍNIO na janela "Executar" ou clicando no botão Iniciar e digitando o caminho mencionado.

Exemplo:




Note que o script lhe dá liberdade para alterar o tipo, tamanho e cor da fonte de cada sessão da assinatura. Além disso, existem opções de itálico, negrito e sublinhado. Note um exemplo no trecho de código abaixo:


&nbsp;'NOME
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 11
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = True
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(0, 75, 118)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText strName &amp; Chr(11)
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; .TypeText Chr(6)

Nos itens destacados em amarelo acima, note:


"NOME" é o comentário do código que indica a sessão da assinatura que você deseja editar.
Para alterar a fonte (Name), basta digitar o nome exato do tipo de fonte desejada.
Para alterar o tamanho (Size), basta alterar o número.
Para definir a fonte como negrito (Bold), basta digitar "True". Para desabilitar, escreva "False".
Para definir a cor (Color), digite o código RGB da cor desejada nos parenteses "(xxx, yyy, zzz)", que pode ser descoberto facilmente na internet.
Para Itálico (Italic) e Sublinhado (Underline), é o mesmo processo para negrito.&nbsp;


O mesmo princípio se aplica para os trechos "CARGO", "LOCALIZAÇÃO", "TELEFONE", "E-MAIL", "SITE" e "MENSAGENS".

'CARGO
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 9
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = True
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(127, 127, 127)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText strTitle &amp; Chr(11)
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; 'LOCALIZAÇÃO
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 9
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = False
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(127, 127, 127)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText strl &amp; Chr(11)

&nbsp; &nbsp; .TypeText Chr(11)

&nbsp; &nbsp; 'TELEFONE
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 9
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = False
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(127, 127, 127)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText strPhone &amp; " &nbsp; " &amp; strMobile &amp; Chr(11)
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; 'E-MAIL
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 9
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = False
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(0, 0, 255)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = True
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText strMail &amp; Chr(11)
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; 'SITE
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "Tahoma"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = 9
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = true
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(57, 181, 74)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = False
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; .TypeText strweb &amp; Chr(11)
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; .TypeText Chr(11)
&nbsp; &nbsp; .TypeText Chr(11)
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; 'MENSAGENS
&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "arial"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = "8"
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = False
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(160, 160, 160) '8421504
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = True
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText "Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode usar, copiar ou divulgar as informações nela contidas ou tomar qualquer ação baseada nessas informações. Se você recebeu esta mensagem por engano, por favor, avise imediatamente o remetente, respondendo o e-mail, e em seguida apague-o. Agradecemos sua cooperação."
&nbsp; &nbsp; .TypeText Chr(11)
&nbsp; &nbsp; .TypeText Chr(11)

&nbsp; &nbsp; With .Font
&nbsp; &nbsp; &nbsp; &nbsp; .Name = "arial"
&nbsp; &nbsp; &nbsp; &nbsp; .Size = "8"
&nbsp; &nbsp; &nbsp; &nbsp; .Bold = False
&nbsp; &nbsp; &nbsp; &nbsp; .Color = RGB(160, 160, 160)
&nbsp; &nbsp; &nbsp; &nbsp; .Italic = True
&nbsp; &nbsp; &nbsp; &nbsp; .Underline = False
&nbsp; &nbsp; End With
&nbsp; &nbsp; .TypeText "This message may contain confidential and/or privileged information. If you are not the address or authorized to receive this for the address, you must not use, copy, disclose or take any action base on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation"

End With

Este script define que a logomarca aparecerá à esquerda das informações do usuário.

A assinatura ficará mais ou menos assim:



Clique na imagem acima para ampliá-la







No exemplo acima, você deve estar achando a qualidade muito ruim. Não se esqueça que se trata de um print onde apliquei borrões e desfoques na imagem e no nome da empresa onde trabalho atualmente. É óbvio que o resultado final em seus testes será muito melhor!


Aplicando o script de assinatura no Outlook


Agora basta criar uma GPO de usuário em seu domínio (controlador de domínio - DC) e associar o script à diretiva criada (GPO).

No exemplo abaixo eu criei uma GPO chamada "Signature - Policy" e associei o script "Signature.vbs".

Passos:

1. Copie (CTRL+C)&nbsp;o arquivo&nbsp;"Signature - Policy".




2. &nbsp;Em "Configuração do Usuário", acesse "Políticas", "Configurações do Windows", "Scripts".





Clique na imagem acima para ampliá-la


3. Clique duas vezes em &nbsp;"Logon".

4. Clique no botão "Adicionar...".

5. Na janela "Adicionar um Script", clique no botão "Procurar...".



Clique na imagem acima para ampliá-la


6. Na janela que se abre, cole (CTRL+V)o script.



Clique na imagem acima para ampliá-la


7. Finalmente clique no botão "Abrir", depois em "OK" e "OK".


OBS. Quando a GPO for aplicada pela primeira vez na estação do usuário, a assinatura só entrará em vigor após o restart do computador.


Espero ter contribuído com mais esses conhecimentos.


Este post lhe foi útil?

Então o curta no Facebook ou o recomende no Google+.
E não deixe de postar o seu comentário. Ele é muito importante!