lunedì 3 novembre 2014

VBS: Recuperare il product key di Windows tramite VBS


Esistono diversi tool di terze parti che permettono il recupero del product key del sistema operativo e di altre applicazioni, tra questi segnalo l'ottimo ProduKey della NirSoft (www.nirsoft.net) scaricabile gratuitamente ed eseguibile senza alcuna installazione.
In questo articolo verrà mostrato come recuperare il product key di Windows tramite uno script VBS.
Il Product Key di Windows è una sequenza di 25 caratteri (lettere e numeri) divisi in 5 gruppi da 5 caratteri ognuno. I caratteri utilizzati all'interno di un product key sono BCDFGHJKMPQRTVWXY2346789 mentre non vengono utilizzati i caratteri AEILNOSUZ015. Il product key è memorizzato all'interno del registro di sistema e codificato in un valore DWORD all'interno della chiave HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId.
Nella decodifica del valore DWORD DigitalProductId bisogna fare attenzione alla versione di Windows infatti, a partire da Windows 8, il metodo di codifica del product key è cambiato.

Lo script che ho creato visualizza le informazioni relative al nome del prodotto, il Product ID e il Product Key permettendo, inoltre, di salvare le informazioni trovate all'interno di un file di testo (.txt).
Di seguito il sorgente dello script VBS


Option Explicit 

Dim strComputer, objWMIService, objItem, Caption, colItems
Dim ProductName,ProductID,ProductKey,ProductInfo, Version, Win8Version, WinOlderVersion
Win8Version = "6.2 6.3"
WinOlderVersion ="6.1 6.0 5.2 5.1 5.0"

'Di seguito i valori della stringa CurrentVersion presente all'interno della chiave HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion che indica la versione di Windows
'Windows 8.1                 6.3
'Windows Server 2012 R2      6.3
'Windows 8                   6.2
'Windows Server 2012         6.2
'Windows 7                   6.1
'Windows Server 2008 R2      6.1
'Windows Server 2008         6.0
'Windows Vista               6.0
'Windows Server 2003 R2      5.2
'Windows Server 2003         5.2
'Windows XP 64-Bit Edition   5.2
'Windows XP                  5.1
'Windows 2000                5.0
'Crea oggetto wscript.shell
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
' in Caption memorizzo la Versione di Windows
For Each objItem in colItems
    Caption = objItem.Caption  
Next
 Dim objshell,path,DigitalID, Result 
 Set objshell = CreateObject("WScript.Shell")
 'Recupero le informazioni dalle chiavi di registro"
 DigitalID = objshell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId")
 ProductName = "Product Name: " & objshell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")
 ProductID = "Product ID: " & objshell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductID")
 Version= objshell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion")
 
 If InStr(Win8Version,Version) Then
  'Windows 8 o Windows 8.1
  ProductKey = "Product Key: " & GetKeyWindows8(DigitalID) 
 Else
  If InStr(WinOlderVersion,Version) Then
     ' Windows 7 o antecedente
  ProductKey = "Product Key: " & GetKeyWindows7(DigitalID) 
  Else
     msgBox "Versione di Windows non supportata." & vblf &"Il presente Script è stato testato per versioni di Windows comprese tra Windows 2000 e Windows 8.1" , vbOKOnly+vbCritical, "Versione Windows non supportata"
  ProductKey ="Product Key: Non Rilevato"
     End If   
  
 End If
 
 ProductInfo = ProductName  & vbNewLine & ProductID  & vbNewLine & ProductKey
 'Mostra i dati e chiedi se si intende salvare in un file
 If vbYes = MsgBox(ProductInfo  & vblf & vblf & "Vuoi salvare le informazioni in un file?", vbYesNo + vbQuestion, "Windows Product Key") then
    Save ProductInfo
 End If


'Convert i valori binari della chiave "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId" in caratteri per Windows 8
Function GetKeyWindows8(Key)
    Const KeyOffset = 52
    Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert
    'Check if OS is Windows 8
    isWin8 = (Key(66) \ 6) And 1
    Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
    i = 24
    Maps = "BCDFGHJKMPQRTVWXY2346789"
    Do
        Current= 0
        j = 14
        Do
           Current = Current* 256
           Current = Key(j + KeyOffset) + Current
           Key(j + KeyOffset) = (Current \ 24)
           Current=Current Mod 24
            j = j -1
        Loop While j >= 0
        i = i -1
        KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutput
        Last = Current
    Loop While i >= 0 
    keypart1 = Mid(KeyOutput, 2, Last)
    insert = "N"
    KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
    If Last = 0 Then KeyOutput = insert & KeyOutput
    GetKeyWindows8 = Mid(KeyOutput, 1, 5) & "-" & Mid(KeyOutput, 6, 5) & "-" & Mid(KeyOutput, 11, 5) & "-" & Mid(KeyOutput, 16, 5) & "-" & Mid(KeyOutput, 21, 5)
 
End Function
'Converte i valori binari della chiave "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId" in caratteri per Windows 7
Function GetKeyWindows7(ProductID)
    Const KeyOffset = 52
 Dim i, Cur, x, Maps
    i = 0
    Maps = "BCDFGHJKMPQRTVWXY2346789"
    Do
        Cur = 0
        x = 14
  i=i+1
        Do
            Cur = Cur * 256
            Cur = ProductID(x + KeyOffset) + Cur
            ProductID(x + KeyOffset) = (Cur \ 24) And 255
            Cur = Cur Mod 24
            x = x -1
        Loop While x >= 0
  if (i Mod 6) = 0 Then
   ProductKey = "-" & ProductKey
   i = i + 1
  End If  
  ProductKey = Mid(Maps, Cur + 1, 1) & ProductKey   
    Loop While i < 29
    GetKeyWindows7 = ProductKey
End Function

'Salva i dati in un file
Function Save(Data)
    Dim fso, fName, txt,objshell,UserName
    Set objshell = CreateObject("wscript.shell")
    'Crea un file di testo con nome WindowsKeyInfo.txt, nello stesso percorso del vbs, contenente le informazioni
    fName = "WindowsKeyInfo.txt"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set txt = fso.CreateTextFile(fName)
    txt.Writeline Data
    txt.Close
End Function

Per chi volesse scaricare il file VBS può utilizzare il link di seguito
DOWNLOAD

mercoledì 29 ottobre 2014

Windows Quick Tip: Abilitare/Disabilitare BLOC SCORR, BLOC NUM e BLOC MAIUSC tramite registro

In questo articolo vedremo come abilitare/disabilitare BLOC SCORR, BLOC NUM e BLOC MAIUSC (conosciuti anche come Toggle Keys) agendo tramite il registro di sistema. Dobbiamo solo decidere se vogliamo impostare lo stato dei Toggle Keys solo per un utente (e quindi dopo il suo logon) oppure all'avvio del sistema operativo.

Per abilitare/disabilitare uno o più Toggle Keys per l'utente corrente:
  • Accedere all'editor di registro (regedit.exe) e posizionarsi su
    HKEY_CURRENT_USER\Control Panel\Keyboard
  • Assegnare alla stringa InitialKeyboardIndicators uno dei seguenti valori in base a ciò che si intende abilitare/disabilitare

    Valore  BLOC MAIUSC    BLOC NUM    BLOC SCORR  
    0 Disabilitato Disabilitato Disabilitato
    1 Abilitato Disabilitato Disabilitato
    2 Disabilitato Abilitato Disabilitato
    3 Abilitato Abilitato Disabilitato
    4 Disabilitato Disabilitato Abilitato
    5 Abilitato Disabilitato Abilitato
    6 Disabilitato Abilitato Abilitato
    7 Abilitato Abilitato Abilitato
Le impostazioni verranno attivate al successivo logon dell'utente.


Per abilitare/disabilitare i Toggle Keys all'avvio del sistema operativo:
  • Accedere all'editor di registro (regedit.exe) e posizionarsi su
    HKEY_USERS\.Default\Control Panel\Keyboard
  • Assegnare alla stringa InitialKeyboardIndicators uno dei seguenti valori in base a ciò che si intende abilitare/disabilitare

    Valore BLOC MAIUSC   BLOC NUM   BLOC SCORR  
    0DisabilitatoDisabilitatoDisabilitato
    1AbilitatoDisabilitatoDisabilitato
    2DisabilitatoAbilitatoDisabilitato
    3AbilitatoAbilitatoDisabilitato
    4DisabilitatoDisabilitatoAbilitato
    5AbilitatoDisabilitatoAbilitato
    6DisabilitatoAbilitatoAbilitato
    7AbilitatoAbilitatoAbilitato

In alcuni casi potremmo notare che alla stringa InitialKeyboardIndicators è stato assegnato il valore 2147483648. Tale valore ha lo stesso effetto del valore 0.

Alcuni BIOS presentano delle voci che ci permettono di abilitare uno o più Toggle Key direttamente all'accensione della postazione. 

Le modifiche sopra indicate funzionano per tutte le versioni di Windows a partire da Windows 2000 a Windows 8.1.

lunedì 27 ottobre 2014

Outlook: Disabilitare opzione Scarica cartelle condivise e Scarica cartella Preferite di Cartelle pubbliche tramite registro


Le opzioni Scarica cartelle condivise e Scarica cartella Preferite di Cartelle pubbliche permettono di scaricare in locale, all'interno del file .OST quando outlook funziona in cached mode, il contenuto delle cartelle aggiuntive e la cartella Preferite delle cartelle pubbliche.
Se da una parte questo consente di consultare il contenuto delle caselle anche offline, dall'altra può far crescere il file OST spropositatamente. Per disabilitare tali opzioni tramite registro è possibile procedere nel seguente modo:


  • Accedere all'editor di registro (regedit.exe)
  • In Outlook 2010 posizionarsi su
    [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\<nome_profilo_posta>]
    in Outlook 2013 posizionarsi su
    [HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles\<nome_profilo_posta>]
  • Cercare il valore DWORD 00036601 e assegnargli i seguenti valori in base a ciò che si intende abilitare/disabilitare

    Valore  Scarica cartelle condivise    Scarica cartella Preferite di Cartelle pubbliche  
    84 11 00 00  Disabilitata Disabilitata
    84 19 00 00  Abilitata Disabilitata
    84 1d 00 00  Abilitata Abilitata
    84 15 00 00  Disabilitata Abilitata

Scarica cartelle condivise e Scarica cartella Preferite di Cartelle pubbliche
FIG 1 - Scarica cartelle condivise e Scarica cartella Preferite di Cartelle pubbliche

martedì 21 ottobre 2014

Windows Quick Tip: Disabilitare Aero Shake in Windows 7, Windows 8 e Windows 8.1

Con l'introduzione di Aero a partire da Windows Vista sono stati implementati diversi accorgimenti, alcuni solo estetici, che rendono più interattiva l'interfaccia di Windows.
Tra le funzionalità introdotte troviamo Aero Shake una funzione che ci consente di ridurre tutte le finestre tranne quella di nostro interesse: basta scuotere con il mouse la finestra che vogliamo tenere attiva e tutte le altre verranno minimizzate. 
In questo articolo mostrerò come disabilitare Aero Shake sia tramite chiavi di registro che tramite Criteri di gruppo.

Per disabilitare Aero Shake tramite chiavi di registro:
  • Accedere all'editor di registro e posizionarsi su 
    HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows
  • Creare un valore DWORD (32-bit), rinominarlo in NoWindowMinimizingShortcuts e valorizzarlo 1.
Per abilitare nuovamente la funzionalità basta eliminare il valore  NoWindowMinimizingShortcuts oppure valorizzarlo a 0.

Di seguito è possibile scaricare i file .reg per abilitare/disabilitare Aero Shake.
DOWNLOAD


Aero Shake si può disabilitare anche con l'Editor Criteri di gruppo locali (per le versioni di Windows Professional e superiori)
  • Da Start->Esegui (Windows + R) digitare gpedit.msc e premere invio
  • Dall'interfaccia dell'Editor posizionarsi su Configurazione utente -> Modelli Amministrativi ->Active Desktop
  • Cliccare 2 volte su Disattiva movimento del mouse per riduzione a icona finestre Aero Shake quindi disattivare/attivare la funzione selezionando l'apposita opzione.

Editor Criteri di gruppo locali
FIG 1 - Editor Criteri di gruppo locali

lunedì 20 ottobre 2014

Windows Quick Tip: Disabilitare l'avvio rapido in Windows 8 e Windows 8.1

A partire da Windows 8 è stata introdotta una nuova funzionalità all'interno del Sistema Operativo Microsoft con l'intento di velocizzarne l'avvio: avvio rapido. Molti avranno notato che il nuovo Sistema Operativo impiega pochi secondi per avviarsi. Questa nuova funzionalità presenta, tuttavia, diversi punti a sfavore.
Con l'avvio rapido attivato quando si spegne il PC in realtà lo si mette in uno stato di sospensione: i driver, le impostazioni, i file e il registro vengono mantenuti in memoria in modo tale che all'avvio successivo non debbano essere cercati e caricati. Sappiamo bene che in alcuni casi per ovviare a qualche anomalia/blocco del sistema operativo si procede allo spegnimento e riaccensione della postazione. Con l'avvio rapido attivato non otterremmo l'effetto sperato.
Nel caso di dual boot (in particolare con una partizione condivisa fra i 2 sistemi) o nel caso di interruzione dell'alimentazione durante la "sospensione" indotta dall'opzione avvio veloce si potrebbe provocare anche la corruzione dei dati. Quest'ultimo aspetto è probabilmente quello più inquietante. 

Per disattivare l'opzione avvio veloce possiamo procedere con i seguenti passaggi:
  • Premiamo Windows + X e dal menu selezioniamo la voce Opzioni di spegnimento;
  • sul lato sinistro della nuova finestra selezioniamo Specifica comportamento pulsanti di alimentazione
  • Clicchiamo su Modifica le impostazioni attualmente non disponibili

Modifica le impostazioni attualmente non disponibili
FIG 1 - Modifica le impostazioni attualmente non disponibili

  • Scorriamo nella parte inferiore della finestra e togliamo la spunta alla voce Attiva avvio rapido
Attiva avvio rapido
FIG 2 - Attiva avvio rapido
Per disabilitare l'avvio veloce tramite chiavi di registro è possibile procedere nel seguente modo
  • Accedere all'editor di registro e posizionarsi su
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power
  • Creare, se non presente, un valore DWORD nominarlo HiberbootEnabled e valorizzarlo a 0
Per abilitare l'avvio rapido basta valorizzare HiberbootEnabled a 1

Di seguito è possibile scaricare i file .reg per abilitare e disabilitare l'avvio rapido
DOWNLOAD




mercoledì 15 ottobre 2014

Dare nuova vita ai vecchi iPhone e iPod Touch

Apple continua ad aggiornare il suo iOS. Nella corsa all'evoluzione del sistema operativo iOS sono rimasti fuori i vecchi device della casa della mela. Per chi volesse dar nuova vita ai vecchi dispositivi Apple può provare ad installare Whited00r 7 che promette l'esperienza d'uso e l'aspetto di iOS 7 anche sui vecchi device. Whited00r 7 può essere scaricato da www.whited00r.com e al momento i dispositivi supportati sono iPhone 2G, iPhone 3GiPod Touch 1GiPod Touch 2G MBiPod Touch 2G MC.
Una volta scaricata la versione di Whited00r 7 per Windows relativa al proprio dispositivo basta scompattare il file zip ed eseguire il file RedSn0w.exe contenuto al suo interno. Nella finestra di RedSn0w cliccare sul pulsante Extra quindi su Pwned DFU ed seguire le istruzioni mostrate a video. L'operazione porta il dispositivo in modalità Pwned DFU (schermo nero). A questo punto avviare iTunes e, tenendo premuto il tasto Shift sulla tastiera, cliccare su Ripristina. Selezionare il file con estensione .ipsw contenuto nella cartella dove è stato scompattato il file zip e attendere che Whited00r venga installato quindi procedere al riavvio del dispositivo.

Windows Quick Tip: Velocizzare l'anteprima della barra delle applicazioni tramite registro


Per velocizzare l'anteprima che viene mostrata quando ci spostiamo con il mouse sulle icone delle applicazioni presenti nella taskbar possiamo agire tramite il registro di configurazione.

  • Avviare l'editor del registro (regedit.exe)
  • Posizionarsi su
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
  • Creare un nuovo valore DWORD, nominarlo in ExtendedUIHoverTime e valorizzarlo a 100 (valore decimale)
Affinché le modifiche diventino effettive è necessario riavviare il sistema.
L'operazione funziona su Windows 7, Windows 8 e Windows 8.1

Dal seguente link è possibile scaricare il file .reg
DOWNLOAD