Dsquery Identificazione di “Inactive computer” e spostamento in una OU dedicata

Nella normale gestione di un’infrastruttura AD ci si trova a dover gestire i vari oggetti, per lo più computer, che con l’andare del tempo risultano inattivi.
Ad esempio per la rimozione di un PC dalla rete/dominio senza aver eseguito il Dis-Join in modo corretto.
Tramite l’utility DSQUERY è possibile identificare i vari oggetti presenti in AD e manipolarli.

Ad esempio identificare gli oggetti “computer” che risultano inattivi parametrizzando una timeline, ossia definendo un numero N di settimane trascorse dall’ultimo contatto.

  • – dsquery computer -inactive 200 -limit 0

in questo caso N ci restituisce gli oggetti il cui che risultano “inattivi” da più di 200 settimane.

E’ possibile redirigere l’output del comando con >> percorsonomefile in modo da ottenere una lista su file, da  utilizzare successivamente per ulteriori controlli automatici.

Il valore in AD che viene ad essere interrogato dall’utility DSQUERY è LastLogonTimestamp

Identificati i vari client inattivi, prima di eliminarli è consigliabile sopostarli in una OU creata appositamente e, prima della rimozione definitiva disabilitarli, in modo da poter riattivare l’oggetto in caso di rilevazione errata.

Comando per lo spostamento automatico degli oggetti rilevati con DSQUERY

For /f “Tokens=*” %a in (‘dsquery computer -inactive 200 -limit 0’) do dsmove %a -newparent “OU=ComputerInactive100,DC=domain,DC=local”

Prima di procedere all’eliminazione definitiva è anche consigliabile controllare che i vari oggetti non siano effettivamente presenti.

Verificare che il DNS non abbia più occorrenze, questo è abbastanza facile in domini dove è presente un DHCP e dove le registrazioni in DNS avvengono in modo automatico. E’uno scenario comune per le workstation, meno per i server.

Uno script in Powershell che può risultare utile allo scopo è il seguente

$SourcePath = get-content C:admanagementComputers-inactive200.txt
$LogFile = “C:admanagementcomputers-inactive100.log” # Percorso del file di Log
foreach ($hostname in $SourcePath)
      {
      Resolve-DnsName $hostname |out-file $LogFile -Append
       }

“esegue una richiesta DNS a partire da un elenco di host contenuto in un file e riporta nel file di log gli host presenti, per differenza quelli non riportati non sono presenti in DNS.”

Una ulteriore verifica può essere effettuata con un ulteriore script Powershell che sempre a partire da un elenco di host contenuto in un file, controlla se il computer è presente, acceso e ne registra in un file l’output.
Eseguendo questo cmd-let da una workstation con credenziali di dominio valide, automaticamente si ha la conferma che il PC è ancora in join con il dominio.

$SourcePath = get-content C:admanagementComputers-inactive100-listjoined.txt
$LogFile = “C:admanagementcomputers-inactive100-listjoined.log” # Percorso del file di Log
foreach ($hostname in $SourcePath)
     {
     Add-Content -path $logFile -value $hostname
     Get-WmiObject -Class Win32_ComputerSystem -ComputerName $hostname |out-file $LogFile -Append
     }

in questo caso se il pc è presente ed acceso e l’output del comando è il seguente

Domain : domain.loc
Manufacturer : Acer
Model : Veriton M265
Name : WORKSTATION1
PrimaryOwnerName : Owner Name
TotalPhysicalMemory : 2137174016

In conclusione incrociando i dati ottenuti dalla ricerca in AD con DSQUERY, la ricerca di queste postazioni in DNS e l’ultima verifica tramite WMI si può rgionevolemte essere sicuri che un PC si possa effettivamente cancellare da AD.

per approfondimenti:
http://blogs.technet.com/b/askds/archive/2009/04/15/the-lastlogontimestamp-attribute-what-it-was-designed-for-and-how-it-works.aspx

https://technet.microsoft.com/en-us/library/cc732952.aspx

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...