Abilitare AHCI/RAID nei chipset Intel evitando l’errore 0x0000007B in Windows XP

Problema: abilitando nel BIOS le funzioni AHCI oppure RAID del controller Serial ATA integrato nelle schede madri dotate dei nuovi chipset Intel, si ottiene un errore STOP 0x0000007B (INACCESSIBLE_BOOT_DEVICE) al successivo avvio di Windows XP. Ripristinando la modalità compatibile IDE il computer torna ad avviarsi correttamente.

Dettagli: l’errore 0x7B compare in quanto Windows non contiene i driver per i controller SATA in modalità AHCI/RAID – di conseguenza non è più in grado di accedere ai file dell’installazione, fondamentali per l’avvio.

Soluzione: è necessario procedere ad alcuni passaggi per installare i driver Intel necessari. Per eseguire l’operazione sono necessari i diritti amministrativi.

  1. Scaricare dal sito Intel il software Matrix Storage Manager
  2. Estrarre i driver dal file appena scaricato aggiungendo l’opzione -a (es. iata82_cd.exe -a)
  3. Aprire Gestione periferiche in Gestione computer (compmgmt.msc)
  4. Espandere la voce Controller IDE ATA/ATAPI
  5. Avviare la procedura per l’aggiornamento dei driver del controller SATA – il nome riportato varia a seconda della versione del chipset in uso – es. Intel(R) ICH9/DO/DH 4 port Serial ATA Storage Controller 1 – 2920 è relativo al chipset ICH9.
  6. Selezionare l’aggiornamento manuale, quindi specificare il percorso %PROGRAMFILES%\Intel\Intel Matrix Storage Manager\Driver oppure Driver64 per sistemi 64bit. Selezionare la versione AHCI o RAID relativa alla stessa famiglia del chipset attualmente in uso. È normale che compaia una finestra di avvertimento che ne sconsiglia l’installazione in quanto AHCI/RAID non è ancora attivo.
  7. Riavviare il computer
  8. Accedere al BIOS ed attivare la funzione AHCI oppure RAID.
  9. Installare Intel Matrix Storage Manager nel caso si voglia monitorare lo stato dei dischi in modalità RAID.

Soluzioni alternative: è possibile avviare il computer dal CD-ROM di installazione, premere F6 all’inizio del setup e salvare i file della cartella Driver all’interno di un floppy, quindi al momento della richiesta di dove installare Windows, premere R per riparare l’installazione rilevata. Questa soluzione ha lo svantaggio di azzerare gli aggiornamenti installati e reimposta la product-key.

Alcune applicazioni non usano OpenOffice per i documenti RTF

Problema: alcuni applicativi non usano OpenOffice Writer per aprire i file RTF dei report o delle stampe generate dal programma stesso, anche se l’estensione RTF risulta essere associata correttamente ad OpenOffice.

RTF OpenOffice.org

Soluzione: è necessario modificare un valore nel registro di Windows. Per eseguire l’operazione sono necessari i diritti amministrativi.

  • Eseguire %windir%\regedit.exe
  • Navigare alla chiave HKEY_CLASSES_ROOT\.rtf
  • Modificare il valore Predefinito in OpenOffice.org.rtf

Dettagli: questo problema capita frequentemente installando un programma che associa l’estensione RTF a sé, per poi successivamente modificare l’associazione utilizzando “Opzioni cartella” del pannello di controllo oppure il menu contestuale “Apri con…”. Così facendo alcuni valori nel registro non sono modificati ed alcuni programmi potrebbero continuare ad utilizzare la precedente associazione.

Icona di Internet Explorer 7 mancante nel menu Start

Problema: dopo l’aggiornamento ad Internet Explorer 7, nel menu Start di Windows XP l’icona relativa al collegamento ad Internet Explorer 7 risulta mancante.

Icona IE7 mancante

Soluzione: è necessario modificare un valore nel registro di Windows per ripristinare la corretta icona da visualizzare nel menu Start. Per eseguire l’operazione sono necessari i diritti amministrativi.

  • Eseguire %windir%\regedit.exe
  • Navigare alla chiave HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\IEXPLORE.EXE\DefaultIcon
  • Modificare il valore di default in %ProgramFiles%\Internet Explorer\iexplore.exe,-32528
  • Riavviare il computer

Disconnettere le sessioni RDP rimaste aperte sul server

Quando si superano il numero massimo di connessioni contemporanee ai Servizi Terminal di Windows – che in modalità amministratore sono limitate a 2 – risulta impossibile ricollegarsi ed amministrare il server. Questo succede soprattutto quando vengono state lasciate aperte delle sessioni da alcuni utenti che non si disconnettono correttamente – sia deliberatamente chiudendo il client di Desktop Remoto senza effettuare il logoff, che involontariamente a causa della caduta della connessione.

Avviso di Servizi Terminal

Per ripristinare il servizio senza riavviare il server è necessario eseguire alcuni comandi, da console oppure tramite telnet/SSH.

Ottenere la lista delle sessioni aperte

Per prima cosa è necessario conoscere quali sessioni sono rimaste appese sul server.

QUERY SESSION /SERVER:nomeserver

Il risultato del comando è una tabella con tutte le sessioni del server, compreso la console e la sessione RDP riservata al login/logoff. L’opzione /server può essere omessa: nel caso viene eseguita la query in locale.

NOMESESSIONE NOMEUTENTE ID STATO TIPO PERIFERICA
console 0 Conn wdcon
rdp-tcp 65536 Attendi connessione rdpwd
9 ConnQ
>rdp-tcp#19 davidebia 10 Attivo rdpwd

Per le operazioni successive il valore da segnare è il nome della sessione, che nell’esempio corrisponde a rdp-tcp#19.

Forzare la disconnessione

A questo punto, conoscendo il nome delle sessioni da chiudere, è possibile procedere alla disconnessione, una alla volta.

LOGOFF nomesessione /SERVER:nomeserver

Viene eseguito un normale logoff, con salvataggio del profilo ed esecuzione degli script di logout – è normale che richieda qualche minuto per i profili di grosse dimensioni.

Bypassare firewall e protezioni da remoto

Eseguendo le operazioni descritte da LAN o in locale non dovrebbero esserci particolari difficoltà, invece se l’host da ripristinare è esposto su Internet è probabile che la porta UDP 135 del protocollo RPC sia chiusa da un firewall.

Errore 1722 durante la ricezione dei nomi sessione
Errore [1722]:Server RPC non disponibile.

La soluzione migliore per bypassare il problema è quella di progettare una VPN o di installare un server SSH. In questo modo è possibile eseguire i comandi come se fossimo in LAN o locale senza compromettere la sicurezza del server. Come soluzione di emergenza, è possibile tuttavia utilizzare alcuni espedienti:

  • Se è un server di posta (mail server), molto probabilmente è possibile creare degli account “eseguibili”, quindi creare un apposito script batch/WSH da caricare sul server.
  • Se è un server web, molto probabilmente sono presenti PHP, ASP o ASP.NET. Tutti questi linguaggi hanno la possibilità di eseguire comandi e leggere l’output.

In tutti i casi è fortemente consigliato proteggere l’esecuzione della procedura con login/password.

Lettera d’unità non assegnata e non modificabile

Problema: alcune unità disco non possiedono più la lettera di unità e non è possibile né assegnarla, né modificarla. Utilizzando Gestione Disco (diskmgmt.msc) la partizione viene rilevata e riconosciuta come integra, ma quando si tenta di assegnare la lettera d’unità la relativa opzione risulta disabilitata (grayed).

Problema con le lettera d’unità

Soluzione: molto probabilmente è stata modificata la tabella della partizioni inserendo un Partition ID non valido. Utilizzare un qualsiasi programma in grado di modificare la tabella e ripristinare i valori corretti (0B per FAT32 e 07 per NTFS).

Dettagli: questo problema può essere causato dalla disinstallazione di Norton GoBack quando l’unità non è collegata al sistema. GoBack modifica il tipo di partizione in 44 per tutti i dischi rigidi presenti, e ripristina il valore iniziale alla disinstallazione. Anche un virus o altro programma malevolo potrebbe modificare la tabella delle partizioni, rendendo inaccessibili i dischi una volta rimosso.

Approfondimenti:

Errore “Impossibile trovare il file specificato” durante l’installazione dei driver

Problema: durante la wizard di installazione di un driver per un nuovo hardware, o durante l’aggiornamento dei driver per l’hardware esistente, si ottene un errore al termine della procedura.

Impossibile trovare il file specificato

Messaggio di errore: la wizard “Installazione guidata nuovo hardware” termina con la dicitura “Errore durante l’installazione dell’hardware – Impossibile trovare il file specificato”.

Soluzione: la chiave di registro HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce è mancante. Tale chiave è necessaria durante il rilevamento delle periferiche Plug & Play.

  • Accedere al computer con i privilegi di amministratore
  • Aprire l’editor del registro di sistema – %windir%\regedit.exe
  • Navigare fino alla chiave HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
  • Clic su Modifica > Nuovo > Chiave, quindi digitare RunOnce
  • Uscire da tutti i programmi e riavviare il computer

Errore 0x52F in Microsoft Update

Durante l’utilizzo di Microsoft Update, il nuovo strumento per eseguire gli aggiornamenti di vari prodotti Microsoft, può succedere che gli aggiornamenti che riguardano Office 2003 non vengano installati, mentre quelli di Windows si concludano correttamente.

Osservando la cronologia degli aggiornamenti, è sempre riportato l’errore 0x52F per tutti gli aggiornamenti di Office 2003 che si è tentato di installare.

Il problema è causato dalla copia locale dell’installazione (LIS – Local Installation Source) che viene appositamente lasciata dal programma di setup di Office per consentire la riparazione e la modifica dell’installazione senza bisogno del CD o del percorso di installazione originale.

LIS consente a Microsoft Update di scaricare solo i file strettamente necessari, contenendo la dimensione del download. Tuttavia se LIS è danneggiata o non più disponibile, mancheranno dei componenti indispensabili senza i quali l’aggiornamento fallisce.

Per risolvere il problema è necessario disabilitare LIS e scaricare nuovamente gli aggiornamenti da Microsoft Update (che ora dovrebbero essere di dimensione maggiore). Microsoft mette a disposizione un tool che cancella e disabilita LIS. Probabilmente al primo tentativo di aggiornamento si otterrà nuovamente l’errore, in quanto Microsoft Update potrebbe conservare ancora in cache i file che richiedono LIS. In questo caso è sufficiente riavviare e scaricare nuovamente gli aggiornamenti.

Debugging con la funzione dump e la console di Mozilla Firefox

Il sistema più semplice e diffuso per effettuare il debug di una applicazione JavaScript, è quello di piazzare un alert nel mezzo del codice sorgente, al fine di controllare il contenuto di alcune variabili.

alert("Hello Firefox");

Questo approccio, sicuramente immediato, purtroppo non può essere utilizzato in tutte le situazioni. Il classico esempio sono le richieste XMLHttpRequest negli script: la comparsa della finestra pop-up interrompe lo script finché non si preme il pulsante OK, e tutti gli eventi che occorrono nel frattempo – quali readyStateChange – non vengono gestiti, causando effetti imprevisti.

Per ottenere un monitoraggio molto più attendibile, si può utilizzare la console di Firefox, una caratteristica non molto conosciuta del browser di casa Mozilla, che richiede però alcuni interventi per essere utilizzata.

Avvio della console di Firefox

Innanzitutto la console di Firefox non va assolutamente confusa con la console degli errori, già abilitata di default in tutte le installazioni, ed accessibile attraverso il menù Strumenti. Si tratta di una vera e propria console, molto simile ad un terminale, che può essere usata anche per interagire con le sessioni aperte ed inviare comandi al browser.

Console di Firefox

Per avviare la console di Firefox, è necessario controllare che tutte le sessioni correnti siano chiuse, quindi riavviare il browser con il parametro -console. In Windows, si può utilizzare il prompt dei comandi oppure la finestra “Esegui” del menu start, e digitare il comando.

"%programfiles%\Mozilla Firefox\firefox.exe" -console

Se la console non dovesse aprirsi, controllate che il processo di Firefox non sia ancora in esecuzione (in Windows tramite Task Manager) ed eventualmente forzatene la chiusura. Per il futuro, per facilitare l’avvio della console, consiglio di creare un collegamento sul desktop.

Abilitazione della funzione window.dump

Per scrivere nella console si utilizza la funzione dump, che di default non è abilitata. Nella barra degli indirizzi è necessario accedere ad about:config ed aggiungere un nuovo valore booleano oppure modificare il file user.js nel proprio profilo.

browser.dom.window.dump.enabled = true

Una volta effettuata la modifica alla configurazione, è necessario riavviare nuovamente Firefox affinché abbia effetto.

Utilizzo della funzione window.dump

La sintassi è molto semplice ed è molto simile agli alert.

dump("Hello Firefox\n");

Come si può notare, è stato usato un carattere newline (capo riga) alla fine della stringa. Consiglio di aggiungerlo sempre, per rendere maggiormente leggibili i log sullo schermo della console.

Installare WP-Cache su Windows e IIS

WP-Cache è un ottimo plug-in per velocizzare WordPress, effettuando la cache delle pagine già servite in precedenza. Purtroppo non è ben progettato per IIS: dopo averlo installato, la pagina di amministrazione risulterà bianca, quando invece dovrebbe auto-configurarsi e mostrare delle opzioni.

Per renderlo funzionante su Windows ed in particolare IIS, è necessario effettuare alcune modifiche ai sorgenti e successivamente procedere alla configurazione manuale.

Modifiche ai sorgenti

Nel file /wp-content/plugins/wp-cache/wp-cache.php, dalla riga 491, la funzione wp_cache_check_link utilizza dei link simbolici.

function wp_cache_check_link() {
global $wp_cache_link, $wp_cache_file;

if ( basename(@readlink($wp_cache_link)) != basename($wp_cache_file)) {
@unlink($wp_cache_link);
if (!@symlink ($wp_cache_file, $wp_cache_link)) {
echo "<code>advanced-cache.php</code> link does not exist<br />";
echo "Create it by executing: <br /><code>ln -s $wp_cache_file $wp_cache_link</code><br /> in your server<br />";
return false;
}
}
return true;
}

I link simbolici non sono implementati in Windows, e vanno quindi rimosse le funzioni symlink e readlink. Consiglio di effettuare un semplice controllo sull’esistenza del file advanced-cache.php.

function wp_cache_check_link() {
global $wp_cache_link, $wp_cache_file;

if(!file_exists($wp_cache_link))
{
echo "<code>advanced-cache.php</code> link does not exist<br />";
echo "Create it by executing: <br /><code>ln -s $wp_cache_file $wp_cache_link</code><br /> in your server<br />";
return false;
}
return true;
}

Sempre nello stesso file, si utilizza la costante __FILE__

add_options_page('WP-Cache Manager', 'WP-Cache', 5, __FILE__, 'wp_cache_manager');

Questo può causare alcuni problemi con le barre rovesce dei percorsi, per cui consiglio di fornire solo il nome del file, dato che WordPress è in grado di ricostruire comunque il percorso corretto del plug-in.

add_options_page('WP-Cache Manager', 'WP-Cache', 5, basename(__FILE__), 'wp_cache_manager');

Nel file /wp-content/plugins/wp-cache/wp-cache-phase1.php, alla riga 23, si fa uso della variabile $_SERVER['REQUEST_URI'] che purtroppo in Windows contiene solo parte del permalink.

$key = md5($_SERVER['SERVER_NAME'].preg_replace('/#.*$/', '', $_SERVER['REQUEST_URI']).wp_cache_get_cookies_values());

Il valore corretto lo otteniamo concatenando $_SERVER['SCRIPT_NAME'] e $_SERVER['PATH_INFO']

$key = md5($_SERVER['SERVER_NAME'].preg_replace('/#.*$/', '', $_SERVER['SCRIPT_NAME'].$_SERVER['PATH_INFO']).wp_cache_get_cookies_values());

Per lo stesso motivo è da sistemare il file /wp-content/plugins/wp-cache/wp-cache.php, sostituendo tutte le occorrenze di $_SERVER['REQUEST_URI'].

echo '

';

In questo caso utilizziamo una soluzione standard, usata anche in altri plug-in, per indicare la pagina corrente.

echo '

';

L’operazione deve essere ripetuta su tutto il file, alle righe 253, 272, 305, 329, 351, 556, 590, 605 e 613.

Configurazione manuale

Dopo aver eseguito le modifiche ai sorgenti, è possibile procedere alla configurazione del plug-in

  • Copiare rinominandolo il file /wp-content/plugins/wp-cache/wp-cache-phase1.php in /wp-content/advanced-cache.php
  • Creare la cartella /wp-content/plugins/cache
  • Concedere i diritti di scrittura a IIS alla cartella /wp-content. Dopo la configurazione, sono sufficienti i permessi per la cartella /wp-content/plugins/cache e /wp-content/plugins/wp-cache ed il file /wp-content/wp-cache-config.php.
  • Modificare il file wp-config.php aggiungendo una costante
    define('WP_CACHE', true);

A questo punto, per far entrare in funzione il plug-in, non resta che accedere alla pagina di amministrazione, dove dovrebbero essere comparse tutte le opzioni di configurazione, ed attivare la cache con l’apposito pulsante.

Fonti di riferimento

Rinominare gli utenti in Windows XP Home Edition

In Windows XP Home Edition è particolarmente ostico rinominare un account utente, in quanto utilizzando la funzione di rinomina in “Account utente” del pannello di controllo in realtà si cambia solo il valore il nome completo (Full Name). Inoltre non è presente lo snap-in “Utenti e gruppi” (lusrmgr.msc), presente nella versione Professional, che consente di amministrare tutti gli utenti. Continua a leggere “Rinominare gli utenti in Windows XP Home Edition”