está à procura de uma forma rápida de criar um relatório de pasta activa (AD) usando o PowerShell? Vieste ao sítio certo! Neste artigo, irá aprender a criar relatórios personalizados das contas de utilizador no seu ambiente de anúncios usando o Get-ADObject
cmdlet.Imagine que você está trabalhando em uma empresa startup e saiba que a empresa foi financiada por investidores para crescer a empresa, contratando novas pessoas para várias posições., O seu gerente lhe dá um pedido para lhe fornecer um relatório sobre a contagem de cabeças para cada escritório para se certificar de que o local de trabalho tem espaço de escritório suficiente.
normalmente, você veria manualmente as contas de anúncios usando a consola de aplicações Active Directory Users and Computers (ADUC) instalada no seu computador de secretária. No entanto, o uso do ADUC leva em média um minuto por novo empregado para rever informações para cada conta do ADUC.,
Você Procura rapidamente na Internet por algumas opções e descobre que pode automatizar a recolha dos dados do relatório de AD usando um cmdlet PowerShell chamado Get-ADObject
. Neste artigo, você vai aprender o que o Get-AdObject
PowerShell cmdlet faz e como usar corretamente este útil AD PowerShell cmdlet para automatizar a criação de relatórios.
tabela de conteúdos
pré-requisitos/Requisitos
Este artigo será uma passagem usandoGet-ADObject
., Se você planeja acompanhar, certifique-se que tem os seguintes pré-requisitos em vigor:
- logado em um Windows 10 PC ligado ao domínio como um usuário com direitos para consultar usuários de AD
- em um Windows Server 2016 ou em um ambiente de diretório ativo mais elevado. O laboratório com o qual vais trabalhar neste artigo chama-se mylab.local.
- Ferramentas de Administração de Servidor Remoto (RSAT) pacote
dica: Se você não tem o RSAT instalado e você tiver a versão mais recente do Windows 10, você pode instalá-lo rapidamente usando o comando PowerShell
Install-WindowsFeature -Name RSAT-AD-PowerShell
.,
Get-ADObject: É Opções e Parâmetros
O objetivo principal de Get-ADObject
cmdlet é para ligar para um ANÚNCIO de controlador de domínio ou Lightweight Directory Service (LDS) de servidor e retornar informações sobre vários objetos do Active Directory.
Para consultar os objetos do AD, o Get-ADObject
cmdlet tem um número de parâmetros, permitindo que você se conectar a diferentes controladores de domínio, procure um catálogo global, autenticar através de credenciais alternativas e, também, especificar filtros de LDAP e o limite de objetos retornados por escopo para uma base de pesquisa.,
Note que, por padrão, o
Get-ADObject
cmdlet só irá devolver um único conjunto de 1000 objectos AD. A melhor maneira de anular esta configuração é usar o parâmetroResultSetSize
especificando o número máximo de objetos a retornar. Se você quiser receber todos os objetos, defina este parâmetro como $Null (valor nulo). Então você pode usar Ctrl+C para parar a consulta e retornar os objetos.,
Para mais informações sobre o Get-ADObject
‘s parâmetros, confira o Get-ADObject
documentação de ajuda.
esboço do projecto de aprendizagem
este artigo ensinar-lhe-á o Get-ADObject
cmdlet PowerShell aplicando-o a um cenário do mundo real. Você aprenderá abordando o cenário explicado nos parágrafos introdutórios.
o cenário
neste artigo, você vai aprender a usar Get-ADObject
para gerar dois relatórios a enviar ao seu gerente., O primeiro relatório irá dividir todas as contas de utilizador em cada departamento. O chefe quer ficheiros CSV separados para cada departamento. A segunda tarefa irá consultar todas as contas de usuário desabilitadas em um OU específico e é Child OUs.,
Ao final do artigo, você vai ser capaz de gerar arquivos CSV que ter o seguinte aspecto:
O Ambiente AD
A unidade organizacional do Active Directory (OU) a estrutura que você vai estar trabalhando com este artigo analisa como abaixo., Pode ver que temos um departamento de pais OU com três filhos chamados Contabilidade, Marketing e isso. Dentro de cada uma dessas crianças estão dois netos chamados usuários e computadores.
- Departamento (OU)
– Contabilidade (UO)
Usuários
– Computadores
– Marketing (UO Aninhada)
Usuários
– Computadores
– ELE (UO Aninhada)
Usuários
– Computadores
de Atalho: Você pode construir essas unidades organizacionais com o
New-ADOrganizationalUnit
cmdlet do PowerShell. Para que um script faça um trabalho rápido, confira o script Create-OU-Structure. ps1.,
Você também estará trabalhando com dezenas de diferentes contas de usuário AD localizadas dentro de cada um dos usuários OUs como mostrado abaixo. Estes nomes foram escolhidos aleatoriamente.
- Contabilidade (accountant_user1-5)
- Marketing (market_user_user1-5)
- (it_user1-5)
Atalho: Se você gostaria de rapidamente criar estas contas de utilizador no interior das referidas unidades organizacionais, baixar e executar a Preencher-AD_Accounts.ps1 script.,
a Criação de Active Directory Relatórios usando Get-ADObject
o Suficiente introdução e informações de fundo sobre o Get-ADObject.
Vamos finalmente começar a aprender este cmdlet do PowerShell funciona no mundo real!
neste primeiro exemplo, você está encarregado de fornecer ao seu gerente um arquivo CSV com um relatório para todas as contas de usuário que existem no departamento de Contabilidade, Marketing e TI.,
compreendendo o parâmetro do filtro
o único parâmetro requerido do Get-ADObject
PowerShell cmdlet éFilter
. Este é um parâmetro é uma maneira de limitar o número de objetos retornados. Uma vez que é um parâmetro necessário, você deve defini-lo mesmo que você gostaria de devolver todos os objetos usando um carácter de caracteres especiais (*
). Isto diz a Get-ADObject
para devolver todos os objetos.
O exemplo mais simples de usar o parâmetroFilter
é retornar todos os objetos em um domínio AD inteiro como abaixo.,
PS51> Get-ADObject -Filter *
você verá o parâmetro Filter
usado para devolver todos os objetos e limitar o escopo dos objetos retornados ao longo deste artigo.
Para mais informações sobre o
Filter
parâmetro da sintaxe, executeGet-Help about_ActiveDirectory_Filter
no console do PowerShell.
Limitar o Escopo da Pesquisa usando o SearchBase Parâmetro
O exemplo que você está trabalhando é um perfeito caso de uso de Get-ADObject
‘s SearchBase
parâmetro., O parâmetro SearchBase
permite que você limite a consulta de pesquisa e, portanto, objetos retornados via Get-ADObject
limitando o escopo a um OU particular.ao limitar o âmbito, isto reduz o tempo que leva para queGet-ADObject
seja executado excluindo outros OUs no AD e visando apenas o OU específico que é relevante para obter os dados de que necessita.neste exemplo, retire todos os utilizadores do anúncio no Departamento pai OU todos os filhos, como em baixo. Isto irá devolver todos os utilizadores no departamento OU e em todas as crianças.,
PS51> Get-ADObject -Filter * -SearchBase 'OU=Department,DC=mylab,DC=local'
alavancando o parâmetro do filtro
a partir de Agora, você é capaz de consultar todos os objetos do usuário no departamento OU e todos os OUs-filhos. Mas isso não é necessário neste momento. Em vez disso, vamos retirar todos os utilizadores da contabilidade primeiro. Uma maneira de fazer isso é realmente usar o parâmetro Filter
em vez de apenas fornecer um valor wildcard.
Para limitar os resultados, use o Filter
valor Department -eq 'Accounting'
., Isto limita os resultados apenas para os objetos no departamento OU que têm um atributo de departamento AD definido para Contabilidade.
pode ver abaixo que está a guardar todos os objectos na variável
. Isto será usado mais tarde.
PS51> $accounting_users = Get-ADObject -SearchBase 'OU=Department,DC=mylab,DC=local' -Filter {Department -eq "Accounting"}
a Saída de Objetos do AD para um Arquivo CSV
Agora que $accounting_users
contém todos os objetos aplicáveis, você pode enviar apenas o Name
e Department
propriedades de cada objeto para o Export-Csv
cmdlet., Este cmdlet cria um novo ficheiro CSV e guarda cada objecto AD como uma linha.
deverá agora ter um ficheiro CSV chamado report_ accounting_ users.csv no seu ecrã, parecendo-se com a imagem em baixo.
Coleta de Outros Objetos de Usuário
Agora que você sabe o básico de como usar Get-ADObject
para encontrar ANÚNCIOS de usuários, estender isso para encontrar os objetos de usuário para os outros departamentos. Você vai usar o mesmo conceito geral que antes.,
Em Primeiro Lugar, encontre todos os usuários do anúncio no escritório de São Francisco.
em seguida, encontre todos os usuários que trabalham no escritório da Flórida. Este exemplo é um pouco diferente porque você está usando as propriedades calculadas deSelect-Object
cmdlet. Isto permite que você transforme o objeto de nome de propriedade de simplesmente st
que vem de Get-ADObject
para um nome mais descritivo State
.,
finalmente, recolher todos os utilizadores de TI. Desta vez, em vez de usar o atributo Department AD, use o parâmetro Filter
para encontrar todos os objetos com um nome começando com ele.
Nota: em Vez de usar
objectClass -eq 'user'
no exemplo anterior, você também poderia ter usado oGet-AdUser
cmdlet.,
Localizar Contas Desactivadas com o Filtro LDAP
No exemplo anterior, você usou o Filter
parâmetro para limitar os objetos retornados pelo Get-ADObject
. Outra maneira de fazer isso é usar o parâmetro LDAPFilter
. Este parâmetro executa a mesma tarefa, mas permite-lhe indicar um filtro através de um texto de pesquisa LDAP., O parâmetro LDAPFilter
é considerado uma opção mais avançada para pesquisar Directório Ativo.
vamos agora criar um relatório para encontrar todos os utilizadores com deficiência na sua organização usando os parâmetros LDAPFilter
e SearchBase
para atingir um OU específico.
The useraccountcontrol:1.2.840.113556.1.4.803:=2 setting is an AD attribute specified for all disabled users in the Active Directory NTDS database. É uma forma de O anúncio sinalizar contas que não estão ativas (logon está desativado)., Aqui estão mais consultas LDAP exemplo que você pode achar útil.
O comando abaixo é executado o filtro LDAP parâmetro usado para mostrar apenas os utilizadores desactivados e, em seguida, cria um relatório usando o Export-CSV
cmdlet como você fez anteriormente.
o resultado final
deverá agora ter cinco ficheiros CSV no seu ecrã prontos para o seu gestor!,
resumo
neste artigo, aprendeu a procurar Directório activo usando o Get-ADObject
PowerShell cmdlet.o que se segue?
para levar o que você aprendeu mais longe, leve este processo de gerar relatórios de anúncios para o próximo nível, exportando os dados para um banco de dados, talvez. Uma vez em um banco de dados, você pode ter os dados de relatório de anúncio acessado usando um site personalizado ou uma aplicação como Microsoft SharePoint. Esta é apenas uma ideia. Há inúmeros outros!,
a capacidade de pesquisar Directório activo é uma técnica fundamental necessária em muitas organizações e que, em última análise, irá poupar-lhe e à sua equipa horas de tempo.
Leitura Adicional
- programas de Directórios activos abundantes: venham e obtenham-no!documentação da Microsoft