lunedì 24 settembre 2018

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

Buongiorno a tutti, oggi continuiamo a parlare dei mitici strumenti batch per l'interazione con Active directory services: dsquery, dsget, dsadd, dsmod.

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

Prima parte
Seconda parte
Terza parte
Quarta parte

Oggi parliamo di DSGET

Dsget è uno strumento utilissimo per ottenere dettagli circa un oggetto active directory.

Ha diverse "flavour":
dsget user
dsget OU
dsget group
dsget contact
dsget ....



In sintesi, per ogni "gusto" di dsget si possono ottenere diverse informazioni circa uno o più oggetti di una determinata tipologia.
Per un elenco delle proprietà che possono essere recuperate, per ciascun tipo di oggetto, potete lanciare il comando seguito da /? o -? .Come ad esempio:
dsget group -?

Chiaramente non andremo a sviscerare tutte le possibilità offerte da dsget, ma prenderemo ad esempio una situazione in cui è necessario ottenere delle informazioni in modo automatico circa un oggetto di AD di tipo user.

Monitorare un utente o un set di utenti

Mettiamo il caso di dover periodicamente controllare una o più proprietà di un utente o di un set di utenti, ottenendo un elenco di questi utenti e le corrispondenti proprietà che deve finire in un report.

Per fare questo possiamo utilizzare il comando dsget user, passando come parametro il domain name dell'utente (il suo DN. Per sapere cosa è il DN e come cercarlo con dsquery in base al filtro desiderato, rimando al primo articolo di questa mini-serie).

Ecco un esempio:
dsget user "CN=Castelli Diego,OU=Personale,OU=Utenti,OU=VERONA,DC=Miodominio,DC=local" -fn -ln -mobile -hmdrv -mustchpwd





in questo esempio recuperiamo alcune proprietà dell'oggetto utente :

  • fn : First Name
  • ln : Last Name
  • mobile: numero di cellulare
  • hmdrv: Home Drive
  • mustchpwd: se l'utente è tenuto a modificare la password all'accesso successivo.


Bene, adesso facciamo finta di dover monitorare tutti gli utenti che sono sotto una determinata OU, su base periodica, con il nostro script.
Siccome con dsget user SENZA specificare il DN utente è possibile ottenere TUTTI gli utenti di AD, ma a noi interessano SOLO quelli di una specifica OU, facciamo "parlare" i comandi dsquery e dsget, utilizzando la pipe, come segue:

dsquery user "OU=Personale,OU=Utenti,OU=VERONA,DC=Miodominio,DC=local" | dsget user -fn -ln -mobile -hmdrv -mustchpwd

ed ecco che otteniamo un bell'elenco:



Questo è solo un esempio sciocco di quello che è possibile fare con dsget... il limite è, come al solito, la fantasia....

Happy Scripting.

P.S.

Le proprietà che si possono ottenere sono davvero tante. Incollo qui l'output del comando dsget user -?, per completezza.

C:\Windows\system32>dsget user -?
Descrizione:  visualizza le varie proprietà di un utente nella directory.
              Esistono due varianti del comando. La prima variante
              consente di visualizzare le proprietà di più utenti. La
              seconda variante consente di visualizzare le informazioni
              sull'appartenenza al gruppo di un singolo utente.

Sintassi:   dsget user [-dn] [-samid] [-sid] [-upn] [-fn] [-mi]
            [-ln] [-display] [-fnp] [-lnp] [-displayp]  [-effectivepso]
            [-empid] [-desc] [-office] [-tel] [-email]
            [-hometel] [-pager] [-mobile] [-fax] [-iptel] [-webpg]
            [-title] [-dept] [-company] [-mgr] [-hmdir] [-hmdrv]
            [-profile] [-loscr] [-mustchpwd] [-canchpwd]
            [-pwdneverexpires] [-disabled] [-acctexpires]
            [-reversiblepwd] [-part [-qlimit] [-qused]]
            [{-s | -d }] [-u ]
            [-p { | *}] [-c] [-q] [-l] [{-uc | -uco | -uci}]

            dsget user [-memberof [-expand]]
            [{-s | -d }] [-u ]
            [-p { | *}] [-c] [-q] [-l]
            [{-uc | -uco | -uci}]


Parametri:

Valore              Descrizione
      Obbligatorio/stdin. Nomi distinti (DN) di uno
                    o più utenti da visualizzare. Se omessi, gli oggetti
                    di destinazione verranno recuperati dall'input standard
                    (stdin) per supportare il piping dell'output di un altro
                    comando come input di questo comando. Confrontare con il
                    specificato di seguito.
-dn                 Mostra il DN dell'utente.
-samid              Mostra il nome account SAM dell'utente.
-sid                Mostra l'ID di sicurezza (SID) dell'utente.
-upn                Mostra il nome dell'entità dell'utente.
-fn                 Mostra il nome dell'utente.
-mi                 Mostra le iniziali dell'utente.
-ln                 Mostra il cognome dell'utente.
-display            Mostra il nome visualizzato dell'utente.
-fnp                Mostra il nome fonetico dell'utente.
-lnp                Mostra il cognome fonetico dell'utente.
-displayp           Mostra il nome visualizzato fonetico dell'utente.
-effectivepso       Mostra l'oggetto impostazioni password effettive
                    dell'utente.
-empid              Mostra l'ID dipendente dell'utente.
-desc               Mostra la descrizione dell'utente.
-office             Mostra l'ubicazione dell'ufficio dell'utente.
-tel                Mostra il numero di telefono dell'utente.
-email              Mostra l'indirizzo di posta elettronica dell'utente.
-hometel            Mostra il numero di telefono dell'abitazione dell'utente.
-pager              Mostra il numero del cercapersone dell'utente.
-mobile             Mostra il numero del telefono cellulare dell'utente.
-fax                Mostra il numero di fax dell'utente.
-iptel              Mostra il numero di telefono IP dell'utente.
-webpg              Mostra l'indirizzo URL della pagina Web dell'utente.
-title              Mostra la posizione dell'utente.
-dept               Mostra il reparto dell'utente.
-company            Mostra le informazioni sulla società dell'utente.
-mgr                Mostra il manager dell'utente.
-hmdir              Mostra la home directory dell'utente.
                    Visualizza la lettera di unità alla quale è associata
                    la home directory dell'utente se il percorso
                    di tale directory è un percorso UNC.
-hmdrv              Mostra la lettera dell'unità home
                    dell'utente se la home directory è un percorso UNC.
-profile            Mostra il percorso del profilo dell'utente.
-loscr              Mostra il percorso dello script di accesso dell'utente.
-mustchpwd          Indica se l'utente deve cambiare la password
                    all'accesso successivo. Visualizza Yes o No.
-canchpwd           Indica se l'utente può cambiare la password.
                    Visualizza Yes o No.
-pwdneverexpires    Indica se la password utente non ha scadenza.
                    Visualizza Yes o No.
-disabled           Indica se l'account utente è disabilitato per
                    l'accesso o meno. Visualizza Yes o No.
-acctexpires        Mostra la data di scadenza dell'account utente.
                    Valori visualizzati: una data se è stata impostata una
                    scadenza per l'account o la stringa "never"
                    se l'account non ha scadenza.
-reversiblepwd      Indica se è consentita l'archiviazione della password
                    utente tramite crittografia reversibile (yes o no).
          Obbligatorio. DN del gruppo da visualizzare.
-memberof           Visualizza i gruppi di cui l'utente è membro.
-expand             Visualizza un elenco di gruppi espanso in
                    modo ricorsivo di cui l'utente è membro.
{-s | -d }
                    -s Esegue la connessione all'istanza del
                    controller di dominio Active Directory o di AD LDS
                    con il nome .
                    -d Esegue la connessione a un controller
                    di dominio Active Directory nel dominio .
                    Impostazione predefinita: un controller di dominio
                    Active Directory nel dominio di accesso.
-u      Esegue la connessione come .
                    Impostazione predefinita: l'utente connesso.
                    Il nome utente può essere specificato come nome utente,
                    dominio\nome utente o nome dell'entità utente (UPN).
-p { | *} Password dell'utente . Se si immette *,
                    verrà richiesta una password.
-c                  Modalità operativa continua: segnala gli errori ma
                    continua con l'oggetto successivo nell'elenco degli
                    argomenti quando vengono specificati più oggetti di
                    destinazione. Senza questa opzione, il comando termina
                    al primo errore.
-q                  Modalità non interattiva: elimina tutto l'output
                    diretto all'output standard.
-L                  Visualizza le voci del set dei risultati della ricerca
                    in formato elenco.
                    Impostazione predefinita: formato tabella.
{-uc | -uco | -uci} -uc Specifica che l'input da o l'output verso una pipe
                                            è in formato Unicode.
                        -uco Specifica che l'output verso una pipe o un file
                        è in formato Unicode.
                        -uci Specifica che l'input da una pipe o un file
                        è in formato Unicode.
-part
                    Esegue la connessione a una partizione di directory
                    il cui nome distinto è .
-qlimit             Visualizza la quota effettiva dell'utente all'interno
                    della partizione di directory specificata.
-qused              Visualizza la quantità di quota utilizzata dall'utente
                    all'interno della partizione di directory specificata.

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.