Grupos: mudanças entre as edições

De Wiki Grupo LLAL
Criou página com '= Estrutura de OUs - Active Directory GRUPOLLAL = == Objetivo == Padronizar a arquitetura de Unidades Organizacionais (OUs) do domínio '''grupollal.cloud''', facilitando a administração, aplicação de políticas (GPOs) e organização de usuários, computadores, lojas e ERs. == Estrutura de Alto Nível == <syntaxhighlight lang="text"> DC=grupollal,DC=cloud └── OU=GRUPOLLAL ├── OU=Escritorio ├── OU=Lojas ├── OU=ERs ├── O...'
 
Sem resumo de edição
Linha 1: Linha 1:
= Estrutura de OUs - Active Directory GRUPOLLAL =
= Script:AD-CriarEstruturaOUs =


== Objetivo ==
Este script PowerShell é responsável por criar toda a estrutura de Unidades Organizacionais (OUs) no Active Directory para o domínio '''grupollal.cloud''', seguindo o padrão definido na arquitetura.
Padronizar a arquitetura de Unidades Organizacionais (OUs) do domínio '''grupollal.cloud''', facilitando a administração, aplicação de políticas (GPOs) e organização de usuários, computadores, lojas e ERs.


== Estrutura de Alto Nível ==
== Pré-requisitos ==
<syntaxhighlight lang="text">
* Executar como Administrador
DC=grupollal,DC=cloud
* PowerShell com módulo `ActiveDirectory` disponível
└── OU=GRUPOLLAL
* Permissões de Domain Admin
    ├── OU=Escritorio
* Executar em um DC (Domain Controller)
    ├── OU=Lojas
 
     ├── OU=ERs
== Código ==
    ├── OU=Grupos
<syntaxhighlight lang="powershell">
    ├── OU=Servidores
Import-Module ActiveDirectory
    └── OU=Scripts
 
</syntaxhighlight>
# Função reutilizável para criar uma OU, se ela ainda não existir
function Criar-OU {
    param (
        [string]$OUName,
        [string]$ParentDN
    )
    $FullPath = "OU=$OUName,$ParentDN"
    if (-not (Get-ADOrganizationalUnit -LDAPFilter "(distinguishedName=$FullPath)" -ErrorAction SilentlyContinue)) {
        New-ADOrganizationalUnit -Name $OUName -Path $ParentDN -ProtectedFromAccidentalDeletion $true
    }
}
 
# Base do domínio
$dominioBase = "DC=grupollal,DC=cloud"
$ouRoot = "OU=GRUPOLLAL,$dominioBase"
 
# Cria a OU raiz
Criar-OU -OUName "GRUPOLLAL" -ParentDN $dominioBase
 
# OUs principais
$principais = @("Escritorio", "Lojas", "ERs", "Grupos", "Servidores", "Scripts")
foreach ($ou in $principais) {
     Criar-OU -OUName $ou -ParentDN $ouRoot
}
 
# Subestrutura do Escritório
$ouEscritorio = "OU=Escritorio,$ouRoot"
Criar-OU -OUName "Usuarios" -ParentDN $ouEscritorio
Criar-OU -OUName "Computadores" -ParentDN $ouEscritorio


== Detalhamento por Seção ==
# Setores do Escritório
$setores = @("Comercial", "Logistica", "Dados", "Financeiro", "Marketing", "RH-DP", "Diretoria", "Tecnologia", "Multiplicador")
foreach ($setor in $setores) {
    Criar-OU -OUName $setor -ParentDN "OU=Usuarios,$ouEscritorio"
    Criar-OU -OUName $setor -ParentDN "OU=Computadores,$ouEscritorio"
}


=== OU=Escritorio ===
# Lojas
Dividido entre usuários e computadores, separados por setor:
$ouLojas = "OU=Lojas,$ouRoot"
<syntaxhighlight lang="text">
$lojas = @(
OU=Escritorio,OU=GRUPOLLAL,DC=grupollal,DC=cloud
    "IRIS HJ - 22170 (22170)", "CSE (2090)", "CNM (5551)", "QNE (5553)", "QNM (5573)", "SAMAMBAIA (5624)", "309 Sul (10791)",
├── OU=Usuarios
    "PARK SHOP (19167)", "TERRAÇO (19168)", "PÃO DE AÇUCAR (19169)", "CARREFOUR SUL (19170)", "411 SUL (19171)", "CENTRO CLINICO (19172)",
│  ├── OU=Comercial
    "204 SUL (19173)", "JK SHOP (19771)", "FELICITTA QUE! (19772)", "GUARÁ (19773)", "ATACADÃO (19774)", "RECANTO DAS EMAS (19775)",
│  ├── OU=Logistica
    "AGUAS CLARAS SHOP (19776)", "VICENTE PIRES (19777)", "DF PLAZA (19778)", "TAGUATINGA SHOP (19779)", "ALAMEDA (5552)",
│  ├── OU=Dados
    "309 SUL (19791)", "DECK NORTE (22638)", "PARANOÁ (22639)", "ATACADÃO QNL (22287)", "QDB TAG SHOP (910148)", "QDB GILBERTO (910293)"
│  ├── OU=Financeiro
)
│  ├── OU=Marketing
foreach ($loja in $lojas) {
│  ├── OU=RH-DP
    Criar-OU -OUName $loja -ParentDN $ouLojas
│  ├── OU=Diretoria
    Criar-OU -OUName "Usuarios" -ParentDN "OU=$loja,$ouLojas"
│  ├── OU=Tecnologia
    Criar-OU -OUName "Computadores" -ParentDN "OU=$loja,$ouLojas"
│  └── OU=Multiplicador
}
├── OU=Computadores
│  ├── OU=Comercial
│  ├── OU=Logistica
│  ├── OU=Dados
│  ├── OU=Financeiro
│  ├── OU=Marketing
│  ├── OU=RH-DP
│  ├── OU=Diretoria
│  ├── OU=Tecnologia
│  └── OU=Multiplicador
</syntaxhighlight>


=== OU=Lojas ===
# ERs
Cada loja possui suas próprias sub-OUs para organização:
$ouERs = "OU=ERs,$ouRoot"
<syntaxhighlight lang="text">
$ers = @(
OU=Lojas,OU=GRUPOLLAL,DC=grupollal,DC=cloud
    "VD CANDANGA - VD CANDANGOLANDIA - 21157 (21157)",
├── OU=IRIS HJ - 22170 (22170)
    "VD CEILANDIA - 13587 (13587)",
│  ├── OU=Usuarios
    "VD PARANOA - 22640 (22640)",
│  └── OU=Computadores
    "VD TAGUATINGA - 14540 (14540)",
├── OU=CSE (2090)
    "VD SÃO SEBASTIÃO - NEW - VD SÃO SEBASTIÃO - 23137 (23137)"
│  ├── OU=Usuarios
)
│  └── OU=Computadores
$setoresER = @("Financeiro", "Estoque", "Gerencia", "Caixa", "Consultoras")
...
foreach ($er in $ers) {
    Criar-OU -OUName $er -ParentDN $ouERs
    foreach ($sub in $setoresER) {
        Criar-OU -OUName $sub -ParentDN "OU=$er,$ouERs"
    }
}
</syntaxhighlight>
</syntaxhighlight>
*Obs: Estrutura replicada para todas as 30+ lojas.*


=== OU=ERs ===
== Observações ==
Cada ER (Espaço Regional) possui sub-OUs de funções internas:
* Todas as OUs são protegidas contra exclusão acidental
<syntaxhighlight lang="text">
* O script pode ser executado mais de uma vez sem duplicar OUs
OU=ERs,OU=GRUPOLLAL,DC=grupollal,DC=cloud
* Adaptável para novos setores, lojas e ERs no futuro
├── OU=VD CANDANGA - VD CANDANGOLANDIA - 21157 (21157)
│  ├── OU=Financeiro
│  ├── OU=Estoque
│  ├── OU=Gerencia
│  ├── OU=Caixa
│  └── OU=Consultoras
├── OU=VD CEILANDIA - 13587 (13587)
│  ├── OU=Financeiro
│  ├── OU=Estoque
...
</syntaxhighlight>


=== OU=Grupos / Servidores / Scripts ===
== Autor ==
* OU=Grupos → local para armazenar grupos de segurança e distribuição
* Iran Ribeiro 😎 – Infra DevOps, responsável pela padronização e automação da TI no domínio grupollal.cloud
* OU=Servidores → organização lógica de servidores
* OU=Scripts → local reservado para objetos ou GPOs com scripts


== Convenções e Boas Práticas ==
== Histórico ==
* Nomes de OUs sempre no padrão: '''sem acento, com hífen para separar palavras'''
* 2025-07 – Primeira versão automatizada da arquitetura de OUs
* Para lojas e ERs, manter o formato: '''NOME (CÓDIGO)'''
* Todas as OUs são criadas com `-ProtectedFromAccidentalDeletion`
* Organização clara para vincular GPOs setoriais e de localização

Edição das 11h32min de 30 de julho de 2025

Script:AD-CriarEstruturaOUs

Este script PowerShell é responsável por criar toda a estrutura de Unidades Organizacionais (OUs) no Active Directory para o domínio grupollal.cloud, seguindo o padrão definido na arquitetura.

Pré-requisitos

  • Executar como Administrador
  • PowerShell com módulo `ActiveDirectory` disponível
  • Permissões de Domain Admin
  • Executar em um DC (Domain Controller)

Código

<syntaxhighlight lang="powershell"> Import-Module ActiveDirectory

  1. Função reutilizável para criar uma OU, se ela ainda não existir

function Criar-OU {

   param (
       [string]$OUName,
       [string]$ParentDN
   )
   $FullPath = "OU=$OUName,$ParentDN"
   if (-not (Get-ADOrganizationalUnit -LDAPFilter "(distinguishedName=$FullPath)" -ErrorAction SilentlyContinue)) {
       New-ADOrganizationalUnit -Name $OUName -Path $ParentDN -ProtectedFromAccidentalDeletion $true
   }

}

  1. Base do domínio

$dominioBase = "DC=grupollal,DC=cloud" $ouRoot = "OU=GRUPOLLAL,$dominioBase"

  1. Cria a OU raiz

Criar-OU -OUName "GRUPOLLAL" -ParentDN $dominioBase

  1. OUs principais

$principais = @("Escritorio", "Lojas", "ERs", "Grupos", "Servidores", "Scripts") foreach ($ou in $principais) {

   Criar-OU -OUName $ou -ParentDN $ouRoot

}

  1. Subestrutura do Escritório

$ouEscritorio = "OU=Escritorio,$ouRoot" Criar-OU -OUName "Usuarios" -ParentDN $ouEscritorio Criar-OU -OUName "Computadores" -ParentDN $ouEscritorio

  1. Setores do Escritório

$setores = @("Comercial", "Logistica", "Dados", "Financeiro", "Marketing", "RH-DP", "Diretoria", "Tecnologia", "Multiplicador") foreach ($setor in $setores) {

   Criar-OU -OUName $setor -ParentDN "OU=Usuarios,$ouEscritorio"
   Criar-OU -OUName $setor -ParentDN "OU=Computadores,$ouEscritorio"

}

  1. Lojas

$ouLojas = "OU=Lojas,$ouRoot" $lojas = @(

   "IRIS HJ - 22170 (22170)", "CSE (2090)", "CNM (5551)", "QNE (5553)", "QNM (5573)", "SAMAMBAIA (5624)", "309 Sul (10791)",
   "PARK SHOP (19167)", "TERRAÇO (19168)", "PÃO DE AÇUCAR (19169)", "CARREFOUR SUL (19170)", "411 SUL (19171)", "CENTRO CLINICO (19172)",
   "204 SUL (19173)", "JK SHOP (19771)", "FELICITTA QUE! (19772)", "GUARÁ (19773)", "ATACADÃO (19774)", "RECANTO DAS EMAS (19775)",
   "AGUAS CLARAS SHOP (19776)", "VICENTE PIRES (19777)", "DF PLAZA (19778)", "TAGUATINGA SHOP (19779)", "ALAMEDA (5552)",
   "309 SUL (19791)", "DECK NORTE (22638)", "PARANOÁ (22639)", "ATACADÃO QNL (22287)", "QDB TAG SHOP (910148)", "QDB GILBERTO (910293)"

) foreach ($loja in $lojas) {

   Criar-OU -OUName $loja -ParentDN $ouLojas
   Criar-OU -OUName "Usuarios" -ParentDN "OU=$loja,$ouLojas"
   Criar-OU -OUName "Computadores" -ParentDN "OU=$loja,$ouLojas"

}

  1. ERs

$ouERs = "OU=ERs,$ouRoot" $ers = @(

   "VD CANDANGA - VD CANDANGOLANDIA - 21157 (21157)",
   "VD CEILANDIA - 13587 (13587)",
   "VD PARANOA - 22640 (22640)",
   "VD TAGUATINGA - 14540 (14540)",
   "VD SÃO SEBASTIÃO - NEW - VD SÃO SEBASTIÃO - 23137 (23137)"

) $setoresER = @("Financeiro", "Estoque", "Gerencia", "Caixa", "Consultoras") foreach ($er in $ers) {

   Criar-OU -OUName $er -ParentDN $ouERs
   foreach ($sub in $setoresER) {
       Criar-OU -OUName $sub -ParentDN "OU=$er,$ouERs"
   }

} </syntaxhighlight>

Observações

  • Todas as OUs são protegidas contra exclusão acidental
  • O script pode ser executado mais de uma vez sem duplicar OUs
  • Adaptável para novos setores, lojas e ERs no futuro

Autor

  • Iran Ribeiro 😎 – Infra DevOps, responsável pela padronização e automação da TI no domínio grupollal.cloud

Histórico

  • 2025-07 – Primeira versão automatizada da arquitetura de OUs