PESQUISAR

24 de outubro de 2016

Configurando uma assinatura automática no Outlook através de script e GPO - com logomarca à esquerda

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

    .TypeText Chr(11)

    'TELEFONE
    With .Font
        .Name = "Tahoma"
        .Size = 9
        .Bold = False
        .Color = RGB(127, 127, 127)
        .Italic = False
        .Underline = False
    End With
    .TypeText strPhone & "   " & strMobile & Chr(11)
       
    'E-MAIL
    With .Font
        .Name = "Tahoma"
        .Size = 9
        .Bold = False
        .Color = RGB(0, 0, 255)
        .Italic = False
        .Underline = True
    End With
    .TypeText strMail & Chr(11)
    
    
    'SITE
    With .Font
        .Name = "Tahoma"
        .Size = 9
        .Bold = true
        .Color = RGB(57, 181, 74)
        .Italic = False
        .Underline = False
    End With
     
    .TypeText strweb & Chr(11)
    
    .TypeText Chr(11)
    .TypeText Chr(11)
    
    'MENSAGENS
    With .Font
        .Name = "arial"
        .Size = "8"
        .Bold = False
        .Color = RGB(160, 160, 160) '8421504
        .Italic = True
        .Underline = 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"
        .Bold = False
        .Color = RGB(160, 160, 160)
        .Italic = True
        .Underline = 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
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 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
  6. Telefone Móvel (caso a conta possua este atributo no AD)
  7. E-mail
  8. 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 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:

 'NOME
    With .Font
        .Name = "Tahoma"
        .Size = 11
        .Bold = True
        .Color = RGB(0, 75, 118)
        .Italic = False
        .Underline = False
    End With
    .TypeText strName & Chr(11)
    
    .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. 

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

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

    .TypeText Chr(11)

    'TELEFONE
    With .Font
        .Name = "Tahoma"
        .Size = 9
        .Bold = False
        .Color = RGB(127, 127, 127)
        .Italic = False
        .Underline = False
    End With
    .TypeText strPhone & "   " & strMobile & Chr(11)
       
    'E-MAIL
    With .Font
        .Name = "Tahoma"
        .Size = 9
        .Bold = False
        .Color = RGB(0, 0, 255)
        .Italic = False
        .Underline = True
    End With
    .TypeText strMail & Chr(11)
    
    
    'SITE
    With .Font
        .Name = "Tahoma"
        .Size = 9
        .Bold = true
        .Color = RGB(57, 181, 74)
        .Italic = False
        .Underline = False
    End With
     
    .TypeText strweb & Chr(11)
    
    .TypeText Chr(11)
    .TypeText Chr(11)
    
    'MENSAGENS
    With .Font
        .Name = "arial"
        .Size = "8"
        .Bold = False
        .Color = RGB(160, 160, 160) '8421504
        .Italic = True
        .Underline = 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"
        .Bold = False
        .Color = RGB(160, 160, 160)
        .Italic = True
        .Underline = 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

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

A assinatura ficará mais ou menos assim:

Exemplo de uma assinatura de e-mail no Outlook.
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) 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?
Não deixe de postar o seu comentário. Ele é muito importante!



Related Posts Plugin for WordPress, Blogger...

Nenhum comentário :

Postar um comentário

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