Tag Archive - Windows

Huawei E585 Unlock (sbloccare il WebPocket di 3)

Un mio caro amico è da pochi giorni passato a Vodafone come operatore per la casa e per internet in mobilità e voleva buttare via il suo vecchio WebPocket di 3, un “MiFi” (anche se non è del tutto corretto non trattandosi di un dispositivo Novatel) Huawei E585 marchiato e bloccato per funzionare con sole USIM 3. L’ho preso io e dopo aver inizialmente pensato di acquistare una scheda dati con un piccolo piano ad-hoc da dedicargli, mi sono documentato e ho capito che avrei potuto utilizzarlo anche con una scheda dati aziendali di diverso operatore (anche in questo caso Vodafone, neanche a farlo apposta).

Questi piccoli (e comodissimi, nda) modem vengono forniti quando si sceglie di sottoscrivere un contratto dati e non si desidera la classica chiave USB “mono-postazione”, generalmente vincolando l’utente al pagamento mensile fino alla fine dei 24 o 30 mesi (dipende dal tipo di offerta), alla fine dei quali l’apparato rimane all’utente e non verrà più richiesto a meno di rare eccezioni giustificate. Questo lo trasforma in un possibile apparato riutilizzabile e lo Huawei E585 non fa eccezione, occhio quindi ad evitare di seguire articoli come questo per sbloccare modem che potrebbero dover tornare all’ovile. Potete inoltre evitare l’intera procedura qui di seguito descritta chiedendo il codice di sblocco al vostro operatore / negozio H3G di fiducia. Chiaro che nel caso in cui non siate più clienti o acquistiate il modem di seconda mano su siti come eBay o Subito.it viene a decadere tale possibilità!

Ho scoperto un mondo, possiedo già uno Huawei E5331 del quale sono parecchio soddisfatto e non avevo nulla da perdere cercando di modificare il comportamento standard dell’E585 ho deciso di leggere e seguire qualche riferimento trovato sul web (più o meno preciso, con qualche sbavatura e non certo privo di inutilità) riuscendo alla fine nell’intento, vi spiego quindi la procedura passo-passo per sbloccare il WebPocket della 3 per poter sfruttare SIM di operatori differenti:

DC-Unlocker

Mi è stato fatto notare nei commenti (grazie ragazzi) che su alcuni sistemi la procedura può generare un errore durante l’utilizzo di PSAS (di cui vi parlerò nel prossimo paragrafo), occorrerà quindi “passare” da DC-Unlocker per far si che tutto fili liscio. Vi spiego i pochi e semplici passaggi da eseguire. Trovate a questo URL 3 software che vengono citati in quasi ogni riferimento / documento / guida: app.box.com/s/jzkdizypg9jkiydqye2a, scaricate e installate “dc-unlocker_client-1.00.1084.exe”.

Prima di partire però collegate il modem tramite cavo, accendetelo e installate il software della 3 a bordo (eseguendo l’autorun quando richiesto) senza però avviarlo a fine installazione, servirà solo far riconoscere il modem a Windows.

A questo punto avviate il programma ed impostatelo su Huawei Modems con rilevamento automatico del modello e della porta COM alla quale si sarà nel frattempo connesso, quindi fate clic sulla lente di ingrandimento per il riconoscimento dei suoi dati:

Se il rilevamento automatico non dovesse funzionare provate a forzare il modello di modem (Huawei E585) e la porta COM per la diagnostica (con quella che potrete vedere nel pannello di controllo di Windows). Le informazioni verranno mostrate nel box inferiore del programma, lasciatelo aperto e passate al paragrafo successivo, questo aiuterà il prossimo programma (PSAS) a funzionare correttamente.

Unlock Huawei E585

Ho dovuto utilizzare una macchina Windows perché i software suggeriti non erano disponibili su OS X, va bene anche una macchina virtuale. Vi servirà un cavo microUSB che possa collegare il WebPocket al PC, la SIM di differente operatore e un pelo di attenzione nei passaggi.

E’ il momento di scaricare e installare “Huawei Reader PSAS setup.exe” che vi servirà ad estrapolare il dato fondamentale dell’intero articolo. Apritetelo e selezionate la voce “Hardware Forencsis” quindi “Use Mobile Ports“:

Assicuratevi che la porta selezionata sia quella del modem, lo potete facilmente capire già dalla prima schermata che si aprirà subito dopo:

A questo punto, spostandovi nella tab “Diag Port (QC)“, va seguito un passo-passo per punti che vi propongo in una sola immagine:

  1. lanciate una lettura delle informazioni (vi basterà fare clic su Send mantenendo il resto invariato nei campi “Diag Commands”);
  2. nelle Diag Functions occorrerà impostare la lettura EFS (Read EFS);
  3. impostare come Max Page un valore tra 250 e 600 (il primo va già più che bene);
  4. spuntare l’opzione Alternative Method;
  5. fare clic su Let’s Go per aprire una finestra di Esplora Risorse dove salvare il file di log che andrà poi analizzato (va bene il Desktop, va bene un qualsiasi nome).

A questo punto vi basterà aprire il file di log appena creato con Blocco Note o equivalente (io uso Notepad++) e cercare “PST“, individuando subito dopo un valore numerico che corrisponde al vostro codice di sblocco!

Copiate quel codice negli appunti, vi servirà.

Collegatevi via WiFi o USB al vostro modem mantenendo la scheda di diverso operatore all’interno del modem, questo mostrerà a video (il suo, integrato e piccolo ma sufficiente) un messaggio che invita ad inserire una SIM valida. Provate a navigare verso qualsiasi sito web (anche google.it, tanto per capirci), dovrebbe comparire la finestra per lo sblocco del modem:

Inserite quindi il codice che avevate precedentemente copiato negli appunti. Se non ci sono stati errori, una volta confermato, il modem si riavvierà e troverà rete dell’operatore al quale appartiene la SIM al suo interno (a meno che non vi troviate in una zona non coperta, ovviamente!).

Per configurare il profilo di connessione al giusto operatore bisognerà collegarsi all’indirizzo del modem (192.168.1.1) e inserire la password dell’amministratore (di default è “admin”) nel campo in basso (vedi immagine qui di seguito):

Quindi andare in Impostazioni Avanzate, Impostazioni di Connessione ed infine Impostazioni Profilo. Qui andrà dato un nome al profilo (va bene qualsiasi nome, anche quello dell’operatore, nel mio caso ho usato infatti “Vodafone“) e mantenendo tutto invariato modificare solo il campo APN in Statico inserendo poi il punto di accesso del proprio operatore (si trova facilmente tramite una ricerca su Google, qui trovate quelli di Vodafone):

Salvando il profilo il modem tenterà la connessione e sarà finalmente possibile navigare su internet!

Mi sembra ci sia tutto, non mi resta quindi che augurarvi buona navigazione! :-)

In caso di problemi, come sempre, l’area commenti è a vostra totale disposizione.

Aggiornamento del 18/04/2014
Un aggiornamento doveroso visto i numerosi commenti che arrivano e che faccio puntualmente finire nel cestino senza approvarli. Questo articolo è stato scritto di mio pugno per tutti i lettori, gratuitamente, con impegno. Provare a inserire un commento “consigliando” di leggere articoli che riportano la vendita di codici di sblocco non farà altro che far finire il vostro commento dritto in pattumiera, perché continuare a provarci ogni giorno?

Lotus Notes si blocca in fase di avvio? Colpa del Workspace

E’ uno di quei problemi che mi sono passati “tra le mani” spesso e volentieri. Lotus Notes in fase di avvio, la solita schermata di caricamento del profilo con la barra di avanzamento in alto a sinistra, un loop infinito così come l’attesa, durante la quale potreste alzarvi, uscire a far la spesa, rientrare e notare lo stesso avanzamento.

A nulla serve uccidere i processi dal Task Manager di Windows, così come il riavvio della macchina. Molti partirebbero con un ripristino del software se non addirittura una reinstallazione ma non è assolutamente necessario. La colpa di tutto questo è della cartella Workspace contenuta all’interno del profilo dell’utente: lotus.com/ldd/nd85forum.nsf/0/9a28845ad9c3d7c785257b160036d5e7?OpenDocument

Nel caso in cui abbiate installato Lotus Notes per tutti gli utenti della macchina troverete la cartella in %LocalAppdata%\Lotus\Notes\Data\Workspace. Nel caso sia stata fatta l’installazione per singolo utente si troverà invece in %ProgramFiles%\IBM\Lotus\Notes\Data\Workspace.

Vi basterà cancellarla completamente, Lotus Notes la creerà in autonomia al successivo avvio.

Ora dovreste poter accedere al vostro client Notes senza problemi.

Non funziona ancora

In rari casi ho notato che il metodo sopra descritto non è stato sufficiente. Oltre alla cancellazione della cartelle potrete allora forzare Lotus Notes a richiedere la prima configurazione. Per farlo basterà andare ad aprire il file “notes.ini” contenuto nella cartella del vostro profilo (le cartelle sono le stesse che vi ho detto sopra, senza il Workspace finale però) e rimuovere tutte le righe successive a questa:


Timezone=-1

Il -1 è chiaramente “variabile”. Da quella riga in poi fate piazza pulita. Al successivo avvio del client Notes vi verranno richiesti i dati dell’utente e del server. Compilate quanto richiesto e procedete fino a fine configurazione, ora il software dovrebbe funzionare correttamente.

Buon lavoro.

Più dispositivi vuol dire più sicurezza?

Vi ho parlato poco tempo fa di sicurezza in azienda e a casa, ma anche per i vostri dispositivi mobili e tutto ciò che è potenzialmente attaccabile da un malware (e non solo). Meno di un mese fa Kaspersky ha pubblicato un articolo sull’argomento, orientato prevalentemente sul concetto di multi-sicurezza, ciò che nessuno di noi credeva necessario fino ad una manciata di anni fa quando ci si limitava ad acquistare o scaricare un prodotto antivirus adatto alla protezione di un solo client, oggi diventato impensabile (non fosse già per il numero di PC tipicamente ospitati sotto lo stesso tetto).

Si contano circa 4,5 dispositivi connessi al web per ciascuna famiglia (così pochi? nda), tutti questi vengono tipicamente colpiti da attacchi più o meno mirati. Si va dal più classico dei virus per Windows (soprattutto le versioni più vecchie ma non abbandonate in favore delle più recenti) agli escamotage un po’ più complessi per attaccare la robustezza alla quale ci ha abituati OS X per il quale il client antivirus è necessario solo se non basta il buonsenso e l’esperienza dell’utilizzatore, passando obbligatoriamente da Android dove un sistema operativo decisamente più aperto e libero rispetto ad iOS fa da incubatrice per le infezioni nascoste dietro applicazioni apparentemente innocue (giochi, software che promettono di spiare il prossimo e mille altre cose simili) senza dimenticare i metodi “classici” dove il vincolo di infezione diventa il sempreverde SMS e le mille pagine e mail di phishing in qualsiasi salsa e compatibili con qualsiasi device o browser o client di posta pur di arrivare alle vostre credenziali bancarie. Se a questo si aggiunge la facilità nello smarrire lo smartphone capite anche voi quanto sia semplice far la frittata.

Il risultato della statistica e di quanto appena riportato sopra si trasforma in un’infografica:

Kaspersky multi security for multi devices

Vuoi inserire l’infografica sul tuo sito?

Ti basterà copiare e incollare il codice qui di seguito per portarla all’interno del tuo sito web o del tuo blog senza la necessità di caricare l’immagine nel vostro spazio:


<a href="http://kasperskycontenthub.com/italy/files/2013/10/23-10-13-PNG_Kaspersky_Lab_infographics_Multi_security_for_multi-devices-DF.png"><img src="http://kasperskycontenthub.com/italy/files/2013/10/23-10-13-PNG_Kaspersky_Lab_infographics_Multi_security_for_multi-devices-DF.png" alt="Kaspersky multi security for multi devices"></br><a href="http://www.kaspersky.com/it">Kaspersky Lab IT</a> via <a href=" http://gioxx.org/">Gioxx’s Wall</a>

E voi ci pensate alla sicurezza dei vostri dispositivi e del vostro PC? :-)

ABP X Files e Harmful WebSites: ecco come nascono

Gli utilizzatori di X Files e degli altri due moduli NoFacebookAds (NFA) e Harmful WebSites (HWS) diventano ogni giorno sempre più. Complice (fuori di dubbio) la sempre più forte necessità di non essere assaliti da pubblicità che troppo spesso prendono il posto dei contenuti o interi siti web compromessi che vanno così a mettere a rischio l’incolumità della propria postazione di lavoro, il mio “lavoro” diventa così sempre più delicato, bisogna fare attenzione ad ogni minimo dettaglio e cercare di pensare che qualsiasi modifica non andrà ad impattare solo le mie macchine ma anche quelle di centinaia di altre persone in giro per il globo. Si spiegano così le mie risposte (via mail o ai ticket aperti o ancora nei report segnalati sul sito ufficiale dell’estensione) ad alcune richieste troppo specifiche e troppo poco condivisibili, non ve la prendete!

Vi siete però mai chiesti come nascono davvero X Files e Harmful WebSites? Contrariamente a NoFacebookAds che contiene solo poche righe specifiche per il noto social network sulla quale mi basta quindi mettere mano “a cuore aperto“, entrambe le altre liste vengono rese pubblicamente accessibili tramite gli URL di sottoscrizione che tutti utilizzano solo in un “secondo momento“. I filtri vengono scritti o raccolti, verificati, quindi esportati e poi lavorati da uno script in VBScript. Voglio condividere con voi questo lavoro, non si sa mai, potrebbero spuntare fuori nuove idee, correzioni o miglioramenti :-)

Harmful WebSites

E’ quella più semplice. Harmful WebSites nasce infatti dalla ben più corposa e collaborativa lista messa a disposizione da MalwareDomainList come vi avevo spiegato in un precedente articolo e va solo lavorata in quanto scaricabile ma non compatibile nativamente con Adblock. Parte tutto da questo file: malwaredomainlist.com/hostslist/hosts.txt, nel quale però dovranno sparire i 127.0.0.1 e le informazioni di testa. Questo perché si tratta di una lista da sostituire o integrare al file hosts di Windows, non studiata per un’estensione di un browser, non per il momento almeno ;-)

Ecco quindi che ho fatto intervenire “qualche” riga di codice VBScript che possa fare questo lavoro in completa autonomia (previo doppio clic ovviamente), da qui in poi l’articolo prende una piega più tecnica, forse meno adatta ai semplici curiosi.


' ABP X FILES HWS Maker 0.1
' GSolone - Ultima modifica: 20130808 rev3
'
' Lo script scarica la lista filtri più aggiornata disponibile su MalwareDomainList.com e la modifica per renderla integrabile all'interno di una lista filtri standard per Adblock Plus e compatibili, a prescindere dal browser utilizzato.
'
' STORICO MODIFICHE
' 0.1 rev3- corretto il problema dell'ultima linea con il solo "##HTML *" che bloccava la navigazione su ogni sito web. Rimangono due righe vuote a termine file ma non è un problema.
'
' Sviluppo:     Giovanni F. -Gioxx- Solone (dev@gfsolone.com)
' Testato su:    Windows 7 Pro Sp1
'
' LISTA HOST UTILIZZATA
HTTPDownload "http://www.malwaredomainlist.com/hostslist/hosts.txt"

' Non toccare nulla oltre questa riga!
' DO NOT touch anything below this line!

Sub HTTPDownload(myURL)
' Variables and constants definition
Dim i, objFile, objFSO, objHTTP, strFile, strMsg
Dim objWMIService, objProcess, colProcess
Const ForReading = 1, ForWriting = 2, ForAppending = 8

' Date and time
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objItem in colItems
dtmLocalTime = objItem.LocalDateTime
dtmMonth = Mid(dtmLocalTime, 5, 2)
dtmDay = Mid(dtmLocalTime, 7, 2)
dtmYear = Left(dtmLocalTime, 4)
dtmHour = Mid(dtmLocalTime, 9, 2)
dtmMinutes = Mid(dtmLocalTime, 11, 2)
dtmSeconds = Mid(dtmLocalTime, 13, 2)
Next
update = dtmYear & dtmMonth & dtmDay & dtmHour & dtmMinutes
lastmodified = dtmDay & "-" & dtmMonth & "-" & dtmYear
' debug Wscript.Echo update

' Create a File System Object
Set objFSO = CreateObject( "Scripting.FileSystemObject" )

' Check if the specified target file or folder exists, and build the fully qualified path of the target file
Set objShell = CreateObject("Wscript.Shell")
Set objProcess = objShell.Environment("Process")
Set WshShell = WScript.CreateObject("Wscript.Shell")
strApplicationData = WshShell.ExpandEnvironmentStrings("%TEMP%")
'strFile = strApplicationData + "\hws_xfiles.txt"
strFile = "C:\Dropbox\Public\abpxfiles\siteblock.txt"

' Create an HTTP object
Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )

' Download from the specified URL
objHTTP.Open "GET", myURL, False
objHTTP.Send

if LenB( objHTTP.ResponseBody ) < 500 Then
MsgBox "Errore durante il download della lista host ..." & chr(13) & "Lista non trovata o sito web momentaneamente non funzionante." & chr(13) & "Lista non creata"
Exit Sub
End If

' Create or open the target file
Set objFile = objFSO.OpenTextFile( strFile, ForWriting, True )

' Write the downloaded byte stream to the target file
For i = 1 To LenB( objHTTP.ResponseBody )
objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) )
Next

' Close the target file
objFile.Close()

' Remove line 1 to 6, header of MalwareDomainList.com Hosts List
For i = 1 To 6
DeleteLine strFile, "", 1, 0
Next

' Find and remove 127.0.0.1 from each line
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile, ForReading)
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, "127.0.0.1  ", "")

Set objFile = objFSO.OpenTextFile(strFile, ForWriting)
objFile.WriteLine strNewText
objFile.Close

' Remove empty lines at the end of file!
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile, ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.Readline
strLine = Trim(strLine)
If Len(strLine) > 0 Then
strNewContents = strNewContents & strLine & vbCrLf
End If
Loop
objFile.Close
Set objFile = objFSO.OpenTextFile(strFile, ForWriting)
objFile.Write strNewContents
objFile.Close

' Append "##HTML *" for each line
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile, ForReading, True)
Set tmpFile= objFSO.OpenTextFile(strFile & ".tmp", ForWriting, True)
Do While Not objFile.AtEndofStream
url = objFile.ReadLine
url = url & "##HTML *"
tmpFile.WriteLine url
Loop
objFile.Close
tmpFile.Close
objFSO.DeleteFile(strFile)
objFSO.MoveFile strFile&".tmp", strFile

' Add list header (ABP X Files HWS)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile, ForReading)
strContents = objFile.ReadAll
objFile.Close

strFirstLine = "[Adblock Plus 2.0]" & vbCrLf & "! Version: " & update & vbCrLf & "! Title: X Files: HWS Harmful WebSites" & vbCrLf & "! Last modified: " & lastmodified & vbCrLf & "! Expires: 3 days" & vbCrLf & "! Homepage: http://mozilla.gfsolone.com" & vbCrLf & "! Harmful WebSites blocca siti web potenzialmente dannosi per la vostra navigazione" & vbCrLf & "! Blog: http://gioxx.org/tag/x-files" & vbCrLf & "! "
strNewContents = strFirstLine & vbCrLf & strContents

Set objFile = objFSO.OpenTextFile(strFile, ForWriting)
objFile.WriteLine strNewContents
objFile.Close

' Open the file (verification process)
CreateObject("WScript.Shell").Run strFile

End Sub

Sub Run(ByVal sFile)
' Variables definition
Dim shell

Set shell = CreateObject( "WScript.Shell" )
shell.Run Chr(34) & sFile & Chr(34), 1, false
Set shell = Nothing
End Sub

Sub DeleteLine(strFile, strKey, LineNumber, CheckCase)
'Use strFile = "c:\file.txt"   (Full path to text file)
'Use strKey = "John Doe"       (Lines containing this text string to be deleted)
'Use strKey = ""               (To not use keyword search)
'Use LineNumber = "1"          (Enter specific line number to delete)
'Use LineNumber = "0"          (To ignore line numbers)
'Use CheckCase = "1"           (For case sensitive search )
'Use CheckCase = "0"           (To ignore upper/lower case characters)
Const ForReading=1:Const ForWriting=2
Dim objFSO,objFile,Count,strLine,strLineCase,strNewFile
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objFile=objFSO.OpenTextFile(strFile,ForReading)
Do Until objFile.AtEndOfStream
strLine=objFile.Readline
If CheckCase=0 then strLineCase=ucase(strLine):strKey=ucase(strKey)
If LineNumber=objFile.Line-1 or LineNumber=0 then
If instr(strLine,strKey) or instr(strLineCase,strkey) or strKey="" then
strNewFile=strNewFile
Else
strNewFile=strNewFile&strLine&vbcrlf
End If
Else
strNewFile=strNewFile&strLine&vbcrlf
End If
Loop
objFile.Close
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objFile=objFSO.OpenTextFile(strFile,ForWriting)
objFile.Write strNewFile
objFile.Close
End Sub

Righe di debug sparse un po’ ovunque, sicuramente una marea di errori dovuti alla mia inesperienza e auto-formazione sulla programmazione in VBScript e (quasi certamente) molteplici modi di farlo con la metà delle righe di codice, eppure lo script che vedete qui di sopra si occupa ad oggi di scaricare la lista filtri da MalwareDomainList, rimuovere tutta la prima parte di informazioni, pulire ogni riga dal suo 127.0.0.1 e inserire i dettagli di aggiornamento, scadenza e non solo, quindi caricare nella cartella pubblica del mio Dropbox la nuova versione della lista finalmente compatibile che tutti voi potrete scaricare (o lasciar scaricare a Adblock) senza il minimo sforzo :-)

Giusto per farvi sentire un pelo più sicuri: alla fine del procedimento un “CreateObject(“WScript.Shell”).Run strFile” avvierà Notepad++ sul mio PC per verificare che tutto sia a posto e che non vi stia dando in pasto un file non corretto!

Inutile dire che avendo dichiarato delle cartelle ben precise al suo interno, se voleste riutilizzare questo script per qualche vostro particolare interesse dovrete fare attenzione e andare a modificare quelle righe per evitare di mandarlo in errore e non ottenere alcun risultato ;-)

Per evitare che ogni nuova modifica vada nel dimenticatoio e non venga aggiornata in questo articolo ho voluto pubblicare lo storico delle modifiche sul Wiki: public.gfsolone.com/wiki/doku.php?id=mozilla:abpxfiles:vbs:hwsmaker, dove aggiornerò la pagina con eventuali nuove versioni o note sull’attuale.

X Files

Una parziale modifica e semplificazione dello script sopra mostrato, questo si occupa solo di sostituire il file dei filtri pubblico (che voi tutti scaricate e utilizzate) con quello estratto dalla mia configurazione principale, quindi da una qualsiasi delle mie postazioni Windows con Firefox e Adblock Plus a bordo. Quando viene corretto un errore o aggiunto un filtro particolarmente importante o molto richiesto (spesso ho a che fare con le continue nuove pubblicità nei video Youtube o nei siti web delle testate giornalistiche più conosciute) arriva il momento di “testare, esportare e pubblicare“. Scrivo quindi i filtri necessari (o correggo gli errori), esporto la lista completa dal mio Firefox salvandola come “filtri.txt” sul mio Desktop e lascio fare il lavoro di fino a questo codice:


' ABP X FILES Stable Maker 0.1
' GSolone - Ultima modifica: 20130905 rev0
'
' Lo script modifica la lista filtri esportata dall'Adblock Plus di Staging e la modifica per inserire le informazioni di rilascio, quindi la copia all'interno della cartella pubblica di Dropbox dove tutti i client puntano per l'aggiornamento.
'
' STORICO MODIFICHE
' 0.1 rev0- stadio iniziale di sviluppo.
'
' Sviluppo:     Giovanni F. -Gioxx- Solone (dev@gfsolone.com)
' Testato su:    Windows 7 Pro Sp1
'
' Non toccare nulla oltre questa riga!
' DO NOT touch anything below this line!

' Variables and constants definition
Dim i, objFile, objFSO, strFile, strMsg
Dim objWMIService, objProcess, colProcess
Const ForReading = 1, ForWriting = 2, ForAppending = 8

' Date and time
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objItem in colItems
dtmLocalTime = objItem.LocalDateTime
dtmMonth = Mid(dtmLocalTime, 5, 2)
dtmDay = Mid(dtmLocalTime, 7, 2)
dtmYear = Left(dtmLocalTime, 4)
dtmHour = Mid(dtmLocalTime, 9, 2)
dtmMinutes = Mid(dtmLocalTime, 11, 2)
dtmSeconds = Mid(dtmLocalTime, 13, 2)
Next
update = dtmYear & dtmMonth & dtmDay & dtmHour & dtmMinutes
lastmodified = dtmDay & "-" & dtmMonth & "-" & dtmYear
' DEBUG: show $datetime
'Wscript.Echo update

' Expand Environment
' Create const's to spare time and place
Dim WshS
Set WshS = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
usrProfile = WshS.ExpandEnvironmentStrings("%UserProfile%")
strFile = usrProfile & "\Desktop\filtri.txt"
' DEBUG: Message to prove my string contains the path to my profile
'cartellaProfilo = usrProfile
'Msgbox strFile, 0, "Percorso lista"

' Staging filtri.txt is on my Desktop?
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strFile) Then
Else
MsgBox "Non ho trovato il file filtri.txt sul Desktop. Lo hai esportato da Firefox?",16,""
Wscript.Quit
End If

' Remove line 1 to 2, default header of Adblock Plus export
For i = 1 To 2
DeleteLine strFile, "", 1, 0
Next

' Add list header (ABP X Files Stable)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile, ForReading)
strContents = objFile.ReadAll
objFile.Close

strFirstLine = "[Adblock Plus 2.0]" & vbCrLf & "! Version: " & update & vbCrLf & "! Title: ABP X Files" & vbCrLf & "! X Files migliora la tua navigazione quotidiana!" & vbCrLf & "! Last modified: " & lastmodified & vbCrLf & "! Expires: 3 days" & vbCrLf & "! Homepage: http://noads.it" & vbCrLf & "! Home: http://noads.it" & vbCrLf & "! Blog: http://gioxx.org/tag/x-files" & vbCrLf & "! "
strNewContents = strFirstLine & vbCrLf & strContents

Set objFile = objFSO.OpenTextFile(strFile, ForWriting)
objFile.WriteLine strNewContents
objFile.Close

' Remove empty lines at the end of file!
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile, ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.Readline
strLine = Trim(strLine)
If Len(strLine) > 0 Then
strNewContents = strNewContents & strLine & vbCrLf
End If
Loop
objFile.Close
Set objFile = objFSO.OpenTextFile(strFile, ForWriting)
objFile.Write strNewContents
objFile.Close

' Move updated X Files to Dropbox (and overwrite old file)
' (from %UserProfile%\Desktop\filtri.txt to C:\Dropbox\Public\abpxfiles\filtri.txt)
Const OverwriteExisting = TRUE
Set objFSO = CreateObject("Scripting.FileSystemObject")
strDropbox = "C:\Dropbox\Public\abpxfiles\"
If objFSO.FileExists(strFile) Then
objFSO.CopyFile strFile, strDropbox, OverwriteExisting
Else
MsgBox "Non sono riuscito a muovere il file dei filtri. Verifica che i puntamenti siano corretti",48,""
End If

' Open the file (verification process) and delete "Staging X Files"
strDropboxFile = "C:\Dropbox\Public\abpxfiles\filtri.txt"
CreateObject("WScript.Shell").Run strDropboxFile
objFSO.DeleteFile strFile, True

Sub Run(ByVal sFile)
' Variables definition
Dim shell
Set shell = CreateObject( "WScript.Shell" )
shell.Run Chr(34) & sFile & Chr(34), 1, false
Set shell = Nothing
End Sub

Sub DeleteLine(strFile, strKey, LineNumber, CheckCase)
'Use strFile = "c:\file.txt"   (Full path to text file)
'Use strKey = "John Doe"       (Lines containing this text string to be deleted)
'Use strKey = ""               (To not use keyword search)
'Use LineNumber = "1"          (Enter specific line number to delete)
'Use LineNumber = "0"          (To ignore line numbers)
'Use CheckCase = "1"           (For case sensitive search )
'Use CheckCase = "0"           (To ignore upper/lower case characters)
Const ForReading=1:Const ForWriting=2
Dim objFSO,objFile,Count,strLine,strLineCase,strNewFile
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objFile=objFSO.OpenTextFile(strFile,ForReading)
Do Until objFile.AtEndOfStream
strLine=objFile.Readline
If CheckCase=0 then strLineCase=ucase(strLine):strKey=ucase(strKey)
If LineNumber=objFile.Line-1 or LineNumber=0 then
If instr(strLine,strKey) or instr(strLineCase,strkey) or strKey="" then
strNewFile=strNewFile
Else
strNewFile=strNewFile&strLine&vbcrlf
End If
Else
strNewFile=strNewFile&strLine&vbcrlf
End If
Loop
objFile.Close
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objFile=objFSO.OpenTextFile(strFile,ForWriting)
objFile.Write strNewFile
objFile.Close
End Sub

Lo script si occupa quindi di prendere la lista appena esportata, aggiungere le informazioni di rilascio necessarie e infine sostituire il vecchio file filtri con quello nuovo appena lavorato. Sarà così pronto e raggiungibile per qualsiasi browser tramite aggiornamento automatico o manuale (a voi la scelta). Anche in questo caso ci sono diverse righe di debug lasciate appositamente per le verifiche del caso e magari -ancora una volta- si poteva fare “meglio con meno“.

Anche in questo caso ho voluto pubblicare lo storico delle modifiche (ad oggi c’è solo questa versione) sul Wiki: public.gfsolone.com/wiki/doku.php?id=mozilla:abpxfiles:vbs:stablemaker.

Come sempre vi invito a utilizzare l’area commenti di questo articolo nel caso in cui vogliate segnalare qualche errore o possibile miglioramento di entrambi i lavori o più semplicemente mettervi in contatto con me e ragionare insieme su come far evolvere questi codici :-)

Enjoy!

Java Update: disabilitare la richiesta di aggiornamento sul dominio (GPO, VBS)

Java UpdateSe c’è una cosa che non sopporto di Java in ambiente aziendale è la sua insistente verifica di aggiornamenti con tanto di notifica all’utente che ovviamente non potrà eseguirlo in quanto non amministratore della macchina locale. A questo aggiungete gli errori nati in concomitanza con la release 7.x e otterrete un quadretto tipico da chiamate infinite all’helpdesk chiedendo l’aggiornamento del suddetto software.

Se anche voi possedete una piattaforma di aggiornamento centralizzato per i client dell’azienda o -più semplicemente- volete sopprimere quella notifica di aggiornamento tramite GPO (su più PC in dominio) o script (uno o più PC non in dominio) questo è il “come procedere“.

Giusto per precisare: in entrambi i casi si tratta di mettere mano ad una chiave di registro perché è grazie a quella che Java fa partire la verifica e la notifica di aggiornamento, i due differenti metodi arrivano allo stesso obiettivo.

GPO

Come già detto, occorrerà modificare una chiave di registro di Windows per poter terminare ogni controllo e ogni notifica di aggiornamento del prodotto. Accedete al vostro GPO Manager e navigate fino a:

  • Computer Configuration
    • Preferences
      • Windows Settings
        • Registry

Ora occorrerà fare clic con il tasto destro nella parte di destra (in un qualsiasi punto vuoto) e selezionare New / Registry Item. A questo punto vi verranno chiesti i dettagli, questi per la precisione:

  • Action:  Update
  • Hive:  HKEY_LOCAL_MACHINE
  • Key Path:  SOFTWARE\JavaSoft\Java Update\Policy
  • Value name:  EnableJavaUpdate
  • Value type:  REG_DWORD
  • Value data:  00000000

Quella trafila dopo “Value data” corrisponde a 8 zeri e questo è il risultato in immagine:

Facendo clic su OK si tornerà alla finestra principale del registro e noterete la vostra nuova chiave nell’elenco:

Assegnate la policy appena creata alle OU che desiderate (o all’intero dominio / Authenticated Users) e attendete che i vari PC si adeguino, la vostra salute mentale e sopportazione verso gli utilizzatori ne troverà giovamento e vi ringrazierà.

Se volete verificare il corretto funzionamento della GPO vi basterà andare in Pannello di Controllo, fare doppio clic sull’icona di Java e verificare che sia sparita la tab relativa all’aggiornamento del software.

Attenzione: la soluzione proposta è valida per Java 32 bit installato su un Windows a 32 bit oppure Java 64 bit installato su un Windows a 64 bit. Se volete adattarla ad un Java 32 bit installato su un sistema a 64 potete dare un’occhiata a questo ottimo articolo: gpyall.com/archives/how-do-i-disable-32-bit-java-updates-on-64-bit-windows.

VBS (locale o in rete)

Volete evitare di mettere mano al registro ma vorreste replicare quanto spiegato qui sopra? La macchina non appartiene ad un dominio o ne avete più di una all’interno dell’ufficio e con un amministratore identico su tutte volete operare la modifica comodamente dalla vostra postazione? Qualche riga di codice VBScript può aiutarvi a portare a termine la semplice missione.

Per la singola macchina (o magari per più macchine se volete portarvi in giro una chiave USB con lo script a bordo) vi propongo qualche riga di codice che una volta eseguita opera la modifica di registro portando a termine rapidamente il tutto:


'JAVA Update Disabler (LOCAL)
'GSolone 2013
'
Set WshShell = CreateObject( "WScript.Shell" )
Set Shell = CreateObject( "WScript.Shell" )
Shell.RegWrite "HKLM\SOFTWARE\JavaSoft\Java Update\Policy\EnableJavaUpdate", 0, "REG_DWORD"
'DEBUG LETTURA NUOVO VALORE
'a = WshShell.RegRead ( "HKLM\SOFTWARE\JavaSoft\Java Update\Policy\EnableJavaUpdate" )
'Wscript.Echo "JavaUpdate value is ",a, " (0 disabled, 1 enabled)."

Ho volutamente commentato le righe appartenenti al “paragrafo” DEBUG perché servono a mostrare a video il valore della chiave di registro dopo aver lanciato lo script. Togliete l’apostrofo di commento alle ultime due righe (e solo a quelle) nel caso in cui vogliate una conferma dell’operazione.

Trovate questo script e qualsiasi eventuale nuova modifica nel Wiki: public.gfsolone.com/wiki/doku.php?id=vbs:disablejavaupdate#disabilitare_java_update_local

Qualche differenza rispetto allo script appena spiegato la trovate invece in quello per operare da remoto. Questo codice, una volta eseguito, vi chiederà il nome della macchina sulla quale collegarsi e -ammesso che le credenziali in uso siano amministrative anche sulla macchina da raggiungere- si collegherà al registro e modificherà il valore della chiave (se presente, in caso contrario l’andrà a creare):


'JAVA Update Remote Disabler
'GSolone 2013
'
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002

Set WSHShell = WScript.CreateObject("WScript.Shell")
Set WNetwork = Wscript.CreateObject("Wscript.Network")
On Error Resume Next

'Query for target PC
strComputer = InputBox("Hostname macchina di destinazione", "JavaUpdateDisabler", WNetwork.ComputerName)
If strComputer = "" Then Wscript.Quit
'strComputer = Ucase(strComputer)

Set StdOut = WScript.StdOut
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\JavaSoft\Java Update\Policy"
strValueName = "EnableJavaUpdate"
dwValue = 0
oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue

Trovate questo script e qualsiasi eventuale nuova modifica nel Wiki: public.gfsolone.com/wiki/doku.php?id=vbs:disablejavaupdate#disabilitare_java_update_remote

Insomma, in qualsiasi verso vogliate girare la questione questi sono i metodi sviluppati, provati e verificati per arrivare all’obiettivo. Per qualsiasi commento o ulteriore suggerimento l’area commenti è a vostra totale disposizione :-)

Page 3 of 38«12345»...Last »