Tag Archive - Windows

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

Xbox Music: Microsoft ci riprova?

Ultimo dei player entrato finalmente in competizione (poiché approdato su iOS e Android oltre che su Windows Phone dal lancio di Windows 8, ndr) in questo mondo di musica “in cloud” e annunciato domenica scorsa, il servizio è già noto ai possessori di Xbox e più in generale di sistemi Microsoft, prende le redini di ciò che è stato Zune proponendo un sistema “completamente nuovo” (?) che è in grado di portare la vostra musica su ogni dispositivo conosciuto. Dalla console al telefono passando dal tablet e dal web (quindi accessibile da ogni PC).

Così come per gli altri servizi anche questo concede 30 giorni di utilizzo gratuito nella sua versione più completa. Si passa poi all’account gratuito che verrà limitato a 10 ore di ascolto mensile dopo i primi 6 mesi di utilizzo. Pagando il “Xbox Music Pass” (ex-Zune Pass) ecco che si torna ad usufruire invece di tutto ciò che si desidera ovunque voi vogliate. Molto simile a Spotify per facilità di utilizzo (ma non per abbondanza di titoli da ascoltare, almeno da quanto ho potuto notare sui miei soliti artisti), non ha un vero client Windows (almeno per 7 o il vecchio Xp) ma potrete utilizzare quello web che -ovviamente- non riconosce il mio Firefox Aurora e mi chiede di aggiornarlo (sigh), i miei test sono stati quindi condotti con Chrome:

Controlli spartani ma sufficienti, un motore di ricerca che non propone i possibili risultati durante la digitazione, un caricamento apparentemente lento dei dati immagine (copertine, fotografie) nonostante la linea di partenza sia più che sufficiente, è un servizio giovane e dovrà indubbiamente fare tanta strada per recuperare il passo, soprattutto perché nato dalle ceneri di qualcosa parecchio bistrattato in passato, almeno nella nostra nazione.

Mancano ancora le Playlist e le Radio per come tanti di noi le conoscono perché in un certo senso “istruiti” da Spotify o RDio (di cui presto vi parlerò in una comparativa che prenderà in esame anche Xbox Music, ndr) ma è già possibile mettere sotto lo stesso tetto più titoli di nostro gradimento per creare una lista personale. Le stazioni radio basate sui nostri gusti arriveranno presto.

Il confronto con Spotify è inevitabile, e preso nella sua interfaccia web è decisamente migliore in quanto offre maggiori controlli e funzioni chiaramente già presenti, che arriveranno in un secondo momento -spero- sulla piattaforma di Microsoft, non fosse perché ormai gli utenti danno per scontato alcuni servizi e alcune funzionalità anche nel caso in cui non verranno sfruttate, “però lui le ha e tu no” (cit.)

Mettiamola così: l’interfaccia web ne esce “bene” raggiungendo una di quelle sufficienze tipiche da scuola superiore, quella “il suo ragazzo è bravo ma non si impegna“.

Ah si, un’altra cosa: allo stato attuale Xbox Music (anche nella sua versione “Desktop” per Windows 8) non è in grado di interfacciarsi con Last.fm, non riuscirete quindi ad aggiornare i vostri ascolti in diretta (né tanto meno in differita), ci sono un paio di discussioni in merito su ambo i lati, qui sul forum di Last.fm, qui su quello di Microsoft, in attesa che venga introdotto un supporto che molti ascoltatori vedono come un must-have al fianco del proprio lettore musicale preferito, sia esso online o offline.

Mobile

Applicazione gratuita disponibile su AppStore o Google Play Store con la sua inconfondibile icona che replica “le mattonelle” di Windows 8. Pesa circa 9MB e una volta scaricata vi chiederà di accedere con il vostro Microsoft ID (con tanto di codice di sicurezza se avete abilitato la verifica in 2-step di Microsoft, presto l’articolo che vi spiegherà il da farsi, ndr). Non molto ricca e con pochissime impostazioni ancora (e la qualità?):

ma curata quando si tratta di far vedere la lista dei brani o degli album di un particolare artista o le copertine di ciò che state ascoltando:

Anche in questo caso ho notato una lentezza davvero anomala nel cambio traccia o lasciando andare avanti la riproduzione. Al confronto, Xbox Music viene totalmente bruciato dal player di Spotify sulla stessa identica piattaforma e con la stessa posizione di sempre (ascolto musica in streaming principalmente quando sono in palestra, rete H3G 3G). Sarà il grosso carico di lavoro della piattaforma ora che è stata completamente “aperta al pubblico“, sarà la forza dell’abitudine del poter impostare una qualità che predilige il risparmio di banda più che la qualità audio quando non si è coperti da una rete WiFi, occorrerebbe rifare il test tra qualche giorno quando le acque si saranno calmate.

In conclusione

Il fine non giustifica i mezzi, non stavolta almeno, e più che il fine direi il prezzo. Un account premium del servizio Xbox Music costa 9,90€ al mese (o 99,90 all’anno con un risparmio di 19€ circa se pagato in soluzione unica) e ora come ora offre meno funzioni rispetto ai suoi competitor.

Una possibile idea, nel caso in cui Microsoft si impegni a realizzare qualcosa di più ricco rispetto ad oggi, è quella di attendere giorni migliori quindi migrare verso questo ulteriore lido (perché tutto sommato aggiungere un ulteriore servizio al già ricco panorama di ciò che offre il big di Redmond non è mai un’idea cattiva) oppure rimandare tutto “a settembre“, quello dell’anno prossimo, giusto in tempo per lasciar scadere l’abbonamento annuale di Spotify e valutare se esistono reali alternative a questo top di gamma (nonostante diversi miglioramenti possibili anche in questo caso!).

Speravo si fosse chiuso completamente il capitolo Zune dando origine a qualcosa di completamente nuovo, eppure alcune pecche di quel servizio continuano a rimanere vive e vegete, dai Microsoft, so che puoi fare decisamente di meglio.

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