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.
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.
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! :-)