Tag Archive - Windows

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.

TCP/IP e connessioni contemporanee in XP Sp2

Sembrer√† strano ed ormai arcaico il problema che tempo fa affliggeva le installazioni Windows e le connessioni contemporanee del TCP/IP, eppure ancora oggi vedo computer completamente bloccati nel momento in cui si tenta di tenere aperto contemporaneamente Skype e magari Lotus Notes per controllare la propria posta elettronica. Giusto ieri l’ultima casistica.

Replicare la problematica √® estremamente semplice. Nel caso in cui si stia utilizzando un Windows XP Sp2 (il consiglio spassionato √® quello di aggiornare ad un Sp3 ormai maturo) si potr√† aprire Skype (che tenter√† di connettersi utilizzando la porta definita nelle sue opzioni o appoggiandosi alle 80 / 443 o ancora setacciando quelle sfruttabili sulla macchina che lo ospita) ed un qualsiasi altro programma che necessiti di un corretto funzionamento della risoluzione dei nomi sulla rete locale: il gioco √® fatto. Lotus Notes, nello specifico del mio caso, non era pi√Ļ in grado di arrivare sul server di posta principale. Nessuna possibilit√† di caricare DB, nessuna possibilit√† di funzionare decentemente a meno che non si chiudesse Skype per far tornare normale la situazione.

Prima di partire (grazie per avermelo ricordato Simo!):

ATTENZIONE: Prima di eseguire qualsiasi modifica ai vostri file e/o dispositivi siete pregati di effettuare un backup di questi. Solo cos√¨ sarete capaci di tornare indietro riparando ad eventuali errori di distrazione. L’articolo e l’autore non possono essere ritenuti responsabili di alcun danno subito dalla vostra strumentazione. Buon lavoro.

Perché tutto ciò?

Di default Windows XP SP2 concede un massimo di 10 connessioni TCP attivabili / usabili contemporaneamente, le quali una volta terminate bloccheranno l’attivit√† di qualsiasi programma che tenter√† di sfruttarne delle ulteriori. Ci√≤ significa che uno Skype malconfigurato, generer√† certamente pi√Ļ di 10 connessioni verso porte potenzialmente libere e sfruttabili per la connessione verso i suoi server, soprattutto quando ci si trova in rete aziendale magari protetta da un server proxy.

Come risolvere?

Nell’ormai lontano giugno del 2006, LvlLord rilasci√≤ una patch in grado di andare a modificare il file di sistema tcpip.sys facendo arrivare il numero di connessioni contemporanee a 50. Innalzando quel labile limite imposto da Redmond i problemi non si presentano pi√Ļ e l’utente potr√† lavorare in tranquillit√† tenendo aperti contemporaneamente pi√Ļ programmi, compreso Skype e Lotus Notes.

ATTENZIONE: la patch non è ufficiale Microsoft. Scaricatela ed usatela a vostro rischio e pericolo. Tenete sempre da parte il CD di Windows XP nel caso in cui sia necessario ripristinare il file TCPIP.sys originale.

Per scaricare la patch si potr√† andare all’indirizzo:

lvllord.de/?lang=en&url=downloads#4226patch

scegliendo poi la lingua inglese (a meno che non mastichiate correttamente il tedesco). Non importa se il vostro sistema operativo è in italiano, la lingua della patch determina solo ed esclusivamente il testo scritto che comparirà a video nella schermata DOS che vi apparirà una volta lanciato il file. Ecco come si presenta un sistema già patchato:

clicca per ingrandire

Al prompt un utente che dovr√† applicarla per la prima volta risponder√† “Ye confermer√† il tutto con Invio. Il processo richieder√† qualche secondo e potrebbe far comparire a video la richiesta del CD di Windows XP per ripristinare il file modificato. Ignorare la richiesta e attendere che il processo termini.

Finisce qui il vostro intervento. Occorrer√† riavviare la macchina per applicare le modifiche e godere del risultato. Per disinstallare la patch o riportare lo stato del sistema all’originario si potr√† nuovamente lanciare il file e selezionare l’opzione “Y” se viene richiesto di riportare a 10 il numero di connessioni contemporanee o semplicemente “U” per disinstallare il tutto completamente.

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

Batch: migrazione di massa verso 7-Zip

Richiesta: migrare un discreto numero di client da WinZip o WinRAR a 7-Zip, forse il miglior software d’archiviazione gratuito ed open-source attualmente disponibile sul mercato, anche in italiano! Sono soddisfatto della scelta del mio cliente, soprattutto perch√© sono stato io stesso a mettere la pulce nell’orecchio :P

# il punto di partenza

Tutti i test sono stati effettuati su macchine provviste di WinZip 8.1 (minimo) e WinRAR 3.80. La mia virtuale montava esattamente queste due versioni durante lo sviluppo. Secondo i documenti che ho consultato, i comandi che ho utilizzato dovrebbero andare bene anche con versioni precedenti e successive a quelle utilizzate.

# il comportamento

Trovato WinZip o WinRAR o magari entrambi, lo script deve poterli disinstallare entrambi senza l’intervento dell’utente che sta attualmente utilizzando la macchina. Il motto √® sempre lo stesso: meno l’utente finale vede e fa, meglio √®. Ci√≤ vuol dire uso di installazioni e disinstallazioni “silent” come previsto ormai nel 99% dei pacchetti di installazione degli applicativi.

WinZip, WinRAR e 7-Zip non fanno eccezione. Ciascuno di questi ha un parametro che permette di gestirli in “silenzio” e lontani da occhi indiscreti. Nello specifico, ho fatto riferimento ad un paio di forum stranieri dove ho trovato esattamente ci√≤ che cercavo:

# raccogliere, analizzare, sviluppare

Raccogliendo i vari codici e parametri in giro per forum si riescono ad ottenere fin troppo facilmente i controlli da fare e sviluppare. Ecco quindi l’analisi dei vari “paragrafi” di codice!

Prima di partire vi ricordo che avrete necessit√† di tenere il file di installazione di 7-Zip sulla macchina locale dove applicare lo script o -soluzione certamente migliore in ambito aziendale- su un server al quale possono far accesso i vostri client. Tutto viene deciso sin da subito dalla variabile “server” dichiarata ad inizio batch, ovviamente da modificare secondo le proprie esigenze:


set server=

Un paio di esempi? Nel caso in cui all’interno del disco C abbiate creato una cartella “inst” contenente il pacchetto di installazione (attualmente 7z465.exe) bisogner√† dichiarare %systemdir%\inst, proprio in questo modo:


set server=%systemdir%\inst

così facendo lo script richiamerà il setup con %systemdir%\inst\7z465.exe (quasi sempre corrisponderà a C:\inst\7z465.exe). Lo stesso vale per il server, cambia semplicemente il modo di richiamarlo:


set server=\\serverpippo\installazioni\sw\....

Sta alla vostra attuale situazione decidere che valore prender√† quella variabile. Non inserite il nome del pacchetto exe, il codice lo prevede gi√† durante l’esecuzione.

Kill dei servizi WinZip e disinstallazione

WinZip e la sua odiosa icona nella tray fanno comparsa subito dopo l’installazione. E’ l’unico applicativo che necessita di un bel “TaskKill” via DOS che permette di terminare il QuickPick:


echo Termino eventuali servizi aperti da WinZip ...
echo;
taskkill /IM WZQKPICK.EXE
echo Fatto!

:WINZIP8
echo;
if not exist %programfiles%\WinZip\WINZIP32.EXE goto WINRAR
echo Disintallazione di WinZip in corso ...
echo;
%programfiles%\WinZip\WINZIP32.EXE /uninstallx

echo Fatto! 

Il primo controllo chiede allo script di assicurarsi che WinZip esista sulla macchina (if not exist … goto WINRAR), in caso contrario si salter√† al controllo ed eventuale disinstallazione di WinRAR. Inutile dire che se WinZip viene trovato il codice proseguir√† fino alla stringa “… WINZIP32.EXE /uninstallx” che lancia una disinstallazione completa e silente sulla macchina.

Controllo ed eventuale disinstallazione WinRAR

WinRAR √® certamente meno invasivo del collega. Contrariamente a WinZip possiede un file di disinstallazione e l’attributo per il silent √® molto pi√Ļ standard, basta un semplice “/s“:


if not exist %programfiles%\WinRAR\WinRAR.exe goto 7ZIP
echo Disinstallazione di WinRAR in corso ...
echo;
%programfiles%\WinRAR\Uninstall.exe /s
echo Fatto!

La prima stringa di controllo si assicura semplicemente che WinRAR esista, altrimenti salter√† immediatamente all’installazione di 7-Zip!

Installare 7-Zip, alfin si giunge al risultato!

Installare 7-Zip e associarlo ai tipi di file pi√Ļ utilizzati e conosciuti √® il passaggio finale della migrazione. La parte pi√Ļ corposa, manco a dirlo, riguarda proprio l’associazione dei file, e qui bisogna davvero ringraziare il forum di MSFN per aver gi√† preparato uno script da integrare nel proprio batch per ottenere il risultato voluto.


if exist %programfiles%\7-Zip\7zFM.exe goto FINEPROCESSO
echo Installazione 7-Zip in corso ...
echo;
start /wait %server%\7z465.exe /S /D="%programfiles%\7-Zip\"

Il controllo √® d’obbligo. Nel caso in cui la macchina possieda gi√† 7-Zip si pu√≤ tranquillamente concludere l’intervento “portando forzatamente a termine lo script“. In caso contrario ecco che la stringa di start provveder√† a lanciare il setup dandogli in pasto la variabile silent (anche stavolta /s) e la destinazione gi√† decisa per il programma. La variabile d’ambiente “%programfiles%” corrisponde a C:\Programmi nel 99% dei casi, ma √® sempre meglio utilizzare indirizzi relativi piuttosto che gli assoluti no? ;)

Lo script delle associazioni √® invece un costrutto “for” che per ciascuna estensione “desiderata” applicher√† una nuova associazione nel registro di sistema, associando infine l’icona standard decisa da 7-Zip:


SETLOCAL
SET SC=HKLM\SOFTWARE\Classes
SET Extn=001 7z arj bz2 cab chm cpio deb gz iso lzh nsis rar rpm tar z zip
FOR %%j IN (%Extn%) DO (
REG ADD %SC%\.%%j /VE /D "7-Zip.%%j" /F
REG ADD %SC%\7-Zip.%%j /VE /D "7z Archive" /F
REG ADD %SC%\7-Zip.%%j\DefaultIcon /VE /D "\"%PROGRAMFILES%\7-Zip\Formats\%%j.dll\"" /F
REG ADD %SC%\7-Zip.%%j\shell\open\command /VE /D "\"%PROGRAMFILES%\7-Zip\7zFM.exe\" \"%%1\"" /F
)
REG ADD %SC%\7-Zip.001\DefaultIcon /VE /D "\"%PROGRAMFILES%\7-Zip\Formats\split.dll\"" /F
ENDLOCAL

Cos√¨ facendo il risultato “√® servito“, in meno di due minuti sulla macchina esister√† solo ed esclusivamente 7-Zip come gestore di pacchetti Zip/Rar e chi pi√Ļ ne ha pi√Ļ ne metta. Inutile dire che alle associazioni gi√† presenti nello script potete aggiungerne altre previste -ovviamente- dall’applicativo.

Modifiche dell’ultima ora

(ultimo aggiornamento: 26.03.09 14.55)

Visto che la procedura di associazione file sembrava non funzionare altrettanto bene con le icone, Stefano ha leggermente modificato il codice includendo la risoluzione (grazie :P) che ora corrisponde al seguente:


SETLOCAL
SET SC=HKLM\SOFTWARE\Classes
SET Extn=001 7z arj bz2 cab chm cpio deb gz iso lzh nsis rar rpm tar z zip
FOR %%j IN (%Extn%) DO (
REG ADD %SC%\.%%j /VE /D "7-Zip.%%j" /F
REG ADD %SC%\7-Zip.%%j /VE /D "7z Archive" /F
REG ADD %SC%\7-Zip.%%j\shell\open\command /VE /D "\"%PROGRAMFILES%\7-Zip\7zFM.exe\" \"%%1\"" /F
)
REG ADD %SC%\7-Zip.001\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\Formats\split.dll" /F
REG ADD %SC%\7-Zip.7z\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,0" /F
REG ADD %SC%\7-Zip.arj\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,4" /F
REG ADD %SC%\7-Zip.bz2\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,2" /F
REG ADD %SC%\7-Zip.cab\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,7" /F
REG ADD %SC%\7-Zip.chm\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\Formats\chm.dll" /F
REG ADD %SC%\7-Zip.cpio\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,12" /F
REG ADD %SC%\7-Zip.deb\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,11" /F
REG ADD %SC%\7-Zip.gz\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,14" /F
REG ADD %SC%\7-Zip.iso\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,8" /F
REG ADD %SC%\7-Zip.lzh\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,6" /F
REG ADD %SC%\7-Zip.nsis\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\Formats\nsis.dll" /F
REG ADD %SC%\7-Zip.rar\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,3" /F
REG ADD %SC%\7-Zip.rpm\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,10" /F
REG ADD %SC%\7-Zip.tar\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,13" /F
REG ADD %SC%\7-Zip.z\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,5" /F
REG ADD %SC%\7-Zip.zip\DefaultIcon /VE /D "%PROGRAMFILES%\7-Zip\7z.dll,1" /F
ENDLOCAL

Ho chiaramente aggiornato lo script batch che ora include la nuova parte di codice e rilasciato il nuovo source su Dev:

dev.gxware.org/?13

# codice & download

Il codice sorgente del batch √® disponibile gratuitamente ed interamente nell’area dev, come sempre:

dev.gxware.org/?12

dev.gxware.org/?13

mentre un batch già pronto è nel repository GxWare.org:

downloads.gxware.org/index.php?dir=articoli/7zip_migrazione/&file=7zip-install.bat

#riutilizzare il codice per un update

Nessuno vi vieta di modificare il nome del setup in futuro. Quando 7-Zip raggiunger√† la versione 4.66, nel paragrafo dedicato alla sua installazione si potr√† semplicemente cambiare il nome dell’eseguibile ricordandosi di andare poi a mettere il file di setup nella cartella dichiarata. Non √® chiaramente stato sviluppato per aggiornare l’applicativo, ma con una “aggiustatina” qua e l√† potrebbe fare anche questo, magari ve lo spiego in un prossimo articolo eh? :)

# in conclusione

Un lavoro di 5 o pi√Ļ minuti portato a termine in due senza necessit√† di disconnettere l’utente attualmente connesso al sistema, baster√† lanciare il batch come amministratore per risolvere il problema! :)

Proposte? Critiche? L’area commenti √® a vostra disposizione!

AVG 8.5: rimuovere la Notification Area

Grisoft ha rilasciato da una manciata di giorni un “Major Update” del suo antivirus dedicato alle utenze casalinghe: AVG 8.5. Motore rinnovato, ancora pi√Ļ potente, ancora gratuito per la licenza antivirus dedicata all’utilizzatore privato che non lo sfrutta per fini commerciali.

Nonostante venga ancora rilasciato da HTML.it, mirror ufficiale per l’Italia (e non solo) stavolta l’applicativo torna ad essere completamente in inglese, nell’attesa -probabilmente- di completare la localizzazione italiana si potr√† scaricare AVG 8.5 in italiano dai server di Grisoft stessa.

Lo sapevi che?
Grisoft ha finalmente messo a disposizione degli utenti privati (licenza gratuita) aggiornamenti automatici ogni 4 ore (anzich√© solo 24) in modo del tutto trasparente e gratuito, il tutto selezionabile in fase di prima configurazione dell’AV (o post-aggiornamento).

Occupa circa 60 MB (59,80 per essere precisi) e richiede poi di essere aggiornato in quanto le ultime definizioni inserite nel pacchetto rilasciato risalgono ad inizio marzo. Passiamo però ai puri tecnicismi ;)

Rimuovere la Notification Area

Torna la DLL incriminata, i soliti due file MHT contenenti i banner, in doppia lingua chiaramente. Questo √® ci√≤ che compone la nuova Notification Area, anch’essa facilmente rimovibile dalla release 8.5 (ma mettere un “Visualizza / Nascondi Notification Area” no eh?) con il solito script batch da lanciare a partire dalla stessa cartella dove risiede AVG.

Il nuovo codice batch è il seguente:

@echo off
ren avgmwdef_us.mht avgmwdef_us.mht.bak
ren avgmwdef_it.mht avgmwdef_it.mht.bak
ren avgfree_us.mht avgfree_us.mht.bak
ren avgfree_it.mht avgfree_it.mht.bak
ren avgresf.dll avgresf.dll.bak

nuovamente disponibile per il download in versione “Stop & Start” (avg8.5.StopNotification.bat & avg8.5.StartNotification.bat) nella stessa cartella su GxWare:

downloads.gxware.org/index.php?dir=articoli/avg8

Vi ricordo che il file batch va sempre messo nella stessa cartella di installazione dell’AVG che √® generalmente C:\Programmi\AVG\AVG8.

Buon aggiornamento e, per l’ennesima volta, buon “hack” :P

Page 26 of 41« First...«2425262728»...Last »