muicache! – Installazione e guida all’uso
muicache!, come anticipato nell'articolo di presentazione del progetto, è composto principalmente da due componenti/script: "client" e "server". La parte "client" dovrà essere eseguita da tutti gli utenti della rete in fase di login e si occuperà di raccogliere una serie di informazioni prendendo come base di partenza le voci contenute nella chiave "HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache"; i dati raccolti verranno poi memorizzati sotto forma di file XML all'interno di una cartella condivisa su di un qualsiasi server della rete, in questo modo la componente "server" sarà poi in grado di elaborarli allo scopo di popolare un database e creare un report. Come potete vedere il processo è piuttosto semplice e per metterlo in funzione saranno quindi sufficienti una banale Logon Script Policy ed una cartella condivisa.
Installazione della componente "server"
Scaricate l'archivio muicache.zip contenente tutti i file che compongono il toolkit.
Scaricate l'utility Microsoft fciv.exe che non può essere inclusa nel suddetto pacchetto per ragioni di copyright, questo è il link per il download diretto.
Prendete il controllo del server che ospiterà i dati muicache!, create una nuova cartella (percorso e nome non hanno importanza - per comodità "C:\muicache") e copiatevi dentro i seguenti file:
- CollectData&XLSOutput.vbs
- exclusions.txt
- muicache.mdb
La cartella va condivisa con permessi di sharing "Full Control Everyone", per quanto riguarda invece i permessi di protezione vi suggerisco di essere molto restrittivi ed impostarli come segue (comando copia-incolla):
xcacls c:\muicache /G Administrators:F /Y | xcacls c:\muicache /G SYSTEM:F /E /Y | xcacls c:\muicache /G "Domain Users":XW /E /Y | xcacls c:\muicache /G "CREATOR OWNER":XW /E /Y
In realtà potreste semplicemente limitarvi ad assegnare il permesso di "Modifica" al gruppo "Domain Users" ma così facendo non sareste in grado di garantire la sicurezza/privacy del database e dei dati in esso contenuti.
Per chi volesse agire manualmente senza utilizzare il comando di cui sopra, la protezione andrebbe impostata come illustrato dai seguenti screenshot
In questo modo impedirete agli utenti "Domain Users" di curiosare tra i file contenuti nella cartella.
- CollectData&XLSOutput.vbs è lo script "server", si occupa di importare i dati all'interno del database muicache.mdb ed esportarli creando un report XLS
- exclusions.txt è un file di testo che verrà utilizzato da CollectData&XLSOutput.vbs per filtrare il report XLS, maggiori dettagli nella prossima sezione
- muicache.mdb è il database utilizzato da CollectData&XLSOutput.vbs
Installazione della componente "client"
Estraete RegToXml.vbs in una cartella temporanea ed apritelo con un editor di testo, per far sì che questo script funzioni correttamente dovete modificare la variabile "DestPath" che trovate a riga 21, il suo valore deve rispecchiare il percorso UNC alla cartella condivisa che avete creato poco fa.
Vi ricordo che un percorso UNC, come potete vedere nello screenshot, è così composto:
\\ip_server\nome_condivisione
Se lo ritenete necessario potete modificare anche la variabile "ScheduleEvery" che trovate a riga 20, il suo valore esprime il numero minimo di giorni che devono trascorrere prima che lo script collezioni nuovamente i dati; il valore predefinito "1" significa che RegToXml.vbs verrà eseguito al massimo una volta al giorno, così come il valore "7" sta ad indicare una singola esecuzione alla settimana. Impostare invece il valore "0" farà in modo che lo script venga eseguito ogni volta che gli utenti effettuano il login, quindi anche più volte durante una normale giornata lavorativa.
Una volta fatte le dovute modifiche, salvate e chiudete l'editor di testo.
Ora potete procedere con la creazione della Logon Script Policy necessaria per imporre l'esecuzione di RegToXml.vbs a tutti gli utenti; assieme ad esso dovrete distribuire anche lo strumento fciv.exe necessario per il calcolo degli hash.
Create un nuovo oggetto Group Policy ed applicatelo ad un contenitore di utenti oppure se preferite all'intero dominio.
Aprite l'editor GPO e recatevi nella sezione:
User Configuration\Windows Settings\Scripts (Logon/Logoff)
fate doppio clic sulla voce "Logon" che trovate nel pannello di destra e dovreste trovarvi in una situazione simile a quella illustrata dal seguente screenshot
Premete il pulsante "Show Files", si aprirà una finestra di Esplora Risorse che mostra il contenuto di una cartella vuota, copiate qui dentro i file fciv.exe e RegToXml.vbs.
Chiudete la finestra di Esplora Risorse e premete il pulsante "Add", si aprirà una nuova finestra di dialogo nella quale vi verrà richiesto di specificare due valori: "Script Name" e "Script Parameters", il primo sarà "cscript.exe" ed il secondo "RegToXml.vbs"
Premete "OK" e chiudete tutte le finestre, muicache! è ora installato ed inizierà a collezionare i dati a partire dai prossimi login utente. I dati raccolti appariranno nella cartella condivisa sotto forma di file XML, nello specifico verrà creato un file per ogni combinazione utente/computer
Video installazione passo-passo
Guida all'uso: database, report e filtri
I dati raccolti dallo script RegToXml.vbs e memorizzati all'interno della cartella condvisa possono essere importati nel database muicache.mdb in qualsiasi momento, tutto ciò che dovrete fare è eseguire CollectData&XLSOutput.vbs tramite doppio clic oppure tramite prompt dei comandi:
cscript.exe "c:\muicache\CollectData&XLSOutput.vbs"
Eseguendo lo script con il motore "cscript.exe" verrà visualizzato a video lo stato di avanzamento dell'importazione dati, con "wscript.exe" (attivato dal doppio clic) invece non verrà fornito nessun tipo di feedback e dovrete semplicemente attendere l'uscita del processo. Sui sistemi a 64 bit è necessario utilizzare i motori WSH ("cscript.exe" e "wscript.exe") presenti nella cartella "C:\Windows\SysWOW64" al posto di quelli predefiniti situati in "C:\Windows\System32"
Potreste anche valutare la possibilità di automatizzarne l'esecuzione ad intervalli regolari di tempo per mezzo di una operazione pianificata, il database viene popolato in maniera incrementale quindi non esiste la possibilità che vengano creati record duplicati.
Al termine della procedura di importazione dati verrà generato un report in formato XLS (muicache.xls) consultabile con Microsoft Excel oppure OpenOffice.org Calc, ne trovate un esempio all'interno dei video presenti nel post di presentazione del progetto.
Ogni riga (record) del report è composta da una serie di informazioni (campi) che si riferiscono ad un file che compare nella chiave "HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache" di un determinato utente collegato ad un determinato computer:
- computer, nome del computer sul quale è stato eseguito il file
- user, nome dell'utente che ha eseguito il file
- mui_name, percorso completo al file eseguito
- mui_desc, descrizione del file eseguito
- mui_version, versione del file eseguito
- mui_hash, hash MD5 del file eseguito
- first_detection, data del primo XML in cui è comparso il file eseguito
- last_detection, data dell'ultimo XML nel quale compare il file eseguito
- xmldate, data dell'ultimo XML disponibile
- xmlname, nome dell'XML dal quale sono stati prelevati i dati relativi al file eseguito
Per permettervi di ottenere una reportistica più breve e facile da consultare muicache! mette a disposizione una funzionalità di filtro permanente che vi consente di escludere dalla visualizzazione tutti quei record che contengono stringhe di testo specifiche nei campi "mui_name" e "mui_desc". Il filtro è costituito dal file "exclusions.txt" e può essere popolato da semplici parole oppure percorsi completi allo scopo di escludere la visualizzazione di tutti quei programmi che considerate "autorizzati", un esempio lo potete vedere nella seguente immagine:
Va sottolineato che filtrare i dati non equivale ad eliminarli, un record filtrato viene semplicemente escluso dal report e può essere reintegrato in qualsiasi momento semplicemente rimuovendo da "exclusions.txt" tutte le voci ad esso correlate.
Print This • Email this • Twit This! • Add to del.icio.us • Share on Facebook • Digg This! • Stumble It! • AddThis! • Share on Segnalo Alice • Share on OKNotizie
4 Febbraio 2010 alle 18:05
Salve, sarebbe molto interessante, ma ho incontrato il seguente problema.
IO ho gia una logon policy da cui chiamo altri vbs ma sono wscript.
Quindi ho messo una cosa del tipo
Set shell=createobject("wscript.shell")
shell.run "%LOGONSERVER%\SYSVOL\domain.local\scripts\muicache.vbs"
Set shell=nothing
ho fatto varie prove, ho anche cercato di lanciarlo usando cscript...
ma non ne vuole sapere di funzionare...
4 Febbraio 2010 alle 19:24
@ filippo
secondo me la cosa più semplice in questo caso è creare una logon policy aggiuntiva in modo da poter utilizzare liberamente il motore cscript