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

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”

Accedere come Administrator in Windows XP

In Windows XP è stata introdotta una nuova schermata iniziale di accesso, dove vengono mostrati gli account presenti sul computer e dove viene richiesta l’eventuale password.

Schermata iniziale di Windows XP

In tale schermata viene sempre nascosto l’utente Administrator, a meno che Windows sia in esecuzione in modalità provvisoria oppure non esistano altri utenti con privilegi di amministratore (membri del gruppo Administrators).

In caso di emergenza, può essere necessario accedere temporaneamente con tale utente che, oltre ai normali diritti di amministratore, possiede ulteriori privilegi.

  • Tenere premuti i tasti CTRL e ALT
  • Premere il tasto CANC e rilasciarlo
  • Premere nuovamente il tasto CANC
  • Rilasciare tutti i tasti

Effettuando questa sequenza dovrebbe comparire la classica schermata di accesso, presente di default in Windows 2000 e nei computer facenti parte di un dominio, nella quale è possibile digitare il nome utente a piacere. La sequenza non funziona nel cambio rapido utente.

URL “simpatici” in IIS

In Apache, il noto server web open-source, è presente una funzionalità molto amata dai SEO, coloro che ottimizzano i siti per i motori di ricerca. Si tratta della possibilità di riscrivere gli URL (URL rewrite), ovvero redirigere in modo trasparente le richieste verso un’altra pagina anziché restituire l’errore 404 (non trovato). Questo permette di creare URL più semplici da leggere e con parole chiave apprezzate dai motori di ricerca e, contemporaneamente, permette di scrivere un solo script CGI che si occupa di gestire le richieste ed interrogare il database.

Gli utenti di IIS purtroppo non hanno questa funzionalità in modo nativo. È possibile emularla installando dei filtri ISAPI aggiuntivi, quasi tutti a pagamento, da aggiungere nella configurazione del sito web oppure creando un pagina di errore personalizzata. Consiglio la seconda possibilità, in quanto più semplice da realizzare e da manutenere.

Errore 404 personalizzato in IIS

Gli “errori personalizzati” in IIS servono per restituire al client una pagina alternativa al classico “Impossibile visualizzare la pagina”. È possibile specificare sia un file statico, che può risiedere in qualsiasi punto del server, sia una URL che deve risiedere nel sito web corrente. Nel nostro caso bisogna gestire l’errore 404 che si verifica quando il server riceve una richiesta riguardo un file che non esiste.

GET http://www.flyonthenet.com/file-che-non-esiste.html

Per modificare il valore, basta accedere alla console di amministrazione di IIS e nella maschera delle proprietà del sito web, cliccare su “Errori personalizzati”, quindi clic su “Modifica proprietà”, infine su “Tipo messaggio” selezionamo “URL” ed indichiamo sulla casella sottostante il nostro script, ad esempio in PHP. Questo verrà chiamato da IIS aggiungendo alcuni parametri, utili per ricostruire l’URL originariamente richiesto dal client.

GET http://www.flyonthenet.com/wp-404.php?404;http://www.flyonthenet.com/file-che-non-esiste.html

A questo punto non resta che creare lo script e gestire la richiesta. Normalmente si interroga un database per cercare un riscontro: se viene trovato qualcosa, si risponde con 200 OK e si genera la pagina, altrimenti si restituisce lo status 404 Not Found. È importante alla fine impostare correttamente lo status nelle intestazioni di risposta HTTP. L’errore più comune è quello di restuituire sempre lo status 200 anche se non si trova la risorsa nel database (soft 404): alcuni motori di ricerca lo considerano un errore e penalizzano il ranking del sito.

//In questo esempio $record dovrebbe contenere del codice HTML estratto da un database
if($record)
{
header('HTTP/1.1 200 OK');
header('Status: 200 OK');
echo $record;
}
else
{
header('HTTP/1.1 404 Not Found');
header('Status: 404 Not Found');
echo 'HTTP 404 Not Found

HTTP 404 Not Found

';
}

Se si utilizza la piattaforma WordPress, lo script diventa molto semplice, in quanto WordPress stesso si occupa di restituire i corretti codici di stato HTTP, nel caso in cui venga richiesto un articolo inesistente.


//Indirizzo del sito di WordPress
$siteurl = 'http://' . $_SERVER['SERVER_NAME'];

//Wordpress usa PATH_INFO coi permalinks, ma per compatibilità con alcuni plug-in conviene modificare anche REQUEST_URI
$_SERVER['PATH_INFO'] = substr($_SERVER['QUERY_STRING'], strpos($_SERVER['QUERY_STRING'], $siteurl) + strlen($siteurl));
$_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];

//La querystring potrebbe contenere 2 punti di domanda, che crea confusione nell'array $_GET
foreach($_GET as $get_key=>$get_value)
if(strpos($get_key, '?') !== FALSE)
$_GET[substr(strstr($get_key, '?'), 1)] = $get_value;

//Pulizia variabili
unset($siteurl);

//Include il file index.php di WordPress, dando per scontato che si trovi nella stessa directory
include('index.php');

Per gestire correttamente le richieste POST, è opportuno specificare uno script anche per l’errore 405 (Risorsa non consentita), che in alcuni casi viene generato al posto di 404.

I messaggi di Outlook Express rimangono sempre in “Posta in Uscita”

Quando i messaggi che abbiamo inviato tramite Outlook Express rimangono sempre in coda nella cartella “Posta in Uscita”, nonostante sia già stato ricevuto dal destinatario, ed ogni volta che facciamo “Invio/Ricevi” Outlook Express ne tenta nuovamente l’invio, significa che il programma non riesce a spostare i messaggi nella cartella “Posta Inviata”.

Il problema è causato dal file “Posta Inviata.dbx” danneggiato: purtroppo questi database si rovinano facilmente, soprattutto quando raggiungono una dimensione attorno ai 500MB. Al contrario di Office Outlook, purtroppo non è fornito alcun strumento per la riparazione degli archivi: l’unica funzione offerta è la compattazione, per recuperare lo spazio occupato dai messaggi cancellati (operazione da eseguire con cautela e scollegati da Internet).

L’unico modo per ripristinare il corretto funzionamento, senza ricorrere a programmi di terze parti in genere a pagamento, è quello di far ricreare ad Outlook Express un nuovo file DBX.

  • Posizionarsi con Esplora Risorse nella cartella contenente i file DBX della posta, il percorso è ottenibile da Strumenti > Opzioni > Manutenzione > Archivia cartella
  • Chiudere Outlook Express
  • Rinominare il file “Posta inviata.dbx” a piacere
  • Riavviare Outlook Express

Un nuovo file “Posta inviata.dbx” verrà automaticamente creato nel quale verranno salvati tutti i messaggi della posta in uscita, questa volta si spera con maggior successo. 😉

Se il database non è eccessivamente danneggiato, con un piccolo trucco è possibile tentare il recupero dello storico dei messaggi.

  • In Outlook Express creare una nuova cartella dal nome “Archivio”
  • Posizionarsi nuovamente nella cartella contenente i file DBX della posta
  • Chiudere Outlook Express
  • Cancellare il file “Archivio.dbx”
  • Rinominare il vecchio file della posta inviata in “Archivio.dbx”
  • Riavviare Outlook Express

Ora tutta la vecchia posta inviata dovrebbe essere presente nella cartella “Archivio”. Consiglio di non spostare i messaggi nella nuova “Posta Inviata” e di tenere questo archivio solo per ricercare e consultare i vecchi messaggi inviati.

Per prevenire del tutto il problema, consiglio di passare ad un client di posta più evoluto, quale Thunderbird, che salva i messaggi nel formato standard mbox, più facilmente recuperabili.

Outlook 2000 non si configura su Windows Vista

Installando Outlook 2000 su sistemi Windows Vista, ad ogni avvio dell’applicazione viene eseguita la wizard “Configurazione di Outlook 2000” che normalmente dovrebbe apparire solo al primo avvio.

Anche se completiamo la configurazione con successo, al prossimo riavvio Outlook continuerà a chiedere di essere configurato, nonostante egli stesso durante la procedura si accorga della presenza di una configurazione precedente.

Il problema è dovuto dal tentativo di Outlook di salvare dei file all’interno della cartella di Windows – cosa non permessa con lo controllo utente attivo (UAC). Tali file segnalano ad Outlook che la configurazione è stata completata correttamente: la loro mancanza causa la comparsa della wizard, nonostante che la configurazione effettiva sia stata precedentemente salvata nel registro.

Per risolvere è sufficiente eseguire Outlook come amministratori almeno una volta, in modo che riesca a salvare i file di cui ha bisogno.