PESQUISAR

23 de agosto de 2014

Configurando assinatura automática no Outlook através de script e GPO - logomarca embaixo das informações

Atualizado em 24/10/2016

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

Configurar assinatura automática no Outlook através de script e GPO
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 Windows 7 e 10 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://" & strUser)

With objUser
  
strName = .FullName
strTitle = .Title
strl = .l
strco = .co
strMobile = .Mobile
strPhone = .TelephoneNumber
strMail = .mail
strWeb = .wWWHomePage

End With


Set objword = CreateObject("Word.Application")
With objword

  Set objDoc = .Documents.Add()
  Set objSelection = .Selection
  Set objEmailOptions = .EmailOptions

End With

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

  .ParagraphFormat.Alignment = wdAlignParagraphRight
  .TypeParagraph

  With .Font
    .Name = "Calibri"
    .Size = 11
    .Bold = true
    .Color = 0
  End With
    .TypeText strName & Chr(11)
  With .Font
    .Name = "Calibri"
    .Size = 10
    .Bold = False
    .Color = 0
  End With
    .TypeText strTitle & Chr(11)
    .TypeText strl & Chr(11)

With .Font    
.Size = "10" 
.Name = "Calibri"    
.Bold = True  
.Color = 0
End With


  
.TypeText strCompany & Chr(11)
.TypeText Chr(11)

With .Font 
.Bold = false
End With



  With .Font
    .Name = "Calibri"
    .Size = 10
    .Bold = false
    .Color = 0
  End With
    .Font.Italic = False
    .TypeText "Tel: " & strPhone & Chr(11)
    if len(strMobile) > 1 then
    .TypeText "Cel: " & strMobile & Chr(11)
    end if 
    .TypeText "Email: " & strMail & Chr(11) & "Site: " & strWeb & Chr(11)
    .TypeText Chr(11)
    .InlineShapes.AddPicture "\\contoso.com\NETLOGON\Signature_contoso.jpg", True, True

    .TypeText Chr(11)
    .TypeText Chr(11)

With .Font
.Name = "arial"    
.Size = "8"
.italic = true
.Color = 8421504
.Bold = False 
End With 
    
.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."

    .TypeText Chr(11)
    .TypeText Chr(11)

With .Font
.Name = "arial"    
.Size = "8"
.italic = true
.Color = 8421504
.Bold = False  
End With

.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

Iremos analisar apenas os pontos mais importantes deste script.

Note este trecho:

strName = .FullName
strTitle = .Title
strCompany = .Company (Não necessário)
strl = .l
strco = .co
strMobile = .Mobile
strPhone = .TelephoneNumber
strMail = .mail
strWeb = .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 e por aí vai.

O trecho acima se refere aos seguintes atributos do AD nesta ordem:
  1. Nome para exibição
  2. Cargo
  3. Cidade
  4. Empresa
  5. Telefone fixo Telefone Móvel (caso a conta possua este atributo no AD)
  6. Telefone Móvel (caso a conta possua este atributo no AD) Telefone fixo
  7. E-mail
  8. Site

No trecho em vermelho " .InlineShapes.AddPicture "\\contoso.com\NETLOGON\Signature_contoso.jpg", True, True" você especificará o caminho onde se encontra a logomarca da empresa no formato "JPG".

No exemplo acima, a logomarca se encontra na pasta "Netlogon" com o nome "Signature_contoso.jpg" localizado nos 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:

Este script define que a logomarca aparecerá logo abaixo dos dados da assinatura.

Segue um exemplo:

A imagem borrada na assinatura representa a logomarca.
Clique na imagem acima para ampliá-la

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) o arquivo "Signature - Policy".


2.  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  "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!






Related Posts Plugin for WordPress, Blogger...

28 comentários :

  1. Por favo como faço se exisitr mais de 1 email no mesmo Outlook??

    ResponderExcluir
    Respostas
    1. Olá meu caro!

      Se nós estamos falando "a mesma língua", ou seja, se o ambiente que você menciona for baseado em domínio, não há problema algum. Basta criar um segundo script e associá-lo com outra GPO. Em seguida, atribuir a GPO a uma ‘OU’ que contenha as contas do Active Directory que "receberão" a configuração desta GPO.

      No ‘Outlook’ do usuário, ele escolherá de qual e-mail enviará a mensagem. A assinatura será automaticamente configurada na conta de e-mail selecionada para o envio.

      Mas se as diferentes assinaturas destinam-se a mesma conta de usuário do domínio (login), neste caso recomendo a criação de uma assinatura manual no próprio Outlook, visto tratar-se, na minha humilde opinião, de um caso atípico. Daí, antes de ser enviada a mensagem, deverá ser escolhida a assinatura desejada.

      Um abraço!

      Excluir
  2. Boa tarde, muito bom o passo a passo!
    A unica coisa que não funcionou foi ele ficar como padrão depois de aplicado a GPO.

    ResponderExcluir
    Respostas
    1. Boa tarde meu caro!

      Agradeço por comentar!

      Pelo que entendi existe mais de uma assinatura na empresa onde você trabalha.

      Daí, a nova assinatura aparecerá como disponível para ser escolhida, mas não virá como padrão.

      O script que expliquei aqui no blog não se destina a remover uma assinatura já existente. Objetiva criar uma nova e única assinatura.

      Espero ter ajudado.

      Um abraço!

      Excluir
    2. Meu caro, boa tarde!

      Existia um erro no código, no entanto o mesmo foi resolvido.

      Desculpe o transtorno.

      Um abraço.

      Excluir
  3. Como faço para deixar a assinatura salva quando as pessoas entrarem no computador fora da rede interna (domínio)?

    ResponderExcluir
    Respostas
    1. Olá meu caro(a)!

      Tomando como exemplo o Outlook 2013, faça:

      1- Clique no menu Arquivo - Opções;

      2- Clique em “E-mail” – “Assinaturas”;

      3- Na aba "Assinatura de Email", clique no botão "Novo";

      4- Digite um nome para a assinatura;

      5- Em "Editar assinatura", Cole uma assinatura (Você pode copiar o modelo de uma assinatura existente em algum e-mail recebido/enviado. Daí edite os dados conforme necessidade.) ou crie uma nova assinatura.

      6- Em "Novas mensagens" e "Respostas/encaminhamentos" selecione o nome da assinatura criada.

      7- Clique em OK.

      Abraço!

      Excluir
  4. Aqui funcionou a GPO, porem a imagem não carrega, somente o texto.
    (.jpg) algo que já tenha visto? e se colocar o link de uma imagem hospedada na web no local onde ele aponta para o netlogon, funcionaria? testei aqui mas não rolou, mas como não rolou a default tbm... não sei se funcionaria essa outra opção.

    ResponderExcluir
    Respostas
    1. Olá meu caro(a)!

      Ao invés de especificar o caminho "\\domínio\NETLOGON\nome da imagem", tente com um endereço de compartilhamento na rede. Exemplos:

      \\DCRJO\signature\imagem.jpg
      \\SRV01\assinatura\imagem.jpg

      Não se esqueça de dar as devidas permissões de acesso na guia "Segurança" (Permissões NTFS) ao grupo "Domain Users" ou outro de seu interesse.

      Um abraço!

      Excluir
    2. Depois que enviei a pergunta a imagem apareceu. :)
      Porem, uma dúvida! O Script busca a imagem e coloca na pasta referente a assinatura (AD Signature_arquivos), lá dentro ele cria2 imagens (image001 e image002), uma com o tamanho real da imagem e outro de tamanho e qualidade reduzida. Como eu faria pra que a assinatura mostrasse a imagem de tamanho real? Atualmente ela mostra a de menor tamanho/qualidade.

      Excluir
    3. Olá meu caro!

      A imagem que surgirá na assinatura será a que for disponibilizada no seguinte caminho, conforme script deste tutorial:

      "\\domínio\NETLOGON\imagem.jpg".

      Exemplo: \\contoso.com.br\NETLOGON\Signature_contoso.jpg

      Sinceramente eu não localizei a pasta que você mencionou.

      A imagem que estiver no caminho existente no script será “carimbada”, por assim dizer, na assinatura. Ou seja, se a imagem estiver em baixa resolução com um número "x" de cores, esta mesma imagem será a que aparecerá na assinatura.

      Um abraço!

      Excluir
    4. Estou pesquisando a sintaxe da expressão 'AddPicture', algo que me permita definir o tamanho ou qualidade da “carimbada”.

      Excluir
    5. Minha sugestão:

      Se você criar uma imagem no tamanho e na qualidade desejada, basta mantê-la na pasta "Netlogon". Daí informe ao script o nome do arquivo de imagem (ex: logo.jpg) que está localizado em \\domínio\netlogon.

      Acredito que será mais fácil. Basta usar um editor de fotos e definir a qualidade da figura em si e após a conclusão da edição, mover ou substituir a imagem da pasta “Netlogon”.

      Um abraço!

      Excluir
    6. Mesmo que eu aponte para uma imagem dentro do netlogon, o script cria um html da assinatura, e na pasta de arquivos desse html, ele cria as 2 imagens.
      O Local da pasta é o local das assinaturas, %appdata%\Microsoft\Signatures\
      Estou usando windows8.1\office2013.

      Excluir
    7. Entendi meu caro!

      Realmente ele cria a imagem no caminho citado, mas em todos os ambientes que implementei este script, a imagem gerada em "%appdata%\Microsoft\Signatures" é a mesma existente em "Netlogon", ou seja, uma cópia.

      Além disso, o script gera apenas uma única cópia da figura. Daí a minha surpresa quanto ao seu caso.

      No entanto, nos ambientes que mencionei, todas as estações de trabalho são Windows 7.

      Mas, beleza! Continue seus testes e se puder postar sua solução aqui, será muito bem vinda, visto que o objetivo do blog e disseminar conhecimento.

      Um abraço!

      Excluir
    8. Hoje tentei com um .png e o script copiou a imagem mas ainda gerou uma de baixa qualidade em formato .jpg.
      O que me intriga é que o html gerado pelo script aponta para a imagem em JPG e com um tamanho definido diferente da imagem original...
      <img width=567 height=58
      src="L5_Signature_arquivos/image002.jpg"
      se eu alterar o tamanho e o link da imagem, a assinatura fica perfeita. ¬¬

      Excluir
  5. Colega,
    a solução prática que encontrei foi reduzir a imagem original até ficar na proporção ideal no html, utilizei um jpg de 100x30, comece reduzindo o seu jpg em 50%

    ResponderExcluir
    Respostas
    1. Grato por sua contribuição ao tema!

      Um abraço!

      Excluir
  6. Como seria pra dividir em 2 colunas?
    Na primeira a imagem e na segunda as informações...

    ResponderExcluir
    Respostas
    1. Primeiramente peço desculpas pela imensa demora na resposta.

      Provavelmente você já resolveu o problema, mas para manter a ética e o bom senso de sempre responder os comentários, posto abaixo a provável solução e que poderá ser útil para outras pessoas.

      Segue:

      http://www.fatorconhecimento.com/2016/10/configurar-assinatura-automatica-no.html

      Um abraço!

      Excluir
  7. Boa Tarde, consigo fazer também para windows live mail?

    ResponderExcluir
    Respostas
    1. Olá prezado Paulo!

      Primeiramente peço desculpas pela imensa demora na resposta.

      Esta dica foi testada com êxito no Outlook em ambiente corporativo. Não testei com outros clientes de e-mail.

      Um abraço!

      Excluir
  8. Boa tarde,

    Primeiramente muito obrigado pela ajuda com o script, consegui executar ok, porém, eu gostaria de inserir a imagem na lateral esquerda da assinatura, pois a imagem está embaixo do texto, como faria para mudar isso ?

    ResponderExcluir
    Respostas
    1. Olá prezado Felipe!

      Primeiramente peço desculpas pela imensa demora na resposta.

      Provavelmente você já resolveu o problema, mas para manter a ética e o bom senso de sempre responder os comentários, posto abaixo a provável solução e que poderá ser útil para outras pessoas.

      Segue:

      http://www.fatorconhecimento.com/2016/10/configurar-assinatura-automatica-no.html

      Um abraço!

      Excluir
  9. Excelente Script! Testado e validado!

    ResponderExcluir
    Respostas
    1. Olá Diego! Grato pelo feedback! Um abraço!

      Excluir
  10. Respostas
    1. Disponha meu caro Bruno.
      Grato por comentar.
      Abraço!

      Excluir

Nos comentários poderão existir informações que poderão lhe ajudar a resolver seu problema.