Active Directory: conteggio dei PC registrati (VBS)

| |

Si tratta di uno script molto rapido, estremamente “sporco” e senza alcun controllo che permetta di evitare errori. Ora che vi ho detto i contro, posso parlarvi del semplice e unico PRO: contare in un solo colpo tutti i PC registrati in un dominio LDAP a prescindere dalla OU dove l’amministratore per ragioni di assegnazione policy o pura organizzazione logica ha deciso di spostare le macchine.

Windows-Server-Active-Directory

Il codice originale è farina del sacco del solito ScriptingGuy, un vecchio ma funzionante articolo del 2006: blogs.technet.com/b/heyscriptingguy/archive/2006/01/27/how-can-i-count-the-number-of-computers-in-a-domain.aspx

Io non ho fatto altro che sostituire i campi dichiarati in modo assoluto con due objArgs così che da un command si possa passare l’intero dominio (nel mio caso specifico ho molti domini nome.local / nome.it / nome.com):

set WshShell = CreateObject("WScript.Shell")
set objArgs = WScript.Arguments
if objArgs.Count > 1 Then
Messaggio = msgbox ("Utilizzo dello script da riga di comando:" & vbCrLf & "ContatorePC.vbs dominio.tld " & vbCrLf & vbCrLf & "esempio: ContatorePC.vbs rossi.local", vbInformation, "")
wscript.quit
else
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT Name FROM 'LDAP://dc="& objArgs(0) &",dc=" & objArgs(1) & "' WHERE objectCategory='computer'"
Set objRecordSet = objCommand.Execute
Wscript.Echo objRecordSet.RecordCount
end if

L’utilizzo è quindi estremamente banale, dal prompt dei comandi richiamate lo script e subito dopo inserite dominio ed estensione, il risultato (a meno di errori) consisterà in un popup con il numero di PC calcolati, inutile dire che se il numero è 0 qualcosa è andato storto, vero? :-)

Ci sono miriadi di tool o script migliori e lo so bene, questo è letteralmente un “prendi e utilizza” a fini di conteggio puro e crudo nel caso in cui ce ne fosse bisogno.

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Oldest
Newest Most Voted
Inline Feedbacks
View all comments