Stai cercando un modo rapido per creare un report di Active Directory (AD) utilizzando PowerShell? Sei venuto nel posto giusto! In questo articolo, imparerai come creare report personalizzati degli account utente nel tuo ambiente PUBBLICITARIO utilizzando il cmdletGet-ADObject.

Immagina di lavorare in una startup e di apprendere che la società ha ricevuto finanziamenti dagli investitori per far crescere l’azienda assumendo nuove persone per diverse posizioni., Il tuo manager ti dà una richiesta di fornirle un rapporto sul conteggio testa per ogni ufficio per assicurarsi che il posto di lavoro ha spazio sufficiente ufficio.

Normalmente, è possibile visualizzare manualmente gli account AD utilizzando la console di applicazione ADUC (Utenti e computer) di Active Directory installata sul computer desktop. Tuttavia, l’utilizzo di ADUC richiede in media un minuto per ogni nuovo dipendente per esaminare le informazioni per ciascun account PUBBLICITARIO.,

Si cerca rapidamente in Internet alcune opzioni e si scopre che è possibile automatizzare la raccolta dei dati del report degli ANNUNCI utilizzando un cmdlet PowerShell chiamatoGet-ADObject. In questo articolo, imparerai cosa fa il cmdlet PowerShellGet-AdObject e come utilizzare correttamente questo pratico cmdlet AD PowerShell per automatizzare la creazione di report.

Sommario

Prerequisiti/Requisiti

Questo articolo sarà una procedura dettagliata utilizzando Get-ADObject., Se si prevede di seguire, assicurarsi di avere i seguenti prerequisiti in atto:

  • Connesso a un PC Windows 10 unito al dominio come utente con i diritti per interrogare gli utenti AD
  • In un ambiente Active Directory Windows Server 2016 o superiore. Il laboratorio con cui lavorerai in questo articolo si chiama mylab.locale.
  • Pacchetto RSAT (Remote Server Administration Tools)

Suggerimento rapido: se non si dispone di RSAT installato e si utilizza l’ultima versione di Windows 10, è possibile installarlo rapidamente utilizzando il comando PowerShellInstall-WindowsFeature -Name RSAT-AD-PowerShell.,

Get-ADObject: sono opzioni e parametri

Lo scopo principale del cmdlet Get-ADObject è quello di connettersi a un controller di dominio AD o a un server LDS (Lightweight Directory Service) e restituire informazioni su vari oggetti Active Directory.

Per interrogare gli oggetti AD, il cmdlet Get-ADObject ha una serie di parametri che consentono di connettersi a diversi controller di dominio, cercare un catalogo globale, autenticarsi tramite credenziali alternative e specificare anche filtri LDAP e limitare gli oggetti restituiti dall’ambito per una base di ricerca.,

Si noti che, per impostazione predefinita, il cmdlet Get-ADObject restituirà solo un singolo set di 1000 oggetti AD. Il modo migliore per ignorare questa configurazione è utilizzare il parametro ResultSetSize che specifica il numero massimo di oggetti da restituire. Se si desidera ricevere tutti gli oggetti, impostare questo parametro su $Null (valore null). Quindi puoi usare Ctrl + C per interrompere la query e restituire gli oggetti.,

Per ulteriori informazioni sui parametri diGet-ADObject, consultare la documentazione della guidaGet-ADObject.

Learning Project Outline

Questo articolo ti insegnerà il cmdletGet-ADObject PowerShell applicandolo a uno scenario del mondo reale. Imparerai avvicinandoti allo scenario spiegato nei paragrafi introduttivi.

Lo scenario

In questo articolo, imparerai come usareGet-ADObject per generare due report da inviare al tuo manager., Il primo rapporto sarà abbattere tutti gli account utente in ogni reparto. Il capo vorrebbe file CSV separati per ogni reparto. La seconda attività interrogherà tutti gli account utente disabilitati in una OU specifica ed è figlio OU.,

alla fine dell’articolo, sarete in grado di generare file CSV che di aspetto simile al seguente:

ANNUNCIO di account utente OU
account utente Disabilitato

ANNUNCIO Ambiente

L’unità organizzativa di Active Directory (OU) struttura ti verrà a lavorare con in questo articolo analizza come di seguito., Si può vedere che abbiamo un reparto genitore OU con tre OU figlio chiamato Contabilità, Marketing e IT. All’interno di ciascuno di questi OU figlio ci sono due OU nipote chiamati Utenti e computer.

  • Department (OU)
    – Accounting (OU)
    – Users
    – Computers
    – Marketing (Annidato OU)
    – Users
    – Computers
    – IT (Annidato OU)
    – Users
    – Computers

Shortcut: puoi creare questi OU con New-ADOrganizationalUnit cmdlet PowerShell. Affinché uno script funzioni rapidamente, controlla lo script Create-OU-Structure.ps1.,

Potrai anche lavorare con decine di diversi account utente ANNUNCIO situati all’interno di ciascuno degli utenti OU come mostrato di seguito. Questi nomi sono stati scelti a caso.

  • Contabilità (accountant_user1-5)
  • Marketing (market_user_user1-5)
  • SI (it_user1-5)

Collegamento: Se vuoi creare rapidamente questi account utente all’interno delle predette unità Organizzative, scaricare ed eseguire il Popolano-AD_Accounts.ps1 script.,

Creazione di report di Active Directory utilizzando Get-ADObject

Abbastanza introduzione e informazioni di base su Get-ADObject. Iniziamo finalmente a imparare come funziona questo cmdlet PowerShell nel mondo reale!

In questo primo esempio, hai il compito di fornire al tuo manager un file CSV con un report per tutti gli account utente esistenti nel reparto Contabilità, Marketing e IT.,

Comprensione del parametro del filtro

L’unico parametro richiesto del cmdletGet-ADObject PowerShell èFilter. Questo è un parametro è un modo per limitare il numero di oggetti restituiti. Poiché è un parametro obbligatorio, è necessario definirlo anche se si desidera restituire tutti gli oggetti utilizzando un carattere jolly (*). Questo dice a Get-ADObject di restituire tutti gli oggetti.

L’esempio più semplice di utilizzo del parametro Filter è quello di restituire tutti gli oggetti in un intero dominio AD come di seguito.,

PS51> Get-ADObject -Filter *

Vedrai il parametro Filter utilizzato sia per restituire tutti gli oggetti che per limitare l’ambito degli oggetti restituiti in questo articolo.

Per ulteriori informazioni sulla sintassi del parametroFilter, eseguireGet-Help about_ActiveDirectory_Filter nella console PowerShell.

Limitare l’ambito di ricerca utilizzando il parametro SearchBase

L’esempio con cui stai lavorando è un caso d’uso perfetto per il parametro Get-ADObject SearchBase., Il parametroSearchBase consente di limitare la query di ricerca e quindi gli oggetti restituiti tramiteGet-ADObject limitando l’ambito a un particolare OU.

Limitando l’ambito, questo riduce il tempo necessario per l’esecuzione di Get-ADObject escludendo altre OU in AD e indirizzando solo l’OU specifica rilevante per il recupero dei dati necessari.

In questo esempio, estrai tutti gli utenti AD nel reparto genitore OU e tutti gli OU figlio come di seguito. Questo restituirà tutti gli utenti nel Reparto OU e in tutte le OU figlio.,

PS51> Get-ADObject -Filter * -SearchBase 'OU=Department,DC=mylab,DC=local'

Sfruttando il parametro del filtro

A partire da ora, è possibile interrogare tutti gli oggetti utente nel reparto OU e tutte le OU figlio. Ma questo non è richiesto a questo punto. Invece, facciamo solo tirare fuori tutti gli utenti di contabilità prima. Un modo per farlo è utilizzare effettivamente il parametroFilter piuttosto che fornire solo un valore jolly.

Per limitare i risultati, utilizzare il Filter valore di Department -eq 'Accounting'., Ciò limita i risultati solo agli oggetti nell’UO reparto che hanno un attributo reparto AD impostato su Contabilità.

Puoi vedere sotto che stai memorizzando tutti gli oggetti nella variabile $accounting_users. Questo sarà usato in seguito.

PS51> $accounting_users = Get-ADObject -SearchBase 'OU=Department,DC=mylab,DC=local' -Filter {Department -eq "Accounting"}

l’Output di Oggetti di active directory in un File CSV

Ora che $accounting_users contiene tutte le applicabili oggetti, è possibile inviare solo i tag Name e Department proprietà per ogni oggetto Export-Csv cmdlet., Questo cmdlet crea un nuovo file CSV e memorizza ogni oggetto AD come riga.

Ora dovresti avere un file CSV chiamato report_accounting_users.csv sul desktop guardando come lo screenshot qui sotto.

report_accounting_users.csv

Raccogliere gli altri oggetti utente

Ora che conosci le basi su come usareGet-ADObject per trovare utenti AD, estendilo per trovare gli oggetti utente per gli altri reparti. Userai lo stesso concetto generale di prima.,

Innanzitutto, trova tutti gli utenti dell’ANNUNCIO nell’ufficio di San Francisco.

report_sanfrancisco_office_users.csv

Quindi, trova tutti gli utenti che lavorano nell’ufficio della Florida. Questo esempio è un po ‘ diverso perché stai usando le proprietà calcolate del cmdlet Select-Object. Ciò consente di trasformare il nome della proprietà dell’oggetto da semplicemente st che proviene da Get-ADObject a un più descrittivo State.,

report_florida_state_users.csv

Infine, raccogliere tutti gli utenti IT. Questa volta, invece di utilizzare l’attributo Department AD, utilizzare il parametro Filter per trovare tutti gli oggetti con un nome che inizia con esso.

Nota: invece di usare objectClass -eq 'user'nell’esempio precedente, si poteva usare anche il cmdlet Get-AdUser.,

report_select_users.csv

Ricerca di account disabilitati con il filtro LDAP

Nell’esempio precedente, è stato utilizzato il parametroFilterper limitare gli oggetti restituiti daGet-ADObject. Un altro modo per farlo è usare il parametroLDAPFilter. Questo parametro esegue la stessa attività ma consente di specificare un filtro tramite una stringa di ricerca query LDAP., Il parametroLDAPFilter è considerato un’opzione più avanzata per la ricerca di Active Directory.

Creiamo ora un report per trovare tutti gli utenti disabilitati nella tua organizzazione utilizzando i parametriLDAPFilter eSearchBase per indirizzare una OU specifica.

L’impostazione useraccountcontrol:1.2.840.113556.1.4.803:=2 è un attributo AD specificato per tutti gli utenti disabili nel database NTDS di Active Directory. È un modo per gli ANNUNCI di contrassegnare gli account che non sono attivi (l’accesso è disabilitato)., Ecco altre query LDAP di esempio che potresti trovare utili.

Il comando seguente esegue il parametro del filtro LDAP utilizzato per mostrare solo gli utenti disabili e quindi crea un report utilizzando il cmdletExport-CSV come hai fatto in precedenza.

report_disabled_users.csv

Il risultato finale

Ora dovresti avere cinque file CSV sul desktop pronti per il tuo manager!,

Sommario

In questo articolo, è stato appreso come cercare Active Directory utilizzando il Get-ADObject cmdlet PowerShell.

Quale sarà il prossimo?

Per prendere ciò che hai imparato più lontano, prendere questo processo di generazione di report pubblicitari al livello successivo esportando i dati in un database forse. Una volta in un database, è possibile accedere ai dati del report degli ANNUNCI utilizzando un sito Web personalizzato o un’applicazione come Microsoft SharePoint. Questa è solo un’idea. Ce ne sono innumerevoli altri!,

La possibilità di cercare Active Directory è un skillset fondamentale necessaria in molte organizzazioni e uno che alla fine risparmiare voi e il vostro team ore di tempo.

Ulteriori letture

  • Script di Active Directory a bizzeffe: vieni a prenderlo!
  • Documentazione Microsoft