Tag Archive - Regedit

Asus: conoscere e rimuovere i Crapware

Se c’è una cosa che odio profondamente, è la folta presenza di software preinstallati sulle macchine che ciascuno di noi può trovare nelle catene di grande distribuzione o nei negozi specializzati sparsi per la propria città. Ci sono accordi tra i produttori / assemblatori di hardware e aziende di sviluppo che non fanno altro che danneggiare l’utente finale, propinandogli una serie di crapware assolutamente inutili, che occupano spazio su disco e memoria RAM nel caso in cui vengano lasciati in avvio automatico.

Per capirci:

Per crapware si intende, in gergo informatico un software di scarso valore fornito come bundle preinstallato su un PC; in una accezione più generale si include anche il software fornito con componenti elettronici ed installato assieme ai driver. La definizione di crapware è in realtà molto vaga e dipende dalle preferenze dell’utente.

it.wikipedia.org/wiki/Crapware

Tra le tante, ASUS non fa eccezione alcuna per la quantità di software inutile o facilmente sostituibile che sono riuscito a trovare su una delle loro ultime macchine (questa, per capirci). Ho preparato il PC cercando di pulire quanto più possibile l’installazione di default del sistema. Voglio quindi dedicare questo articolo al riconoscimento delle applicazioni disinstallabili spiegandovi brevemente il perché.

Esperienze precedenti

Prima di intraprendere la selvaggia disinstallazione di software, occorrerebbe sempre informarsi riguardo ciò che vorremmo togliere di mezzo. In questi casi (come in tanti altri) Google aiuta parecchio, fornendo risultati validi (a patto di iniziare una ricerca fatta di termini validi). Facendo riferimento al mio caso specifico ho trovato due buoni riferimenti di partenza che mi hanno aiutato a capire cosa potevo toccare e cosa no:

Partendo da questa base, mi è poi bastato fare qualche altra veloce ricerca riguardante il software non catalogato dai due precedenti collegamenti, e scegliere quindi il da farsi per consegnare una macchina sufficientemente pulita.

Cosa ho rimosso

Trattandosi di un portatile dedicato prevalentemente al lavoro e alla navigazione (roba molto standard quindi) ho rimosso tutta la parte “Gamepark” (Asus Games, ndr) relativa al gioco. E’ facilmente individuabile in quanto il produttore del software è sempre lo stesso: Oberon Media Inc. Da Start / Pannello di Controllo / Programmi-Disinstalla un programma potrete facilmente procedere con le disinstallazioni una dopo l’altra.

Ho preferito poi rimuovere Nuance PDF Reader e inserire il solito Adobe Reader, questo solo ed esclusivamente per questione di abitudine dell’utilizzatore finale. Nonostante il visualizzatore caricato di default fosse già valido, qui sta a voi decidere cosa dare in mano all’utente finale, quello che più è abituato ad utilizzare affinché non abbia problemi durante il primo utilizzo.

Da qui in poi è tutto un software ASUS, direttamente sviluppato dalla casa o custom preso e personalizzato da terze parti:

Il perché -almeno nel mio caso- è presto detto (in ordine di citazione del software come qui sopra): non serve personalizzare la schermata di avvio del computer al boot, non serve uno screensaver personalizzato dall’azienda, non serve effettuare l’autenticazione tramite riconoscimento facciale (almeno fino a quando non sarà nettamente migliorata), non serve vedere contenuti multimediali a pagamento dal catalogo Asus, non serve tenere dati in cloud (fino a 2 GB con l’account gratuito di Asus) ed infine non serve avere un software in grado di migrare i dati da un precedente computer, solo ed esclusivamente perché si partiva da zero.

Vuoi per dubbio, vuoi perché ci potrebbe essere una necessità futura, ho deciso di non andare a toccare nient’altro facente parte della suite software data in dotazione con la macchina.

Un colpo di spugna anche al registro

Prima di concludere date un’occhiata al registro di sistema, sotto la HKEY Local Machine troverete in esecuzione (Software\Microsoft\Windows\CurrentVersion\Run, ndr) un “Setwallpaper” che punterà a “c:\programdata\SetWallpaper.cmd“, chiaramente eliminabile ;-)

Se avete altri suggerimenti l’area commenti è a vostra totale disposizione. E ricordate di fare il backup della macchina prima di consegnarla, questo tipo di PC non viene fornito con i DVD di ripristino!

Mappare una stampante passando da regedit

Problema che difficilmente capiterà ai computer portatili o ai pc fissi degli utenti "casalinghi" ma che potreste ritrovarvi a combattere spesso nel caso in cui abbiate a che fare con centinaia di PC di una rete aziendale “molto variegata“: mappare una stampante di rete non è sempre cosa banale e funzionante al primo colpo.

In una casistica un po’ anomala, nel caso in cui non abbiate a disposizione una stampante di rete (nativa) o un print server che possa colmare la lacuna, vi troverete quasi certamente in una situazione simile:

Sarà necessario passare dal PC1 (che dovrà sempre rimanere acceso) che condividerà la stampante per gli altri utenti della rete locale e permetterà il passaggio dei dati. Nel caso in cui per qualche strano motivo il PC2 non riesca a collegarsi in modo automatico alla stampante installata sul PC1, esiste una procedura abbastanza semplice che si mette in pratica tramite Regedit.

Aprire il registro del PC2 (da locale o da remoto) e in HKEY_USERS individuare il GUID dell’utente che dovrà collegarsi alla stampante condivisa. Per riconoscerlo basta dare una occhiata ai permessi facendo clic con il tasto destro e selezionando Autorizzazioni, come in immagine:

Individuare il GUID dell'utente - Clicca per ingrandire

Le stampanti connesse si trovano sotto \Printers\Connections:

Stampanti mappate sul PC analizzato

A questo punto sarà necessario fare clic con il tasto destro su Connections e creare una nuova chiave con questa sintassi:


,,nome_server,nome_stampante

come nella seconda figura pubblicata qualche riga più sopra (sotto la copertura grigia c’è il nome del server o il suo indirizzo IP dove la stampante è fisicamente collegata ed installata). Fate attenzione al nome della stampante: è quello reale e non quello assegnato alla condivisione, potete vederlo anche esplorando la cartella Stampanti e fax del PC / server che ospita la stampante:

Cartella Stampanti e fax sul server

All’interno della nuova chiave vanno creati due valori di tipo stringa:

  • Provider: inserite al suo interno win32spl.dll
  • Server: inserite il percorso UNC del server di stampa (per capirci: \\IPSERVER oppure \\NOMESERVER)

Fatto ciò la stampante sarà immediatamente visibile all’interno della vostra cartella Stampanti e fax, provate a lanciare una stampa di prova, se avrete seguito il passo-passo alla lettera dovreste ottenere il risultato voluto ;)

Sophos: mancata apertura di IE8

Giusto ieri mattina un cliente mi ha contattato per propormi una problematica che inizialmente non sembrava essere legata a Sophos Antivirus: dopo un roll-out di aggiornamenti sui loro Windows Vista X64, Internet Explorer 8 (appena installato) non era in grado di aprirsi.

Dopo un paio di test incrociati siamo incappati in un bug che -scoperto in seguito- è stato già dichiarato dalla Knowledge Base della nota casa di sicurezza, verrà risolto nella prossima versione. Vediamo di cosa si tratta …

Sophos Antivirus -quello installato sulla macchina client per capirci- contiene un modulo di protezione web che scansiona le pagine che andiamo a visitare, tutto ciò per evitare che qualche malware distribuito da una qualsivoglia pagina web possa comodamente “sfondare” le protezioni della macchina ed “entrare a prendersi un caffè” nonostante manchi l’invito. Il modulo -se associato a Internet Explorer 8- potrebbe non funzionare correttamente e addirittura bloccare l’apertura del browser Microsoft (qualcuno -me compreso- direbbe “fantastico bug, passa a Firefox!”).

E’ tutto legato al seguente documento della KB Sophos (in inglese):

sophos.com/support/knowledgebase/article/59284.html

Issue
When you attempt to run Internet Explorer version 8 ( IE 8 ) one of the following may occur:

  • IE8 fails to open – this may be an intermittent problem
  • IE8 opens but displays an error message, similar to:
    Windows cannot find 'http://www.sophos.com'.
    Make sure you typed the name correctly then try again.

    The IE window may appear but remains blank.

Si tratta di un baco nella versione 7.6.8 di Sophos Antivirus per Windows 2000 / XP / 2003. Il problema coinvolge tutte le versioni di Windows XP, Vista SP1 e SP2, 2008 SP1 e Sp2. La nuova versione del motore antivirus arriverà -come sempre- in modo automatico e totalmente trasparente per l’utente che -nel frattempo- può correggere il tutto modificando il proprio registro di sistema, disattivando l’addon direttamente dal browser o facendo un “rollback” alla versione 7.6.7.

Consiglio -nel caso in cui tu sia un utente poco esperto, magari con poca competenza e senza corsi di ingegneria informatica alle spalle :P- il metodo più semplice: disattivare il plugin direttamente dai componenti aggiuntivi del browser.

# disattivare il componente aggiuntivo di IE 8

Metodo abbastanza semplice anche con il browser bloccato ed inservibile. Andare su Start, Impostazioni, Pannello di Controllo e selezionare “Opzioni Internet“. Nella scheda “Programmi” selezionare “Gestione componenti aggiuntivi“:

A questo punto basterà disabilitare (tasto destro) la prima voce riguardante Sophos Web Content Scanner, come in immagine:

cliccare sull’immagine per ingrandire

I test sono stati effettuati su una macchina virtuale XP Pro SP3 (in inglese, come si nota nelle immagini) e l’esito è stato positivo.

# ritoccare il registro

Il metodo è identico per le versioni 32 e 64 bit se non fosse per la posizione della cartella dove una nuova chiave di registro deve essere piazzata.

Windows 32 bit (forse il 90% dei casi aziendali e casalinghi)

  • Da Start / Esegui digitare regedit e procedere premendo invio o cliccando su OK
  • Navigare fino alla cartella HKEY_LOCAL_MACHINE\Software\Sophos\Webscanning
  • Creare un nuovo valore DWORD chiamato SuppressBHOLoader e impostarlo a 1
  • Chiudere il registro e provare ad aprire Internet Explorer 8. Se non dovesse ancora funzionare, riavviare la macchina e riprovare.

Windows 64 bit (forse il restante 10%)

  • Da Start / Esegui digitare regedit e procedere premendo invio o cliccando su OK
  • Navigare fino alla cartella HKEY_LOCAL_MACHINE\Software\WOW6432Node\Sophos\Webscanning
  • Creare un nuovo valore DWORD chiamato SuppressBHOLoader e impostarlo a 1
  • Chiudere il registro e provare ad aprire Internet Explorer 8. Se non dovesse ancora funzionare, riavviare la macchina e riprovare.

Volete la pappa pronta? Non c’è problema, la sezione download di GxWare contiene già i file reg pronti:

downloads.gxware.org/index.php?dir=apps/sophos/WebScanning

Rispettivamente nella versione 32 e 64 bit.

# in conclusione

Il problema è risolvibile e facilmente aggirabile. Certo è consigliato usare la console se i PC cominciano ad essere più di 10 (in questo caso vi consiglio di fare riferimento al documento della KB linkato prima). Resta ora da attendere la nuova release dai Sophos Labs che non dovrebbe tardare particolarmente.

Buon lavoro.

Batch: update di massa per UltraVNC

Sto per tirarvi fuori il solito post “viaggio mentale” che spiega un metodo valido e funzionante (provato su strada) per aggiornare in modo massivo la versione di UltraVNC utilizzata magari nella vostra rete LAN, inserendo di default alcune impostazioni del programma, ivi compresi gruppi di dominio autorizzati a fare assistenza remota!

# conoscere il campo

La casistica affrontata riguarda una rete aziendale con dominio Microsoft, tutte macchine XP regolarmente aggiornate (e qualche Vista), utenti non amministratori del proprio PC, installazioni di UltraVNC (diverse versioni mai allineate) e RealVNC 4 miste. Tutti i computer montano diverse unità di rete all’avvio, tra queste si trovano la cartella personale ed una cartella generica per le installazioni software. Proprio grazie a quest’ultima -e qualche trucco batch- sarà possibile distribuire l’ultima versione dell’UltraVNC in modo totalmente automatizzato.

# cosa serve per partire

Basterà installare su una qualsiasi macchina (la prima, una cavia) l’UltraVNC (ultima release disponibile sul sito web ufficiale) configurandolo esattamente come vogliamo diventi su tutte le macchine della rete. Si parte avviando una piccola utility fornita nelle ultime release di UltraVNC:

uvnc_settings.exe” generalmente in C:ProgrammiUltraVNC (o Program Files per Windows Vista)

Questa permette di modificare e salvare (in un file .ini, ndr) tutte le impostazioni della parte server installata sulla macchina. Un file che -volendolo trasportare altrove con il giusto metodo- imposta già il comportamento di una nuova installazione UltraVNC:

Fatte le dovute modifiche, il file ultravnc.ini sarà esportabile altrove. Un consiglio? Create sul desktop (o una posizione a scelta) una cartella nella quale raccogliere tutti i file necessari alla migrazione, compresi gli script che andremo a creare tra breve, è nettamente più comodo.

Tocca ora ai gruppi di dominio autorizzati a collegarsi in VNC sulla macchina. Una volta inseriti a mano sul “PC Cavia“, UltraVNC salverà le informazioni in una chiave di registro che si trova in:

[HKEY_LOCAL_MACHINESOFTWAREORL]

il tutto codificato in HEX. Non preoccupatevi del contenuto ed esportate il .reg nella cartella precedentemente creata. Dovrebbe contenere una sola sottochiave ([HKEY_LOCAL_MACHINESOFTWAREORLWinVNC3]), dovrebbe assomigliare a qualcosa del genere:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREORL]

[HKEY_LOCAL_MACHINESOFTWAREORLWinVNC3]
"ACL"=hex:02,00,50,00,02,00,00,00,00,00,24,00,03,00,00,00,01,05,00,00,00,00,00,
 05,15,00,00,00,6f,20,**,******,********0,00,24,00,
 **,****,*****,00,00,00,05,15,0*,**,00,6f,20,c3,5a,ff,1a,ef,4c,bf,
 7d,f7,6d,69,35,00,00

(chiaramente gli asterischi sono stati messi a random per offuscare il contenuto del .reg da me utilizzato).

Approfittate di questo momento per inserire nella solita cartella anche PSKill, tool della SysInternals (Microsoft) facente parte della suite PSTools, disponibile gratuitamente sul sito Microsoft:

technet.microsoft.com/en-us/sysinternals/bb896649.aspx

Servirà per terminare in modo sicuro il servizio winvnc eventualmente già aperto sulla macchina. Funziona allo stesso modo del taskman / taskkill via DOS ma in casi un pò più “recividi” con processi particolarmente rognosi da buttare giù, funziona decisamente meglio. L’unico problema è che l’applicativo, aperto per la prima volta sulla macchina, chiederà se accettare o meno la licenza di utilizzo, il tutto facilmente aggirabile tramite file di registro da avviare sulla macchina ospite:

Windows Registry Editor Version 5.00

[HKEY_USERSS-1-5-21-1522737263-1290738431-1844936127-13971SoftwareSysinternalsPsKill]

"EulaAccepted"=dword:00000001

Ultimo passaggio di “preparazione” è il file di informazioni di installazione *.inf, contenente le indicazioni su ciò che verrà installato sulla macchina, tutto abbastanza comprensibile con un minimo di impegno ;)


[Setup]
Lang=en
Dir=C:ProgrammiUltraVNC
Group=UltraVNC
NoIcons=0
SetupType=full
Components=ultravnc_server,ultravnc_viewer
Tasks=installservice,startservice

in sintesi: verrà installato UltraVNC nella directory predefinita (C:ProgrammiUltraVNC calcolando che stiamo parlando di client XP italiani), interfaccia in lingua inglese, senza icone sul Desktop, con componenti Server e Viewer tenendo conto che il servizio ultravnc_server verrà inserito tra quelli riconosciuti da Windows (Pannello di Controllo / Strumenti di amministrazione / Servizi) ed avviato da subito.

Basterà incollare quanto sopra riportato su un nuovo file Blocco Note (o editor di testo equivalente) e salvare il tutto come ultravnc.inf nella cartella della migrazione.

# contenuto finale della cartella

Se avete seguito alla lettera l’articolo (fino ad ora, chiaramente) dovreste trovarvi davanti ad una cartella così composta (grosso modo):

Andiamo ora a vedere come creare quel file install.bat che si occuperà di:

  • rilevare ed eventualmente disinstallare versioni di RealVNC 4 o precedenti
  • rilevare ed eventualmente disinstallare vecchie versioni di UltraVNC
  • installare l’ultima versione disponibile di UltraVNC caricata nella cartella dell’update con le impostazioni dettate dal file di informazioni d’installazione
  • impostare automaticamente le opzioni dell’UltraVNC appena installato con il file di configurazione precedentemente generato
  • aggiungere i gruppi autorizzati alla connessione sulla macchina che chiede assistenza e che ha appena “subìto” l’aggiornamento forzato

Mani ad un editor di testo, si parte.

# install.bat

Una veloce occhiata alle procedura permetterà di capire come strutturare poi uno script batch finale che controllerà dapprima la presenza degli applicativi per azionare in seguito le funzioni necessarie all’upgrade.

Stop dei servizi, è necessario

Lo stop dei servizi è chiaramente necessario per poter lavorare, a patto che siano effettivamente avviati. Per sicurezza è meglio provare a chiuderli a prescindere dal loro stato, giusto no? :)


echo *** Stop Servizi ***
echo.

net stop "uvnc_service"
net stop "VNC server"

Chi c’è c’è, gli altri si disinstallano

Ciò che va controllato è sicuramente la presenza del RealVNC 4 e di eventuali altre versioni di UltraVNC non pari all’ultima da noi scelta. Per questo motivo sarà necessario imporre al programma di effettuare da subito un “paio di ricerche incrociate“:


if exist %programfiles%RealVNCVNC4 goto REALVNC
if not exist %programfiles%UltraVNC goto INSTALL

A cosa corrispondono quei GOTO? Lo scopriamo subito :)

Rilevare e disinstallare RealVNC 4

Tutto molto semplice e, come ogni programma che si rispetti, prevede un parametro silent che si occuperà di fare il tutto senza che l’utente si accorga di nulla, peculiarità fondamentale in casi come questo:


:REALVNC
echo *** Rimozione RealVNC ***
"%programfiles%RealVNCVNC4unins000.exe" /verysilent /norestart
cd %programfiles%RealVNC
rmdir VNC4 /s /q
cd ..
rmdir RealVNC /s /q
echo.
echo Fatto, procedo.
goto CONTROLLO

Prevista chiaramente la distruzione delle cartelle riguardanti l’applicativo, proprio nelle ultime righe “rmdir“.

Rilevare e disinstallare vecchie versioni di UltraVNC

Anche in questo caso il programma si assicurerà che esista un’installazione di UltraVNC procedendo poi con una disinstallazione silente attraverso il precedente utilizzo di PSKILL per terminare il file eseguibile molto probabilmente ancora aperto:


:CONTROLLO
echo.
echo *** Rimozione vecchia versione UltraVNC ***
echo.

if exist %programfiles%UltraVNC "%programfiles%UltraVNCunins000.exe" /verysilent /norestart
if exist %programfiles%UltraVNC regedit /s \POSIZIONECARTELLAUPDATEpskill.reg
if exist %programfiles%UltraVNC \POSIZIONECARTELLAUPDATEpskill winvnc.exe
if exist %programfiles%UltraVNC rd %programfiles%UltraVNC /s /q
goto INSTALL

Prima di lanciare il PSKILL noterete l’associazione forzata del file di registro che permetterà di saltare la fase di accettazione licenza di utilizzo dell’applicativo. Inutile specificare che al posto di “POSIZIONECARTELLAUPDATE” dovrete sostituire la cartella esatta sul server che sta ospitando gli script ed i file di aggiornamento.

Installazione e configurazione automatica UltraVNC

Ultimo passo per concludere la procedura automatizzata. La funzione si occuperà di installare l’UltraVNC passandogli tutti i parametri decisi in precedenza, comprese password, gruppi di dominio e quant’altro ancora. Lo script non è neanche così complicato, i comandi diretti e le variabili utilizzate sono opera di Stefano (grazie!), ormai fondamentale quando si parla di scriptare in batch qui in ufficio :) Io non ho fatto altro che dare una veloce occhiata e mettere a posto qualche “piccola gaffe“:


:INSTALL
echo.
echo *** Installazione nuova versione UltraVNC ***
echo.
if not exist %programfiles%UltraVNC mkdir %programfiles%UltraVNC
copy \POSIZIONECARTELLAUPDATEultravnc.ini "%programfiles%UltraVNC"
regedit /s \POSIZIONECARTELLAUPDATEuvnc.reg
"\POSIZIONECARTELLAUPDATEUltraVNC_1.0.5.3_Setup.exe" /verysilent /loadinf=\POSIZIONECARTELLAUPDATEultravnc.inf
goto FINE

:FINE
echo Processo di aggiornamento terminato

Una volta creata la directory nella quale si andrà ad installare l’applicativo, si copia il file di impostazioni e si associa quel .reg precedentemente creato forzando il tutto da shell (regedit /s). Ora si potrà finalmente lanciare il setup, rigorosamente in silent, facendogli recuperare le informazioni che avevamo stabilito inizialmente (/loadinf=…).

Il gioco è fatto, UltraVNC si installerà e avvierà il servizio server al quale noi potremo “chiedere udienza” dopo poco per la prima volta, a conferma del corretto funzionamento dello script batch!

# avvertenze

La buona riuscita dell’installazione (o dell’aggiornamento) richiede l’essere puntigliosi nel controllare i puntamenti ai giusti server, le autorizzazioni in lettura per gli utenti di dominio, la presenza di tutti i file descritti. Ricordatevi che lo script va lanciato come amministratore di dominio o almeno della macchina locale (e qui può aiutarvi un psexec anche da remoto). Nel caso in cui vi dia problemi provate a segnalarmelo nei commenti per ottenere supporto.

Una versione completa del codice sorgente è disponibile su /dev:

dev.gxware.org/?15

chiaramente copiabile e modificabile a patto che, torno a ripetere, anche tutti gli altri file risiedano nella stessa cartella del batch che andrete a lanciare.

In un articolo che spero di poter scrivere e pubblicare a breve vi spiegherò come, attraverso l’ennesimo script, potrete lanciare a ripetizione il comando di psexec su tutte le macchine di una lista PC precedentemente generata, così da avviare anche questo script di mass-update senza il minimo sforzo.

Buon lavoro :)