Eu posso automatizar Powershell e Você também!

Muitas vezes automatizar uma tarefa não vale o tempo e raramente leva o tempo planejado. Na StackExchange temos muitas pessoas em nossa equipe e em nossa comunidade que são incríveis no Powershell. Eu não sou uma dessas pessoas.

É possível economizar tempo usando o Powershell, mesmo que você não seja um mestre?...

 

Muitas vezes automatizar uma tarefa não vale o tempo e raramente leva o tempo planejado. Temos muitas pessoas em nossa equipe e em nossa comunidade que são incríveis no Powershell. Eu não sou uma dessas pessoas.

 

É possível economizar tempo usando powershell, mesmo que você não seja um guru? Claro que sim!

 

Enquadrando o Problema

 

Em algumas empresas usam aplicativos do Google para trabalhar. O Google Apps for Work inclui uma ótima ferramenta para vincular sua estrutura de Active Directory existente às suas contas do Google. Essa ferramenta, o Google Apps Directory Sync (GADS) permite que uma empresa sincronize usuários e grupos de diretórios ativos com contas de e-mail do Google e listas de discussão. Já sincronizamos nossos usuários com endereços de e-mail, mas minha tarefa é também vincular nossos grupos de segurança com listas de distribuição de e-mail.

 

Em um ambiente novo, isso seria incrivelmente fácil. No entanto, temos uma série de listas de discussão que existem no "lado do Google" que não têm grupos de segurança correspondentes em AD. Esse problema é agravado porque quando a sincronização de grupo estiver ativada no GADS, qualquer grupo que não corresponda a um grupo AD será excluído no lado do Google. Como um amigo disse:

 

Precisamos anexar um trailer a um veículo em movimento.

 

Etapas para resolver o problema:

 

Combine grupos de segurança de anúncios existentes com listas de discussão do Google.

Gerar grupos de segurança de anúncios que não existem para combinar listas de discussão do Google.

Preencha os Grupos de Segurança do AD com os usuários corretos

Se você está familiarizado com gads, você vai saber #1 é muito fácil. Usando um filtro AD, podemos combinar grupos em nossa estrutura de AD com grupos do Google existentes. A única preocupação aqui é garantir que os grupos de AD realmente tenham os mesmos usuários do grupo google existente, já que nenhuma sincronização ocorreu anteriormente.

 

A segunda questão, gerar grupos de segurança de anúncios que não existem como listas de discussão, representa um problema.

 

Executar um Sync simulado no GADS mostra 80 grupos do Google sem um grupo de segurança AD correspondente. (São alguns cliques...)

 

Esta é nossa primeira oportunidade de usar o Powershell para resolver nossos problemas.

 

Começo pegando uma lista de grupos que não estão no AD. GADS simulado Sync registra esses grupos de uma maneira que é facilmente copiada/colada em um bom formato separado por Tab.

 

 

Agora que temos os grupos, podemos colocá-los em AD:

 

Leia o CSV em powershell

Para cada grupo, gere um grupo de segurança com nome correspondente.

"MAS EU NÃO SEI COMO FAZER ISSO EM POWERSHELL"

 

Está okey. Vamos usar nosso conhecimento mínimo, e google para descobrir como.

 

Uma rápida pesquisa no Google mostra um artigo da Technet sobre Importação-CSV. Ler artigos da Microsoft Technet é uma arte própria. Estes artigos fornecem muitas informações detalhadas sobre o Import-CSV. Enquanto mais informações são ótimas, estamos tentando fazer as coisas. Vamos CTRL + F para encontrar exemplos relevantes:

 

 

Isolamos rapidamente o exemplo de importação de CSV. Ao despejar essa importação em uma variável ($csv) agora temos um objeto que powershell pode manipular. Após uma pesquisa semelhante e CTRL + F para New-ADGoup, acabamos com um pequeno script:

 

{% destacar powershell %}

$csv = Import-Csv -Delimiter t -Codificação UTF8 -Grupos de cabeçalho -Caminho C:Usersdoboyle.AVANCEDesktopgroups.txt

 

foreach ($i em $csv) {

$Group = $i.Grupos

New-ADGroup -Name $Group -GroupCategory Security -GroupScope Global -DisplayName $Group -Path "OU=GADS_Groups,OU=IT,DC=Something,DC=YourDomain,DC=com" -Descrição $Group

}

{% endhighlight %}

 

Tão perto. Mas espere, tem mais!

 

Os problemas 1 e 2 estão resolvidos, mas ainda precisamos povoar esses grupos de AD. Muitos dos grupos têm apenas alguns usuários, e são facilmente atualizados usando a compilação na Interface do Diretório Ativo. Alguns grupos são maiores. Tão grande que a interface AD existente exigiria centenas,ou até milhares de cliques. Se você acha que são muitos cliques, você estaria certo.

 

Powershell pode ajudar!

 

Assim como antes, a sincronização simulada do GADS retornará uma lista de usuários efetuada por uma sincronização planejada. Podemos novamente puxar essa lista de usuários para um TSV.

 

Permite modificar nosso script Powershell existente para preencher grupos de AD:

Nós combinamos em endereço de e-mail, não nome de usuário AD, então precisamos encontrar o usuário de AD com um endereço de e-mail correspondente e adicioná-lo ao grupo correto. Get-ADUser tem uma opção de filtro, que aceita uma string. Se definirmos o endereço de e-mail fornecido pelo GADS como a sequência filtrada, devemos sempre obter o usuário que queremos.

 

{% destacar powershell %}

$Group = "Tudo"

 

$path = $("C:Usersdoboyle.AVANCEEDesktop", $Group, ".txt" -join "))

 

Não há cabeçalho em nosso TSV, então definimos um como "GoogleUser"

 

$csv = Import-Csv -Delimiter t -Codificação UTF8 -Cabeçalho GoogleUser -Path $path

foreach ($user em $csv) {

$email = $($user. GoogleUser.ToString(), "@avance10.com" -junte-se a "")

$user = Get-ADUser -Filter {mail -like $email}

$Group $user add-ADGroupMember

}

{% endhighlight %}

 

Meu próprio fluxo de trabalho envolve pegar um único conjunto de nomes de usuário e jogá-los em um TSV

Eu nomeio a TSV em homenagem ao grupo de segurança que pretendo povoar.

Definir meu caminho com a string abaixo me permite alterar apenas 1 variável a cada passo do script.

 

 

O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.


Strong

5178 Blog Postagens

Comentários