lunedì 17 settembre 2018

dsget, dsquery, dsadd, dsmod - strumenti sottovalutati se siete amministratori di rete - prima parte

Buongiorno a tutti, oggi e per una serie di appuntamenti vi vorrei parlare di alcuni strumenti batch troppo spesso sottovalutati: i vari comandi dsxxx

Ecco i comandi di cui parleremo:

  • dsquery
  • dsget
  • dsadd
  • dsmod

ed ecco l'elenco degli articoli di questa mini-serie:

Prima parte
Seconda parte
Terza parte
Quarta parte



Non parleremo di TUTTE le loro funzionalità (sono davvero tante), ma daremo una panoramica di alcuni comandi che ci possono aiutare nella nostra "vita da syasadmin".

in questo articolo impareremo come:

  • che cosa è un distinguishedname
  • ottenere il distinguished name di un utente, di un gruppo o di una organizational unit via batch, filtrando per vari parametri.
  • recuperare diverse proprietà dell'oggetto in questione con dsget 

per prima cosa un po' di premesse:

Che cos'è un distinguishedname?

Un distinguishedname è un identificativo univoco di un oggetto all'interndo di Active Directory.
In pratica, definendo nel nome anche il suo percorso in termini di OU e di domini, arriviamo a definire un oggetto in base alla sua posizione in AD ed al suo Common name (nome comune).
E' composto da 

  • Componente di dominio (DC)
  • Organizzazione (O)
  • Unità organizzativa (o Organizational Unit - OU)
  • Common name (CN)
ecco un esempio di DistinguishedName:
CN=Castelli Diego,OU=Personale,OU=Utenti,DC=Miodominio,DC=local

oggi parleremo solo di "dsquery", rimando alle prossime puntate invece:


  • dsget
  • dsadd
  • dsmod
ma procediamo:

Come interrogare Active Directory per trovare tutti i DistinguishedName che corrispondono ad un determinato filtro con DSQUERY.

La sintassi è semplicissima, basterà lanciare il comando dsquery, specificare il tipo di oggetto che vogliamo interrogare (user, group, ou, ...o addirittura * per trovare tutti i tipi di oggetto) e specificare il filtro che vogliamo usare.

Per maggiori dettagli vi invito a lanciare il comando :

dsquery /?

Fingiamo ad esempio di voler trovare tutti gli utenti che hanno uno username che comincia con "gio". Ci basterà scrivere:

dsquery user -samid gio*


Ed ecco comparirci una lista di tutti i DistinguishedName gli utenti che hanno uno username che comincia per gio.

come filtro possiamo specificare anche:

-name = Trova utenti il cui nome corrisponde al filtro.
-namep = nome fonetico (mai usato, personalmente).
-desc  = filtra sulla descrizione dell'utente.
-upn = filtra per User Principal Name (es. Mario.Rossi@miodominio.local).
-inactive nnn = Trova utenti che non fanno login da almeno nnn settimane.
-stalepwd nnn =  Trova utenti che non modificano la password da almeno nnn giorni.
-disabled = Trova utenti con account disabilitato.


altre opzioni

Oltre a filtrare per caratteristiche dell'oggetto utente, possiamo filtrare il percorso in AD, specificare che si tratta di una ricerca in tutto il subtree oppure per un livello solo di "nesting"

ad esempio:
dsquery user "OU=Personale,OU=Utenti,DC=miodominio,DC=local" -scope onelevel -samid gio*

 troverà tutti gli utenti con username che comincia con gio, ma SOLO un livello sotto la OU indicata...

Per trovare oggetti diversi dagli utenti, come ad esempio OU, computer, contatti, server, siti di AD, subnet dei siti etc...

...esplorate le opzioni con dsquery /?


HAPPY SCRIPTING!




Nessun commento:

Posta un commento

I commenti sono soggetti a moderazione, prima di essere pubblicati.

Qualsiasi contenuto illecito, immorale o che io ritenga (arbitrariamente) offensivo od inappropriato, verrà cancellato.