 TechNet Magazine September 2007

TechNet Magazine September 2007

Windows Vista: Distribuzione di Windows Vista con BDD 2007

La tua organizzazione è pronta a passare da Windows 2000 o Windows XP a Windows Vista e la responsabilità del progetto è tua. Non farti prendere dal panico. Di seguito viene riportata una guida dettagliata su come utilizzare Business Desktop Deployment 2007 Solution Accelerator per semplificare la distribuzione di Windows Vista.

Michael Niehaus Windows Vista: Una guida alle tecnologie di backup di Windows Vista

Il backup è un'attività che in molti ignorano completamente finché non realizzano che è ormai troppo tardi. Ma ora non ci sono più scuse perché la nuova funzionalità di backup e ripristino Windows Complete PC ha introdotto numerose funzionalità che semplificano la protezione dei dati dalla maggior parte delle tipologie di perdita. Scopri come pianificare una strategia di ripristino completa con Windows Vista.

Christine Fok Windows Server: 11 strumenti essenziali per la gestione di Active Directory

In una grande organizzazione, anche le attività di Active Directory più comuni, come l'aggiunta o la modifica di oggetti, possono risultare lunghe e noiose. Gli 11 strumenti qui descritti possono contribuire a rendere la gestione di Active Directory molto più semplice.

Laura E. Hunter Windows Server: Recupero degli oggetti contrassegnati per la rimozione definitiva di Active Directory

Sono disponibili alcuni trucchi e strumenti importanti da prendere in considerazione in ogni piano di ripristino di emergenza di Active Directory. Il recupero degli oggetti contrassegnati per la rimozione definitiva è una di queste tecniche, l'unica che consente di recuperare gli oggetti eliminati senza disconnettere un controller di dominio. Ecco una guida in cui viene spiegato come trovare e ripristinare gli oggetti contrassegnati per la rimozione definitiva in Active Directory.

Gil Kirkpatrick Comunicazioni: Connessione tra gli utenti con Office Communications Server 2007

La comunicazione unificata è realtà. Guarda questa presentazione di Microsoft Office Communications Server 2007 e scopri come migliorare la produttività e la collaborazione a lunga distanza nella tua azienda con le funzionalità integrate di messaggistica, di comunicazione vocale e video e di conferenza.

Alan Maddison Dal redattore: Percorsi di formazione

Joshua Trupin Lettere: Risposte alle domande degli utenti

Casella degli strumenti: Nuovi prodotti per professionisti IT

Greg Steen Domande e risposte su SQL: Colli di bottiglia della CPU, ripristino e spostamento di database e altro ancora

Edited by Nancy Michell Utilità in primo piano: PageDefrag

Il tipico strumento di deframmentazione di Windows può ottimizzare la maggior parte dei file sul disco rigido. Ma alcuni elementi, come il file di paging e l'hive del Registro di sistema di Windows, sono al di fuori della portata della maggior parte degli strumenti di deframmentazione. Questa utilità, creata da Mark Russinovich per Sysinternals, consente di salvare il lavoro giornaliero deframmentando i file lasciati intatti dagli altri strumenti.

Lance Whitney The Cable Guy: Modelli host forti e vulnerabili

Un host multihomed fornisce una migliore connettività collegandosi simultaneamente a più reti. Tuttavia, i servizi in esecuzione su host multihomed presentano una maggiore vulnerabilità agli attacchi. Per evitarli, ecco una rapida panoramica sui vari modelli di host multihomed e su come vengono supportati in Windows.

Joseph Davies Windows PowerShell: Protezione della shell

Durante la progettazione di Windows PowerShell, Microsoft ha dato la priorità alla protezione. Ecco come. Si prendano in considerazione alcune delle principali impostazioni e funzionalità di protezione, come la gestione delle credenziali e i criteri di esecuzione, per garantire che Windows PowerShell non riscontri gli stessi problemi rilevati da VBscript.

Don Jones Hey, Scripting Guy!: È possibile salvare questa relazione?

I database relazionali sono progettati per relazioni uno-a-molti e rendono quindi un po' difficile la scrittura di script che li sottopongono a query. Ma non bisogna preoccuparsi, gli Scripting Guy sono pronti a mostrare tutto quello è necessario sapere.

The Microsoft Scripting Guys Domande e risposte su Exchange: Installazione, inserimento dei messaggi nel journal, opzioni di archiviazione e altro

In questo articolo viene illustrato come utilizzare l'inserimento di messaggi nel journal per monitorare la posta elettronica dell'azienda, verificare se gli utenti di Office 2003 possono utilizzare la messaggistica unificata, esaminare le opzioni di archiviazione delle implementazioni di Exchange 2007, ottenere risposte sulla connessione di Exchange 2007 con versioni precedenti di Outlook e altro.

KC Lemson and Nino Billic Controllo della protezione: L'impatto a lungo termine del controllo dell'account utente

Nonostante se ne parli molto, rimangono ancora molti dubbi e malintesi sul controllo dell'account utente. Questo articolo è una discussione onesta su cos'è e cosa non è il controllo dell'account utente e in che modo dovrebbe interessare la gestione dei sistemi.

Jesper M. Johansson File desktop remoto: Ripristino del computer con Windows PE

Windows Vista offre alcuni preziosi strumenti che facilitano il ripristino dei sistemi. Tuttavia, per le grandi organizzazioni diversificate, le soluzioni standard in genere non funzionano. In questo articolo, rivolto a tutte le grandi aziende che hanno l'esigenza di realizzare una soluzione di ripristino autonomo, viene affrontato lo sviluppo di una soluzione di ripristino con Windows PE.

Wes Miller Taccuino: Suggerimenti su formazione e rinfreschi gratuiti

Una buona formazione dell'utente è fondamentale per ridurre al minimo i problemi. Non bisogna quindi sottovalutare l'importanza di offrire sessioni di formazione informali e di spostarsi nella stanza per vedere se qualcuno desidera porre domande che non esporrebbe altrimenti.

Michael Dragone Windows Confidential: Il giusto equilibrio delle DLL conosciute

La funzionalità relativa alle DLL conosciute è stata inclusa in Windows con la speranza di migliorare le prestazioni. Scopri come funziona e osserva attentamente come questa funzionalità è cambiata nel tempo.

Raymond Chen


 Windows Vista: Distribuzione di Windows Vista con BDD 2007
Windows Vista Michael Niehaus

Distribuzione di Windows Vista con BDD 2007
Panoramica:
  • BDD 2007 Solution Accelerator
  • Preparazione dell'immagine
  • Driver e pacchetti applicazioni

Finora hai rimandato, ma è arrivato il momento di compiere il grande passo. La tua organizzazione dispone di centinaia, forse migliaia di computer che necessitano del passaggio da Windows 2000 o Windows XP a Windows Vista. È compito del tuo team fare in modo che accada.
Dunque, da dove cominciare?
Se utilizzi i sistemi operativi Windows® da anni, probabilmente hai notato che i cambiamenti da Windows NT® 3.5 a Windows XP sono stati relativamente pochi. Il processo di installazione e configurazione è stato alquanto coerente, gli strumenti sono stati gli stessi e il processo complessivo non è stato alterato. Con Windows Vista® invece, è stato riprogettato l'intero processo e sono stati aggiunti molti nuovi strumenti. Per una valida panoramica sulle modifiche e sull'impatto che questo avrà sull'organizzazione, consultare l'articolo di novembre 2006 di TechNet Magazine "10 cose da sapere sulla distribuzione di Windows Vista", disponibile anche in linea all'indirizzo technetmagazine.com/issues/2006/11/Deployment.

Come posso imparare a utilizzare il nuovo processo e i nuovi strumenti?
Esistono due possibilità:
  1. Imparare a utilizzare ogni strumento nuovo. Studiare tutta la documentazione disponibile. Scopri come inserire ognuno di essi nei processi esistenti. Apporta le modifiche necessarie e convalida i risultati.
  2. Sfrutta qualcosa che ti ha già offerto tanti vantaggi.
Ovviamente potresti scegliere la prima opzione, ma questo sarebbe un libro invece di un articolo di giornale. Suggerisco di optare per la seconda possibilità: quel "qualcosa" di cui parlavamo è Business Desktop Deployment (BDD) 2007 Solution Accelerator, disponibile per il download nel Microsoft® Desktop Deployment Center, all'indirizzo microsoft.com/desktopdeployment.
BDD 2007 Solution Accelerator è costituito da una serie di strumenti, istruzioni e procedure dettagliate per semplificare il processo di distribuzione del sistema operativo Windows, integrando tutti i nuovi strumenti e processi di distribuzione introdotti con Windows Vista.
Per iniziare con BDD 2007, individua un computer con Windows XP o Windows Server® 2003 su cui desideri installare BDD 2007. Prima di procedere è necessario installare Microsoft .NET Framework 2.0 e Microsoft Management Console (MMC) 3.0. Quindi, installare BDD 2007. Una volta installato, consulta il documento Note sulla versione disponibile nella cartella BDD 2007, nel menu Start. Quindi, avvia lo snap-in MMC tramite il collegamento Deployment Workbench (vedi la Figura 1).
Figura 1 Avvio di Deployment Workbench BDD 2007
Figura 1 Avvio di Deployment Workbench BDD 2007
A questo punto, potrebbe essere una buona idea consultare le informazioni disponibili nel centro informazioni, in particolar modo la documentazione e l'elenco di controllo introduttivo. Accertati di eseguire il download delle ultime notizie e dell'elenco dei componenti facendo clic con il pulsante destro del mouse sul nodo Componenti e selezionando Controlla aggiornamenti.
È necessario un ulteriore prerequisito: Windows Automated Installation Kit (AIK). BDD 2007 necessita degli strumenti inclusi in Windows AIK per molte delle funzioni che esegue. È possibile ottenere Windows AIK in due modi: scaricandolo dall'Area download Microsoft (go.microsoft.com/fwlink/?LinkId=85377) o utilizzando il nodo "Componenti" in Deployment Workbench. In entrambi i casi, si tratta di un download abbastanza grande che richiederà del tempo.
Dopo aver installato Windows AIK, è possibile passare alla fase successiva: raccogliere tutti i file necessari per eseguire la distribuzione di Windows Vista.

Quali sono i file necessari?
A questo punto, sarà necessario raggruppare i file di installazione di Windows Vista, le applicazioni che si desidera installare, tutti i driver necessari per l'hardware e tutti gli aggiornamenti o Language Pack di Windows Vista. Il tutto verrà copiato nella struttura di directory della condivisione di distribuzione creata durante l'installazione di BDD 2007.
Creazione dell'immagine personalizzata
Le procedure trattate in questo articolo descrivono come distribuire l'immagine standard di Windows Vista direttamente dal DVD del prodotto Microsoft. È anche possibile, però, distribuire un'immagine personalizzata contenente applicazioni aggiuntive (come Microsoft Office System 2007) necessarie su tutti i computer. Il classico dilemma è il seguente: è preferibile utilizzare una piccola immagine e installare qualsiasi altra cosa durante la distribuzione oppure creare un'immagine grande e lasciare il resto preinstallato? Spesso la risposta dipende da fattori quali il tempo a disposizione per eseguire la distribuzione, il lavoro amministrativo necessario per creare e mantenere l'immagine, la capacità di rete e così via. Nella maggior parte dei casi è preferibile utilizzare l'immagine di ridotte dimensioni, ma dipende da te.
Indipendentemente da cosa decidi di includere nell'immagine, accertati che il processo di creazione dell'immagine personalizzata sia completamente automatizzato. Con l'automazione, eseguire aggiornamenti all'immagine è semplice quanto aggiungere un altro passaggio al processo, quindi eseguire di nuovo l'intero processo e acquisire una nuova immagine alla fine.
Come verrebbero eseguite queste operazioni con BDD 2007? È abbastanza semplice:
  1. Crea una build per la creazione dell'immagine personalizzata.
  2. Modifica la sequenza delle attività per questa build per includere tutte le procedure personalizzate.
  3. Esegui una distribuzione "bare metal" dal punto di distribuzione di laboratorio (eseguendo l'avvio dall'ISO di Windows PE), selezionando tale build.
  4. Specifica che desideri aggiungere un gruppo di lavoro.
Durante l'esecuzione di queste procedure, la distribuzione guidata visualizzerà un altro riquadro.
Se scegli di acquisire un'immagine del computer di riferimento, BDD 2007 eseguirà automaticamente Sysprep per preparare il sistema operativo all'acquisizione, quindi riavvierà Windows PE e eseguirà ImageX.exe per acquisire una nuova immagine WIM. A questo punto è possibile importare tale immagine in Deployment Workbench e utilizzarla per la distribuzione successiva.
Acquisizione di un'immagine di riferimento con BDD 2007
Acquisizione di un'immagine di riferimento con BDD 2007

Innanzitutto, copia i file di installazione del sistema operativo. Inserisci il DVD di Windows Vista (preferibilmente il supporto Volume License poiché non richiede un codice "Product Key" separato per ogni installazione), quindi avvia New OS Wizard facendo clic con il pulsante destro del mouse sul nodo Operating Systems in Deployment Workbench e seleziona il comando New. Seleziona Full Set of Source Files e specifica il percorso dell'unità DVD (o il percorso appropriato se questi file sono stati precedentemente copiati in un'altra ubicazione). Completa la procedura guidata accettando le restanti impostazioni predefinite. Adesso, nell'elenco illustrato facendo clic sul nodo Sistemi operativi, vengono visualizzate una o più immagini del sistema operativo (in base al supporto utilizzato).
Il passo successivo riguarda le applicazioni. Non è necessario aggiungere alcuna applicazione in questo momento, ma facendolo, sarà possibile selezionarle da un elenco durante la distribuzione di Windows Vista. L'ideale sarebbe specificare una riga di comando per l'installazione dell'applicazione senza alcuna interazione da parte dell'utente, in modo che nessuno debba aspettare l'avvio dell'installazione. Per vedere il funzionamento di questa operazione, prova ad aggiungere adesso un'unica applicazione selezionando il comando New sul nodo Applications in Deployment Workbench, quindi completa la New Application Wizard (vedere la Figura 2).
Figura 2 Aggiunta di un'applicazione al workbench
Figura 2 Aggiunta di un'applicazione al workbench
I pacchetti del sistema operativo. Esistono tre tipi di pacchetti che potrebbero interessarti: Language Pack, gli aggiornamenti per la protezione e i componenti di Windows Vista.
I Language Pack consentono di eseguire Windows Vista in molte lingue diverse. Per informazioni dettagliate sulle lingue supportate, vedere microsoft.com/globaldev/vista/Vista_Language_Support.mspx. È possibile eseguire il download dei Language Pack, in formato di file CAB, da licensing.microsoft.com per i clienti di Software Assurance e da Windows Update se si sta eseguendo Windows Vista Ultimate. Si noti che solo Windows Vista Enterprise e Windows Vista Ultimate supportano più Language Pack installati su un computer.
Gli aggiornamenti per la protezione di Windows Vista in genere, vengono rilasciati mensilmente e sono disponibili per il download da microsoft.com/technet/security/bulletinsandadvisories come file MSU singoli.
È anche possibile includere nuovi componenti di Windows Vista, come Windows PowerShell™. Questi componenti sono disponibili per il download dall'Area download Microsoft (microsoft.com/downloads) e anch'essi sono nel formato di file MSU.
In realtà, sono tutti componenti, anche denominati pacchetti, da qui il nodo OS Packages. Questi componenti possono essere inseriti in Windows Vista sia in linea (durante l'esecuzione del sistema operativo) che non in linea (quando non è in esecuzione). Nel caso di BDD 2007, vengono inseriti sempre non in linea, dopo aver esteso e posizionato sul disco l'immagine di Windows Vista, ma prima di avviarlo per la prima volta.
C'è un'ulteriore sfida da affrontare: i file MSU sono ideati per essere installati in linea, durante l'esecuzione di Windows Vista, tramite il programma di installazione degli aggiornamenti WUSA.EXE. In questo esempio, tuttavia, verrà trattata l'installazione di questi aggiornamenti non in linea. A tali fine, sono necessari i file CAB contenenti i componenti effettivi. Questi file MSU sono in realtà file CAB contenenti l'effettivo file CAB del componente. È possibile estrarre questi file CAB dai file MSU tramite un comando quale:
EXTRACT.EXE file.msu -F:*.CAB C:\
Questa operazione fornirà quindi il file CAB da importare. Si noti che Microsoft ha rilasciato una patch per BDD 2007 che esegue quest'estrazione in modo automatico. Una volta installata, questo passaggio manuale non sarà più necessario; sarà sufficiente indicare a BDD 2007 i file MSU e la patch farà il resto. Per ulteriori informazioni su questa patch, consultare support.microsoft.com/kb/937191.
Per aggiungere questi componenti in Deployment Workbench, fare clic con il pulsante destro del mouse sul nodo OS Packages e selezionare New per avviare New Package Wizard. Specificare il percorso della cartella contenente i pacchetti che si desidera aggiungere.
Infine, potrebbero essere necessari i driver per l'hardware del computer su cui si desidera eseguire Windows Vista. Trova i driver necessari dai siti Web dei fornitori o da Microsoft Update, scaricali, quindi estraili dal formato in cui si trovano. Quest'ultimo passaggio può essere un po' difficoltoso, ma alla fine si dovrebbero trovare i file dei driver non elaborati: inf, sys, dll e relativi file necessari per i driver stessi.
Una volta estratti i file dei driver, esegui New Driver Wizard facendo clic con il pulsante destro del mouse sul nodo Drivers e seleziona New Deployment. Workbench analizzerà la struttura di directory in cerca di tutti i file inf, quindi non è necessario eliminare le strutture di directory estratte.
Una volta importati i driver, Deployment Workbench crea un catalogo di tutte le informazioni sui driver, tra cui le piattaforme supportate, il produttore, la versione e un elenco di ID Plug and Play (PnP) supportati dal driver.

Cosa fare con questi driver? Vanno inseriti nell'immagine del sistema operativo importata precedentemente?
BDD 2007 non effettua alcuna modifica sull'immagine del sistema operativo importata. I driver vengono inseriti durante il processo di distribuzione. Il processo di base è il seguente:
  1. Sul computer distribuito viene eseguita un'utilità (Microsoft.BDD.PnpEnum.exe) che identifica tutti gli ID PnP presenti nel computer.
  2. Ricerca ognuno di questi ID PnP nel catalogo dei driver. Per ogni corrispondenza rilevata, copia i file del driver necessario sul computer.
  3. Imposta Windows Vista in modo che inserisca i driver nel sistema operativo dopo aver applicato l'immagine al disco, ma prima che Windows Vista venga avviato per la prima volta. È essenziale seguire quest'ordine poiché alcuni di questi driver, come i driver archiviazione di massa, potrebbero essere necessari per avviare il sistema operativo.

È possibile passare alla distribuzione, adesso?
Ancora pochi passaggi e sarà possibile eseguire la distribuzione. Innanzitutto, è necessario definire una build che associ un sistema operativo nella condivisione di distribuzione alle impostazioni che dovrebbero essere utilizzate e la sequenza di attività che è necessario eseguire per l'installazione e la configurazione del sistema operativo.
Per creare questa build, fare clic con il pulsante destro del mouse sul nodo Builds e selezionare New per avviare New Build Wizard. Specificare un ID di build (un semplice valore a scelta dell'utente senza spazi o caratteri speciali) insieme a un nome e a una descrizione della build, che verranno visualizzati durante la distribuzione del sistema operativo (vedere la Figura 3). Quindi selezionare il sistema operativo che si desidera installare e specificare alcune impostazioni di base da utilizzare.
Figura 3 Specifica delle informazioni di base sulla build
Figura 3 Specifica delle informazioni di base sulla build

OK, adesso è possibile effettuare la distribuzione?
Manca ancora una cosa: un punto di distribuzione. In poche parole, si tratta di una condivisione di rete contenente tutti i file raccolti finora, tutte le informazioni sulla build e le immagini di Windows PE utilizzate per il processo di distribuzione. La creazione di un punto di distribuzione funziona come le altre operazioni appena descritte: fai clic con il pulsante destro del mouse sul nodo Deployment Points e seleziona New. Seleziona Laboratorio o distribuzione su server singolo (vedi la Figura 4) e accetta le restanti impostazioni predefinite.
Figura 4 Selezione del tipo di punto di distribuzione
Figura 4 Selezione del tipo di punto di distribuzione
Una volta terminata la procedura guidata, fai clic con il pulsante destro del mouse sul nuovo punto di distribuzione nel riquadro dell'elenco e seleziona Update per generare la condivisione e le immagini di Windows PE.
Ricordi i driver aggiunti in precedenza? Questi stessi driver, almeno quelli di archiviazione di massa e di rete, sono necessari anche per Windows PE, quindi questo processo di aggiornamento aggiungerà automaticamente i driver all'immagine di Windows PE.

Adesso è tutto pronto per la distribuzione?
Sì! Innanzitutto, proviamo una distribuzione su un computer nuovo. Prendi il file LiteTouchPE_x86.iso dalla cartella \distribution\boot e masterizzalo su CD-R utilizzando il software di scrittura su CD desiderato o utilizza lo strumento cdburn.exe scaricabile da Microsoft (go.microsoft.com/fwlink/?LinkID=77796). Avvia un computer dal CD. Verrà avviato Windows PE e verrà visualizzata la procedura guidata iniziale di benvenuto mostrata nella Figura 5.
Figura 5 Pronto a iniziare una distribuzione
Figura 5 Pronto a iniziare una distribuzione
Seleziona Run the Deployment Wizard e fai clic su Next per avviarla. A questo punto, è possibile selezionare la build definita, tutte le applicazioni aggiunte e tutti i Language Pack importati. È anche possibile scegliere di associare un dominio, specificare il nome del computer e configurare varie altre impostazioni. È possibile specificare che si desidera acquisire automaticamente una nuova immagine personalizzata (utilizzando Sysprep, Windows PE e ImageX per creare un nuovo file immagine).
La distribuzione potrebbe impiegare del tempo (in base alla velocità e al tipo di computer), ma non richiede alcuna interazione da parte dell'utente. Una volta completata la distribuzione guidata, verrà visualizzata una schermata di riepilogo con informazioni su avvisi o errori registrati durante il processo. Ciò consente di verificare rapidamente se la distribuzione è stata eseguita correttamente. Una schermata di riepilogo di colore giallo o rosso indica che è necessario fare attenzione, mentre una di colore bianco indica che l'operazione è avvenuta correttamente.
Adesso possiamo provare con un computer su cui è già in esecuzione Windows XP. Da un prompt dei comandi, esegui il mapping di un'unità alla condivisione Distribution$ creata sul server BDD 2007, quindi esegui LiteTouch.vbs per iniziare la distribuzione:
NET USE M: \\MyServer\Distribution$
cscript.exe M:\Scripts\LiteTouch.vbs
verrà avviata la stessa distribuzione guidata riportata in precedenza, fatta eccezione per il fatto che sarà necessario effettuare nuove selezioni (vedi la Figura 6).
Figura 6 Selezioni per un computer su cui è in esecuzione Windows XP
Figura 6 Selezioni per un computer su cui è in esecuzione Windows XP
Se si seleziona Refresh this computer, il sistema operativo esistente verrà rimosso (dopo l'acquisizione facoltativa delle impostazioni e dei dati utente effettuata tramite l'Utilità di migrazione stato utente, che deve essere scaricata utilizzando il nodo Components, come effettuato precedentemente con Windows AIK) e verrà eseguita un'installazione aggiornata di Windows Vista. È anche possibile selezionare Upgrade this computer, che imposta Windows Vista in modo che aggiorni il sistema operativo esistente, preservando le applicazioni, i dati e le impostazioni esistenti nel computer. La scelta dell'opzione dipende da vari fattori, sebbene la maggior parte sceglierà di eseguire un aggiornamento per poter partire da uno stato conosciuto e ben definito.

Questo è tutto ciò che è necessario sapere?
E per quanto riguarda Windows XP?
Cosa succede se si sta ancora distribuendo Windows XP? Non c'è da preoccuparsi, anche in questo caso è possibile utilizzare BDD 2007 per facilitare questo processo. Il processo consta delle stesse operazioni. Occorre utilizzare solo i file di installazione di Windows XP per creare la build iniziale, acquisire una nuova immagine Windows Imaging (WIM) di Windows XP (la distribuzione di un'immagine di Windows XP è molto più veloce rispetto all'esecuzione di un'installazione automatica) e quindi utilizzare questo file WIM per le successive distribuzioni.
Tenere presente che, rispetto alle distribuzioni di Windows Vista, la distribuzione di Windows XP comporta alcune complicazioni aggiuntive:
i driver archiviazione di massa di Windows XP richiedono una configurazione aggiuntiva, come le cartelle TEXTMODE, le impostazioni unattend.txt e sysprep.inf. Certamente, poiché i driver archiviazione di massa non possono essere inseriti nelle immagini di Windows XP esistenti, è necessario acquisire una nuova immagine ogni volta che è necessario aggiungere un altro driver archiviazione di massa. Inoltre, le immagini di Windows XP non sono indipendenti da HAL, quindi potrebbe essere necessario disporre di due o tre immagini separate. Infine, i Language Pack e gli aggiornamenti della protezione non possono essere inseriti non in linea in Windows XP, quindi è necessario installarli dopo l'avvio del sistema operativo.
Se si utilizza BDD 2007 per la distribuzione di Windows XP, si arriverà completamente preparati a Windows Vista, quando si riterrà opportuno.

Ma non basta. Osservando il funzionamento del processo dall'inizio alla fine però, è possibile scoprire la modalità con cui tutti i nuovi strumenti lavorano insieme, senza dover apprenderne ogni singolo funzionamento. Adesso è possibile esaminare approfonditamente gli script e i log di BDD 2007 per vedere cosa è stato eseguito. È possibile creare immagini personalizzate e aggiungerle in BDD 2007 per distribuirle al posto dell'immagine strandard di Windows Vista. È possibile creare supporti DVD o unità memoria flash USB con la propria immagine caricata e integrare SMS 2003 e il relativo OS Deployment Feature Pack nel processo.

Dove è possibile trovare ulteriori informazioni?
Esamina tutti quei documenti precedentemente tralasciati: sono disponibili oltre un centinaio di pagine divise tra i diversi team che, in genere, partecipano a un progetto di distribuzione. Visita inoltre, il sito microsoft.com/desktopdeployment citato in precedenza. Utilizza il newsgoup microsoft.public.deployment.desktop dove altri professionisti IT pongono ogni genere di domande relative alla distribuzione di Windows. Visita i siti Web di terze parti come deployvista.com e myitforum.com, dove è possibile trovare numerose informazioni sulla distribuzione di Windows Vista e BDD 2007. Consulta il nuovo manuale Windows Vista Resource Kit (microsoft.com/mspress/books/9536.aspx) di Microsoft Press. Leggi il mio blog all'indirizzo blogs.technet.com/mniehaus per trovare discussioni su vari elementi di BDD 2007. Chiedi ai rappresentanti Microsoft locali informazioni riguardo a seminari di formazione su Windows Vista e BDD 2007 disponibili in zona. Infine, per ulteriori informazioni, consulta l'approfondimento "Risorse per la distribuzione".
Se disponi di Software Assurance per Microsoft Office System, accertati di poter utilizzare Desktop Deployment Planning Services (microsoft.com/licensing/sa/benefits/deployment.mspx) affinché un collaboratore di Microsoft o di un partner Microsoft possa recarsi presso la tua sede per creare insieme un programma e lavorare a un laboratorio di prova.
Risorse per la distribuzione
  • Microsoft Desktop Deployment Center microsoft.com/desktopdeployment
  • 10 cose da sapere sulla distribuzione di Windows Vista technetmagazine.com/issues/2006/11/Deployment
  • Microsoft .NET Framework 2.0 go.microsoft.com/fwlink/?LinkId=94601
  • Microsoft Management Console (MMC) 3.0 per Windows Server 2003 x86 go.microsoft.com/fwlink/?LinkId=94602
  • Bollettini sulla sicurezza e avvisi microsoft.com/technet/security/bulletinsandadvisories

Michael Niehaus è un Systems Design Engineer del team Microsoft responsabile degli acceleratori di soluzioni. È responsabile dello sviluppo di procedure consigliate, strumenti e script della soluzione Business Desktop Deployment. Per contattarlo, inviare un messaggio a michael.niehaus@microsoft.com.
© 2007 Microsoft Corporation e CMP Media, LLC. Tutti i diritti riservati. È vietata la riproduzione completa o parziale senza autorizzazione.


 Windows Vista: Una guida alle tecnologie di backup di Windows Vista
Windows Vista Christine Fok

Una guida alle tecnologie di backup di Windows Vista
Panoramica:
  • Backup e ripristino del file
  • Backup e Ripristino Windows Complete PC
  • Ripristino configurazione di sistema
  • Copia shadow

Moltissime persone non si preoccupano minimamente di eseguire il backup dei propri dati finché non è ormai troppo tardi e i dati sono stati irrimediabilmente persi. Non dovrebbe, ma purtroppo accade. Windows Vista semplifica le operazioni di backup grazie a una gamma completa di funzionalità di protezione integrata dei dati.
Il familiare Ripristino configurazione di sistema è stato riprogettato ed è ora più affidabile e supporta un maggior numero di scenari di ripristino del sistema. La funzionalità Backup del file è stata migliorata e semplifica oltre a migliorare la protezione dei dati. Sono state inoltre aggiunte due nuove funzionalità: Backup e Ripristino Windows® Complete PC e Copia shadow.
Tutte queste funzionalità dipendono, in un modo o nell'altro, dal servizio Copia Shadow del volume. Questo servizio consente di creare copie temporizzate (dette "copie shadow") di un volume e di tenere traccia delle modifiche apportate tra una copia shadow e l'altra.
Queste quattro funzionalità, accessibili dal nuovo Centro backup e ripristino (vedere la Figura 1), consentono di eseguire il backup e il ripristino dei dati, ma differiscono tra loro in modo sostanziale. Insieme assicurano tuttavia un'ampia protezione contro diverse forme di perdite di dati per tutta la durata dell'utilizzo del computer.
Figura 1 Centro backup e ripristino in Windows Vista
Figura 1 Centro backup e ripristino in Windows Vista

Backup del file
Pianificazione di Backup Complete PC
La pianificazione di Backup Complete PC consente di ottenere immagini recenti dell'intero computer. Backup Complete PC non può essere pianificata tramite il pannello di controllo, ma è possibile creare una nuova attività tramite l'Utilità di pianificazione. Se si decide di pianificare l'esecuzione di Backup Complete PC, si consiglia di effettuare monitoraggi periodici per verificare che i backup siano stati completati correttamente. Ritengo questa precauzione necessaria in quanto questo metodo di backup non prevede l'invio di notifiche tramite popup in caso di backup non riusciti per problemi di spazio su disco o altre cause temporanee. Questa funzionalità non deve essere utilizzata in sostituzione dell'utilizzo regolare di Backup del file. Detto questo, di seguito viene illustrato come utilizzare l'Utilità di pianificazione per pianificare l'esecuzione di Backup Complete PC:
  1. Passare all'Utilità di pianificazione (accessibile dal menu Start selezionando Tutti i programmi e quindi la cartella Accessori\Utilità di sistema).
  2. Fare clic su Crea attività.
  3. Passare alla scheda Generale.
  4. Digitare un nome descrittivo, ad esempio Backup Complete PC pianificato.
  5. Per eseguire un'attività anche quando non si è connessi, fare clic su Esegui a prescindere se gli utenti siano connessi o meno.
  6. Fare clic su Esegui con i privilegi più elevati.
  7. Passare alla pagina Trigger.
  8. Fare clic su Nuovo e specificare la frequenza di esecuzione del backup pianificato.
  9. Passare alla pagina Azioni.
  10. Scegliere Nuovo.
  11. Digitare wbadmin in Programma o script.
  12. In Aggiungi argomenti (facoltativo), digitare il seguente comando, cambiando la lettera dell'unità di destinazione in base alle necessità:
    Start backup –allcritical –backupTarget:D: -quiet
    Per aggiungere altri volumi diversi dai volumi di sistema, di avvio o di Ambiente ripristino Windows, utilizzare la seguente sintassi, sostituendo le lettere di unità appropriate (separate da virgole) alle lettere E ed F:
    Start backup –allcritical –backupTarget:D: -include:E:,F: -quiet
    Si tenga presente che il comando dovrà sempre includere il flag allcritical perché in caso contrario si rischia di escludere dal backup importanti volumi di sistema e ciò provocherebbe un errore durante il ripristino.
  13. Configurare eventuali altre impostazioni relative all'attività.
  14. Fare clic su OK.

Supponiamo che io abbia acquistato un nuovo computer portatile. Una volta copiati diversi file (foto, documenti Microsoft® Word e così via) nel sistema, installate le applicazioni ed eseguito il download degli ultimi aggiornamenti di Windows, decido di effettuare il backup dei file. Collego quindi il computer portatile a un disco rigido esterno e accedo a Centro backup e ripristino. Quando faccio clic sul pulsante Backup di file, viene visualizzata una procedura guidata di configurazione che mi chiederà di specificare la destinazione di backup (in questo caso, il disco rigido esterno), le categorie di file di cui eseguire il backup (ad esempio le immagini) e quando desidero avviare il backup.
Backup del file prevede un approccio basato sulle categorie per specificare i file di cui eseguire il backup. Mentre l'unità di origine deve essere di tipo NTFS, quella di destinazione può essere indifferentemente in formato NTFS oppure FAT. L'associazione di un file a una determinata categoria avviene in base a tre fattori: il tipo MIME, l'applicazione associata e l'estensione del file.
Per effettuare il backup di file che non rientrano in nessuna categoria predefinita, scegliere la categoria File aggiuntivi che include i file con le estensioni non riconosciute da Windows, ma non supporta i file eseguibili e di sistema. Questa funzionalità non esegue il backup di questi tipi di file perché è raro che contengano dati dell'utente. Se si desidera a tutti i costi eseguire il backup dei file di sistema o eseguibili utilizzando questa funzionalità, è possibile includere tali file in un file ZIP e selezionare la categoria File compressi durante la procedura guidata.
Poiché è la prima volta che utilizzo la funzionalità di backup sul computer portatile, eseguirò un backup completo ovvero un backup di tutti i file appartenenti alle categorie selezionate. In seguito, verranno effettuati solo backup incrementali. In questo contesto, il termine incrementale indica che Backup del file tiene traccia dei soli file nuovi o aggiornati. Ad esempio, se si apportano modifiche a un documento Word esistente, Backup del file conserverà le copie complete sia del documento precedente che di quello aggiornato. L'insieme costituito da un backup completo e dalla sequenza di backup incrementali creata successivamente verrà definito set di backup.
Anziché eseguire successivamente solo backup incrementali, è opportuno eseguire periodicamente alcuni backup completi. Le richieste di esecuzione dei backup completi sono basate su fattori quali il tempo trascorso dall'ultimo backup completo, il numero di file oggetto di backup, il numero di CD o DVD utilizzati per il backup e così via. In questo modo è possibile garantire la disponibilità costante di un backup completo di base.
I dati oggetto di backup vengono memorizzati come file ZIP (con dimensioni massime di 200 MB ciascuno) per renderli più accessibili universalmente. Ricercando direttamente i contenuti all'interno dei supporti di backup sarà, ad esempio, possibile ripristinare i dati in un computer che non esegue Windows Vista. I dati di backup vengono memorizzati in file separati e possono essere suddivisi su più dischi. Se un disco non dovesse funzionare, sarà sempre possibile accedere ai dati presenti sugli altri dischi.
Per creare copie coerenti dei file aperti o in uso all'interno delle applicazioni durante l'utilizzo di Backup del file, viene utilizzato il servizio Copia Shadow del volume per consentire all'applicazione che esegue il backup di leggere i dati da queste copie coerenti. Questo metodo è comodo, ad esempio, quando si esegue il backup di un file pst che viene costantemente aperto in Microsoft Outlook®. Il servizio Copia Shadow del volume garantisce la coerenza dello stato del file pst copiato in modo che risultati accessibile al momento del ripristino.
I backup dei file non vengono eliminati automaticamente, tuttavia, è possibile eliminarli manualmente per liberare spazio su disco. Un consiglio importante: eliminare sempre i set di backup completi anziché i singoli backup incrementali.
Suggerisco inoltre di evitare di copiare i backup dei file in una posizione diversa, ma, se è assolutamente necessario farlo, si consideri che è indispensabile trasferire un unico supporto di backup originale su un unico supporto di destinazione. Ad esempio, è possibile copiare i dati di backup da un CD a un DVD ma non da più CD a un solo DVD. Quando si sposta un backup, è necessario copiare la cartella di backup con il nome del computer e il file mediaid.bin, entrambi salvati nella directory principale del supporto di backup. Si osservi che per ripristinare un file dopo che è stato spostato sarà necessario selezionare Ripristino avanzato | File di un backup eseguito in un altro computer nel pannello di controllo del backup per raggiungere il file, poiché il percorso del nuovo backup non esiste nel catalogo di backup del computer.

Backup Complete PC
Con il mio nuovo computer portatile impostato e configurato, voglio ora eseguire un backup completo per proteggere tutto ciò che contiene, inclusi il sistema operativo, le applicazioni che ho installato, le impostazioni di configurazione e gli aggiornamenti. Per farlo, utilizzo la funzionalità Backup Complete PC che potrò utilizzare anche per eseguire il ripristino del computer in caso di guasti al disco rigido o altri problemi, evitando così di dover reinstallare tutte le applicazioni e configurare di nuovo le mie impostazioni. Alla prima esecuzione, questa funzionalità esegue un backup completo di tutti i blocchi dei volumi selezionati, ad eccezione dei blocchi che non contengono informazioni. I backup successivi sono invece differenziali a livello di blocchi (chiarirò meglio questo concetto tra poco).
Al termine del backup, il pannello di controllo di Centro backup e ripristino sarà aggiornato (vedere la Figura 2) e includerà informazioni quali la data e l'ora del backup e la posizione in cui è stato memorizzato.
Figura 2 Centro backup e ripristino fornisce i dettagli sui backup precedenti
Figura 2 Centro backup e ripristino fornisce i dettagli sui backup precedenti
Sebbene entrambe le funzionalità eseguano un backup, Backup Complete PC funziona in modo completamente diverso da Backup del file. Backup Complete PC crea un'immagine a livello di blocco dell'intero computer in formato disco rigido virtuale (con estensione vhd). Durante il primo backup completo, viene eseguita l'analisi del disco di origine e la copia dei blocchi che contengono dati in un file vhd memorizzato sul disco di destinazione. Anche se i dati salvati non vengono compressi, si tratta di un formato di file compatto.
Alla successiva esecuzione di Backup Complete PC, verranno scritti nel file vhd soltanto i dati nuovi o modificati, mentre i dati rimasti invariati sullo stesso blocco verranno spostati nell'area di archiviazione copia shadow. Il servizio Copia Shadow del volume viene utilizzato per calcolare le differenze tra le istantanee effettuate e per gestire lo spostamento dei dati precedenti nell'area delle copie shadow sul disco di destinazione (vedere la Figura 3). Questo approccio rende le operazioni di backup veloci (poiché viene eseguito il backup dei soli blocchi modificati) ed efficienti (poiché i dati vengono memorizzati in un formato compatto). Si osservi che la quantità massima di spazio di archiviazione copia shadow disponibile sul disco di destinazione viene definita dall'applicazione di backup. Per una procedura dettagliata di utilizzo periodico o automatico di Backup Complete PC, vedere "Pianificazione di Backup Complete PC" nella barra laterale.
Figura 3 Spostamento dei dati con Backup e Ripristino Windows Complete PC
Figura 3 Spostamento dei dati con Backup e Ripristino Windows Complete PC
Durante il ripristino dei dati, i blocchi vengono riportati nella posizione originaria. Quando si esegue il ripristino da un backup precedente, vengono letti i dati nell'area di archiviazione copia shadow e ripristinati i blocchi appropriati.
Si tenga presente che Backup Complete PC è in grado di eseguire il backup solo dei dischi in formato NTFS. Se si utilizza un disco rigido come destinazione di backup, accertarsi che sia nel formato NTFS.

Ripristino configurazione di sistema
La procedura guidata Ripristino configurazione di sistema è abilitata per impostazione predefinita. Per accedervi, scegliere Ripristino di Windows con Ripristino configurazione di sistema, disponibile nella parte in alto a sinistra di Centro backup e ripristino (oppure accessibile dal menu Start selezionando Tutti i programmi e quindi la cartella Accessori\Utilità di sistema). Se si seleziona "Scegli un punto di ripristino diverso" e si sceglie Avanti, verranno visualizzati i vari punti di ripristino che sono già stati creati nelle diverse fasi della configurazione del computer portatile, durante l'installazione delle applicazioni e quando sono stati eseguiti i backup.
I punti di ripristino sono attivati per impostazione predefinita soltanto nel volume di avvio, anche nei sistemi in cui il disco rigido è suddiviso in più volumi. I punti di ripristino vengono creati automaticamente durante l'installazione di applicazioni e driver e quotidianamente nei volumi selezionati (nei giorni in cui non sia già stato creato un punto di ripristino). È inoltre possibile creare i punti di ripristino manualmente, scegliendo l'opzione Protezione sistema nell'Applet Pannello di controllo Sistema. Le copie shadow create con le funzionalità Backup del file e Backup Complete PC possono inoltre essere utilizzate come punti di ripristino.
In Windows XP, Ripristino configurazione di sistema utilizza un filtro del file system per tenere traccia delle modifiche ai file di sistema. In Windows Vista, Ripristino configurazione di sistema utilizza invece il servizio Copia Shadow del volume per tenere traccia delle modifiche a livello di blocco nei volumi selezionati. Questo migliora l'affidabilità di Ripristino configurazione di sistema e consente inoltre il supporto di una gamma più vasta di scenari di ripristino.
Inoltre, ora è possibile eseguire Ripristino configurazione di sistema anche quando la normale installazione di Windows non è in linea. Grazie ad Ambiente ripristino Windows si potrà infatti ripristinare il sistema anche se non è possibile avviare Windows.

Copia shadow
La funzionalità Copia shadow è quasi invisibile. È abilitata per impostazione predefinita e non richiede alcun intervento da parte dell'utente. È probabile che l'utente si accorga della sua esistenza solo nel caso in cui abbia necessità di ripristinare un file. Essenzialmente, questa funzionalità espone le copie temporizzate dei file create dal servizio Copia Shadow del volume.

Gestione dello spazio per le copie shadow
Sia sui volumi attivi che sul disco di backup vengono riservati appositi spazi di archiviazione per le copie shadow generate da Backup Complete PC. Per verificare lo spazio di archiviazione utilizzato, allocato e massimo riservato alle copie shadow è possibile eseguire il seguente comando da un prompt dei comandi con privilegi elevati:
VSSAdmin list ShadowStorage
Used indica la quantità di spazio attualmente occupata dalle copie shadow, allocated indica la quantità di spazio riservata per le copie shadow (spazio che non potrà quindi essere utilizzato per altri scopi) e maximum indica le dimensioni massime dello spazio occupato dalle copie shadow.
L'allocazione dello spazio per le copie shadow avviene in modo automatico e non può essere impostata dall'utente. Quando tutto lo spazio precedentemente allocato risulta occupato, viene aggiunto ulteriore spazio in incrementi fissi. Per questo motivo il valore visualizzato per lo spazio utilizzato è sempre inferiore al valore visualizzato per lo spazio allocato.
Per il volume attivo, lo spazio di archiviazione massimo consentito per le copie shadow viene determinato nel momento in cui viene creata la prima copia shadow. In genere ciò avviene quando si abilita per la prima volta Ripristino configurazione di sistema e viene creato un punto di ripristino durante la configurazione. Il valore è impostato sul 30 percento dello spazio libero o sul 15 percento delle dimensioni totali del volume, a seconda di quale è minore. Questo valore massimo è statico e quindi non cambia con il variare dello spazio libero disponibile o delle dimensioni del volume.
Tuttavia, è possibile regolare manualmente le dimensioni dell'area di archiviazione eseguendo lo strumento VSSAdmin da un prompt dei comandi con privilegi elevati. Ad esempio, il seguente comando consente di incrementare le dimensioni massime dello spazio di archiviazione su C:\ fino a 15 GB:
VSSAdmin Resize ShadowStorage /For=C: /On=C: /MaxSize=15GB
Originariamente, questo strumento era stato creato per Windows Server®, in cui è possibile gestire le copie shadow di un volume su un altro volume. In Windows Vista, invece, le copie shadow di un volume vengono mantenute sullo stesso volume. Di conseguenza, i valori specificati per "for" e "on" devono essere identici.
D'altra parte, le dimensioni massime dell'area di archiviazione delle copie shadow sul disco di destinazione dei backup eseguiti tramite Backup Complete PC sono prefissate nella misura del 30 percento dello spazio totale su disco. Questo valore è controllato da Backup Complete PC e non può essere modificato manualmente. Questo spazio di archiviazione per le copie shadow viene occupato dai backup incrementali eseguiti tramite Backup Complete PC.
In un determinato momento, un volume può contenere fino a 64 copie shadow, a condizione che vi sia sufficiente spazio disponibile nell'area di archiviazione copia shadow. Una volta raggiunto il limite massimo di spazio, le copie shadow più vecchie verranno eliminate per fare posto alle nuove. Pertanto, quando viene raggiunto il limite di archiviazione per le copie shadow sui volumi attivi, vengono eliminati i vecchi punti di ripristino di Ripristino configurazione di sistema, mentre quando viene raggiunto il limite sul disco di backup vengono eliminati i backup più vecchi eseguiti con Backup Complete PC. Inoltre, l'archiviazione e la modifica di altri dati sul disco di backup può interferire con il normale processo di invecchiamento dei backup meno recenti, dato che questi vengono eliminati più velocemente.

Ripristino di un file con Copia shadow
Supponiamo ora che io possieda il computer portatile da un po' di tempo e lo abbia già utilizzato per creare alcune presentazioni che ho poi trasmesso ai miei clienti. È trascorso un mese, sto lavorando a nuovi progetti e ho eliminato i file delle presentazioni. A questo punto il mio capo mi chiede una copia delle vecchie presentazioni. In questo caso il servizio Copia shadow può rivelarsi molto utile.
Esistono due modi per ricercare le copie dei file eliminati. Il primo presuppone che mi ricordi dove erano memorizzati i file e consiste nel fare clic con il pulsante destro del mouse sulla cartella che conteneva i file eliminati e selezionare "Ripristina versioni precedenti". Quindi dovrò scegliere una data che contiene la versione che mi interessa del file eliminato (vedere la Figura 4), fare clic su Apri e copiare il file di destinazione in un altro percorso sul volume attivo. Questa operazione di copia avviene con la stessa rapidità della normale copia di file.
Figura 4 Ripristino di un file eliminato
Figura 4 Ripristino di un file eliminato
Se invece non ricordo più dove erano memorizzati i file, potrò aprire la versione precedente della cartella immediatamente superiore all'interno della struttura dei file ed eseguire una ricerca al suo interno. Ad esempio, se ho dimenticato in quale cartella erano salvati i file, ma ricordo che si trattava di una sottocartella di Documenti, potrò ricercare all'interno della versione precedente della cartella Documenti digitando il nome del file (completo o parziale) nella casella di ricerca nell'angolo in alto a destra della finestra di Esplora risorse, come illustrato nella Figura 5. Si noti che la funzionalità di ricerca delle copie shadow non funziona dalla cartella principale. Inoltre, poiché le copie shadow non sono indicizzate, questa ricerca può richiedere più tempo rispetto a una normale ricerca su un volume attivo.
Figura 5 Ricerca della versione precedente di un documento digitando il nome di file parziale
Figura 5 Ricerca della versione precedente di un documento digitando il nome di file parziale

Ripristino di un file da Backup del file
Le copie shadow non rimangono disponibili per sempre poiché di tanto in tanto vengono eliminate ai fini della gestione dello spazio disponibile. Se mi serve un file che non è più disponibile utilizzando questo metodo, potrò ricorrere ai backup dei file pianificati. Dovrò semplicemente selezionare Ripristina file dal Centro backup e ripristino e scegliere una data di backup che contenga la presentazione eliminata. Quando faccio clic sul pulsante Aggiungi file, viene visualizzata una finestra di dialogo che consente di esplorare i contenuti del backup. Dopo aver selezionato il file desiderato, potrò scegliere di ripristinare il file nello stesso percorso oppure in un'altra posizione.
Si osservi che l'opzione Ripristina file mostra solo i backup che contengono l'ultimo set di backup. Per visualizzare i backup appartenenti a un set di backup precedente, selezionare Ripristino avanzato e quindi l'opzione File di un backup precedente eseguito nel computer in uso. Nella rara eventualità che non si riesca a trovare un set di backup precedente utilizzando questa opzione, selezionare Ripristino avanzato e quindi l'opzione File di un backup eseguito in un altro computer. Questo può essere dovuto al fatto che il catalogo di backup del computer viene tagliato quando le dimensioni diventano eccessive.

Ripristino di un file da Backup Complete PC
Per completezza, voglio aggiungere che Backup Complete PC consente anche di ripristinare singoli file. Sebbene sia destinato al ripristino a livello di volume, Backup Complete PC archivia i dati in formato vhd e pertanto consente di utilizzare lo strumento di montaggio VHD non in linea per accedere ai singoli file e ripristinarli (al momento della redazione di questo articolo, lo strumento di montaggio VHD è disponibile unicamente come parte di Microsoft Virtual Server 2005 R2 SP1, che è possibile scaricare dal sito microsoft.com/technet/prodtechnol/eval/virtualserver). Per montare il backup, aprire un prompt dei comandi con privilegi elevati e accedere a Microsoft Virtual Server\Vhdmount. Il comando da utilizzare è il seguente:
vhdmount /m [path of the .vhd file] [drive letter to assign to the virtual hard drive]
Quando questo comando viene eseguito per la prima volta, il sistema potrebbe non scegliere il driver richiesto poiché si tratta di un driver non firmato. Di conseguenza, verrà visualizzato un messaggio di errore in cui si informa l'utente dell'impossibilità di caricare il driver. Per risolvere il problema, dopo aver collegato il file vhd eseguendo il precedente comando, passare a Gestione dispositivi, fare clic con il pulsante destro del mouse su uno dei nuovi dispositivi visualizzati e selezionare Proprietà. Passare quindi alla scheda Driver, selezionare Aggiorna driver, fare clic su Cerca il software del driver nel computer e selezionare Scegli manualmente da un elenco di driver di dispositivo nel computer. Il file del driver corretto si trova in Microsoft Virtual Server\Vhdmount\vhdstor.inf. Dopo l'installazione, verrà visualizzata la nuova unità e sarà possibile accedere all'ultimo backup di Backup Complete PC e copiare i file desiderati in un percorso alternativo.

Ripristino Complete PC
Supponiamo ora che sia una bella giornata di sole e che io decida quindi di utilizzare il computer portatile ai bordi della piscina. Scivolo sul pavimento bagnato e il computer cade in acqua. Non è possibile ripararlo e dovrò comprarne uno nuovo. Poiché ho utilizzato Backup Complete PC, potrò ripristinare il sistema sul nuovo computer portatile, senza trascorrere ore e ore a reinstallare manualmente tutte le applicazioni e a riconfigurarle con le mie impostazioni personali. L'esecuzione di un ripristino con Ripristino Complete PC è semplice. All'avvio, devo utilizzare il disco di installazione di Windows Vista per avviare il sistema in Ambiente ripristino Windows. A questo punto mi viene richiesto di collegare il dispositivo che contiene l'immagine del sistema. Scelgo l'immagine appropriata e il processo di ripristino ha inizio.
Al termine del ripristino, eseguo un ripristino di file dall'ultimo backup del file perché i backup del file vengono eseguiti più frequentemente e quindi i dati contenuti nel backup saranno più aggiornati. Poiché il computer viene ripristinato allo stato precedente alla data di creazione del backup del file scelto, all'interno del catalogo non sarà presente il record di questo backup. Pertanto, devo selezionare Ripristino avanzato | File di un backup eseguito in un altro computer | Ripristina tutti gli elementi inclusi nel backup. Inoltre, è necessario avviare un nuovo backup completo per proteggere i dati appena ripristinati.
Spesso gli OEM installano Ambiente ripristino Windows come partizione nascosta sul disco rigido. Questa funzionalità può essere utilizzata per ripristinare un'immagine di Backup Complete PC sullo stesso computer. Ma se occorre ripristinare l'immagine di un computer in un computer diverso, è necessario eseguire Ambiente ripristino Windows da un supporto esterno, ad esempio dal disco di installazione di Windows.
È tuttavia importante sottolineare alcuni aspetti. Ripristino Complete PC funziona in modo semplice quando si esegue il ripristino sullo stesso computer dal quale è stato estratto il backup (a condizione, naturalmente, che il problema non sia dovuto al guasto dell'hardware).
Poiché Backup Complete PC include un'immagine dell'intero computer, è necessario tenere conto di alcune limitazioni quando si esegue il ripristino su un computer differente. In primo luogo, l'immagine di backup contiene i driver necessari per avviare il computer al termine del ripristino. In alcuni casi, potrebbe mancare i driver necessari per eseguire l'avvio di un diverso computer. Questo può avvenire, ad esempio, quando si esegue il ripristino di un'immagine creata su un controller del disco di un determinato tipo (IDE, SATA o SCSI) su un altro tipo di controller. Anche in questo caso, tuttavia, vi sono buone possibilità di riuscire a completare correttamente il ripristino perché probabilmente i driver comuni di Windows inclusi nell'immagine saranno compatibili.
In secondo luogo, il ripristino può essere effettuato solo se il nuovo computer dispone di almeno lo stesso numero di dischi rigidi e ogni disco rigido è di dimensioni uguali o superiori rispetto al disco originale che va a sostituire. È quindi bene tenere presenti queste limitazioni se si intende utilizzare Backup Complete PC per eseguire la migrazione a un nuovo computer.
Poiché le operazioni di backup e ripristino vengono eseguite a livello di blocco per interi volumi, Ripristino Complete PC prevede due alternative: i singoli volumi devono essere ripristinati completamente oppure ignorati. È pertanto possibile creare più volumi per il backup (ad esempio, separando i file di sistema dai file di dati). In seguito, durante il ripristino, sarà possibile scegliere se ripristinare solo il volume di sistema (identificato come volume critico) o tutti i volumi.

Dalla teoria alla pratica
Rispetto a Windows XP, Windows Vista ha introdotto notevoli miglioramenti a livello di protezione dei dati e del sistema, grazie all'introduzione di nuove tecnologie di backup e al miglioramento delle opzioni esistenti. Le quattro funzionalità di backup principali, Backup e ripristino del file, Backup e Ripristino Windows Complete PC, Ripristino configurazione di sistema e Copia shadow, offrono una serie di funzioni diverse e complementari che consentono di creare un'ampia rete di protezione dei dati. Ai fini di una configurazione del sistema che utilizzi al meglio questi quattro metodi e dell'applicazione di un livello di protezione e rimedio adeguato alle diverse situazioni, è importante comprendere in che modo queste funzionalità si integrano tra loro.
Come regola generale, in caso di perdita di dati, si consiglia sempre di tentare in primo luogo il ripristino tramite Copia shadow, poiché si tratta del metodo che consente di recuperare le copie più aggiornate dei dati. In caso di instabilità del sistema e necessità di eseguirne il ripristino, utilizzare Ripristino configurazione di sistema. In genere, si consiglia di utilizzare Ripristino Complete PC solo come ultima risorsa per eseguire, con la massima cautela, un ripristino completo del sistema. Tuttavia, Ripristino Complete PC è in grado di salvare gli utenti dalle situazioni più disperate. Ma la regola più importante di tutte è agire fin da subito, prima che sia troppo tardi, eseguendo tempestivamente le operazioni di backup!
Ringrazio Eduardo Laureano, Ivan Pashov, Jill Zoeller e tutti i membri del team del prodotto di backup e ripristino per il contributo che hanno fornito alla redazione di questo articolo.

Christine Fok è Program Manager presso la Storage Solution Division di Microsoft. Si dedica in particolare alle attività di backup e ripristino nella piattaforma client Windows.


 Windows Server: 11 strumenti essenziali per la gestione di Active Directory
Windows Server Laura E. Hunter

11 strumenti essenziali per la gestione di Active Directory
Panoramica:
  • Creazione di oggetti nella riga di comando
  • Esecuzione di operazioni di massa con Active Directory
  • Aggiornamenti e manutenzione di Active Directory

Se si è ricevuto un foglio di lavoro di Excel contenente l'elenco di 200 neoassunti che entreranno in servizio presso la propria azienda la settimana successiva o se gli account utente non sono configurati correttamente perché il personale del supporto tecnico ha selezionato qualche opzione errata
o, ancora, se si desidera trovare un modo più semplice di gestire Active Directory® in alternativa all'apertura di Utenti e computer ogni volta, esistono numerosi strumenti di amministrazione gratuiti che possono essere di aiuto. Alcuni di questi strumenti sono integrati nel sistema operativo Windows®, altri sono disponibili come Resource Kit o Strumenti di supporto di Windows, altri sono strumenti gratuiti di terzi. Quali sono questi strumenti e dove è possibile trovarli? Scopriamolo insieme.
Iniziamo dagli strumenti della riga di comando integrati in Windows Server® 2003 che consentono di creare, eliminare, modificare e ricercare oggetti in Active Directory.

CSVDE
Lo strumento CSVDE (Comma-Separated Values Data Exchange) consente di importare nuovi oggetti in Active Directory utilizzando un file di origine CSV e, viceversa, di esportare oggetti all'interno di un file CSV. CSVDE non consente però di modificare gli oggetti esistenti e, se viene utilizzato in modalità importazione, questo strumento consente unicamente di creare nuovi oggetti.
CSVDE consente inoltre di esportare un elenco di oggetti esistenti in modo piuttosto semplice. Di seguito viene illustrata la procedura di esportazione di oggetti Active Directory in un file denominato ad.csv:
csvde –f ad.csv
L'opzione –f indica che segue il nome del file di output. Tuttavia, è necessario tener presente che, a seconda dell'ambiente, la sintassi di base qui illustrata potrà produrre un file di output di grandi dimensioni e ingombrante. Per esportare tramite questo strumento solo gli oggetti contenuti all'interno di una determinata unità organizzativa (OU, Organizational Unit) è possibile modificare l'istruzione nel modo seguente:
csvde –f UsersOU.csv –d ou=Users,dc=contoso,dc=com
Ipotizziamo inoltre di voler solo esportare nel file CSV gli oggetti utente. In tal caso, è possibile aggiungere l'opzione –r, che consente di specificare un filtro LDAP (Lightweight Directory Access Protocol) per la ricerca, e l'opzione –l, che limita il numero di attributi esportati (si noti che la seguente sintassi è tutta su un'unica riga):
csvde –f UsersOnly.csv –d ou=Users,dc=contoso,dc=com –r
    "(&(objectcategory=person)(objectclass=user))" –l
    DN,objectClass,description
L'opzione –i consente di importare oggetti in Active Directory da un file CSV di origine. Tuttavia, la creazione di oggetti utente tramite CSVDE presenta una limitazione di importanza critica: non consente di impostare password utente. Per questo motivo, si sconsiglia di utilizzare lo strumento CSVDE per creare oggetti utente.

LDIFDE
Active Directory fornisce un altro strumento integrato per le operazioni utente di massa. Questo strumento chiamato LDIFDE è più potente e flessibile di CSVDE. Oltre a consentire la creazione di nuovi oggetti, LDIFDE è in grado di modificare ed eliminare gli oggetti esistenti e persino estendere lo schema di Active Directory. Questa flessibilità viene tuttavia limitata dal fatto che il file di input necessario, ovvero un file LDIF con estensione ldf, utilizza un formato notevolmente più complesso rispetto a un semplice file CSV. Con qualche operazione supplementare è inoltre possibile configurare le password utente, ma questo argomento verrà trattato tra poco.
Iniziamo con un esempio semplice: l'esportazione degli utenti di una OU in un file LDF (si noti che la seguente sintassi è tutta su un'unica riga):
ldifde -f users.ldf -s DC1.contoso.com -d "ou=UsersOU,dc=contoso,dc=com"
       –r "(&(objectcategory=person)(objectclass=user))"
Come per la maggior parte degli strumenti da riga di comando, è possibile visualizzare la spiegazione completa delle opzioni di LDIFDE eseguendo il comando LDIFDE /?. Nella Figura 1 vengono descritte le opzioni utilizzate in questo esempio. Si osservi che le opzioni sono in realtà identiche per entrambi i comandi CSVDE e LDIFDE.
Figure 1 Opzioni di LDIFDE (Close Figure 1)

Opzione | Descrizione
-d | Specifica il percorso LDAP a cui LDIFDE deve collegarsi per eseguire l'operazione.
-f | Indica il nome del file da utilizzare (in questo caso si tratta del file di output del risultato dell'esportazione).
-r | Specifica il filtro LDAP da utilizzare per un'esportazione.
-s | Specifica il controller di dominio (DC) a cui eseguire il collegamento che effettuerà l'operazione. Se questa opzione non viene specificata, lo strumento LDIFDE si connetterà al DC locale (o al DC che ha autenticato l'utente se lo strumento viene eseguito da una workstation).
La principale potenzialità offerta da LDIFDE consiste nella possibilità di creare e manipolare oggetti. A tale scopo è in primo luogo necessario creare un file di input. Il seguente esempio consente di creare due nuovi account utente denominati afuller e rking. Per creare il file di input, immettere il testo in Blocco note (o un altro editor di testo normale) e salvare il file con il nome NewUsers.ldf:
dn: CN=afuller, OU=UsersOU, DC=contoso, DC=com
changetype: add
cn: afuller
objectClass: user
samAccountName: afuller

dn: CN=rking, OU=UsersOU, DC=contoso, DC=com
changetype: add
cn: rking
objectClass: user
samAccountName: rking
Dopo aver creato il file, eseguire questo comando:
ldifde –i –f NewUsers.ldf –s DC1.contoso.com
In questo caso, l'unica nuova opzione è -i, che, come si può facilmente intuire, indica che si tratta di un'operazione di importazione e non di esportazione.
Quando si modificano o si eliminano oggetti esistenti, la sintassi del comando LDIFDE non cambia, vengono invece modificati i contenuti del file LDF. Per modificare il campo in cui inserire la descrizione degli account utente, creare un file di testo denominato ModifyUsers.ldf, come illustrato nell'esempio nella Figura 2.
Figura 2 Il file LDF ModifyUsers
Figura 2 Il file LDF ModifyUsers
Le modifiche vengono importare eseguendo la stessa sintassi dei comandi di LDIFDE precedente, specificando il nome del nuovo file LDF dopo l'opzione -f. Il formato LDF per l'eliminazione di oggetti è ancora più semplice. Per eliminare gli utenti utilizzati in precedenza, creare un file denominato DeleteUsers.ldf e immettere la seguente sintassi:
dn: CN=afuller OU=UsersOU, DC=contoso, DC=com
changetype: delete

dn: CN=rking, OU=UsersOU, DC=contoso, DC=com
changetype: delete
Si noti che, a differenza dello strumento CSVDE, LDIFDE consente di configurare anche le password utente. Prima di poter configurare l'attributo unicodePWD per un account utente, è tuttavia necessario configurare la crittografia SSL/TLS (Secure Sockets Layer/Transport Layer Security) sui controller di dominio.
Lo strumento LDIFDE consente inoltre di creare e modificare qualunque tipo di oggetto Active Directory, non solo gli account utente. Il seguente file LDF, ad esempio, consente di creare un'estensione dello schema personalizzata denominata EmployeeID-example nello schema dell'insieme di strutture contoso.com:
dn: cn=EmployeeID-example,cn=Schema,
cn=Configuration,dc=contoso,dc=com
changetype: add
adminDisplayName: EmployeeID-Example
attributeID: 1.2.3.4.5.6.6.6.7
attributeSyntax: 2.5.5.6
cn: Employee-ID
instanceType: 4
isSingleValued: True
lDAPDisplayName: employeeID-example
Poiché i file LDIFDE utilizzano il formato file LDAP standard del settore, le applicazioni di terzi che richiedono la modifica dello schema di Active Directory spesso rendono disponibili file LDF che sarà possibile utilizzare per esaminare e approvare le modifiche prima di applicarle all'ambiente di produzione.
Oltre agli strumenti per l'esecuzione di operazioni di importazione ed esportazione di massa, Windows Server 2003 include un set di strumenti integrati che consentono di creare, eliminare e modificare vari oggetti Active Directory nonché di eseguire query sugli oggetti che soddisfano determinati criteri. Si noti che questi strumenti (dsadd, dsrm, dsget e dsquery) non sono supportati dalla versione Active Directory di Windows 2000.

Dsadd
Dsadd consente di creare un'istanza di una classe di oggetti Active Directory in una determinata partizione di directory. Queste classi includono utenti, computer, contatti, gruppi, unità organizzative e quote. Dsadd prevede la seguente sintassi generica:
dsadd <ObjectType> <ObjectDistinguishedName> attributes
Si noti che a ogni tipo di oggetto creato è associato un set specifico di opzioni che corrispondono agli attributi disponibili per quel tipo di oggetto. Questo comando consente di creare un unico oggetto utente con diversi attributi popolati (si noti che la seguente sintassi è tutta su un'unica riga):
dsadd user cn=afuller,ou=IT,dc=contoso,dc=com
–samID afuller –fn Andrew –ln Fuller –pwd *
-memberOf cn=IT,ou=Groups,dc=contoso,dc=com "cn=Help Desk,ou=Groups,
dc=contoso,dc=com"
–desc "Marketing Director"
L'opzione –memberOf richiede il nome distinto (DN) completo di ogni gruppo a cui l'utente dovrà essere aggiunto. Per aggiungere l'utente a più gruppi, è possibile aggiungere più DN separati da spazi.
Se un elemento contiene uno spazio, ad esempio il DN del gruppo Supporto tecnico, dovrà essere incluso fra virgolette doppie. Se un elemento contiene una barra rovesciata, come una OU denominata IT\EMEA, questa dovrà essere immessa due volte: IT\\EMEA. Questi requisiti si applicano a tutti gli strumenti ds*.
Quando si utilizza l'opzione -pwd *, verrà richiesto di immettere una password per l'utente nella riga di comando. La password può essere specificata all'interno del comando stesso (-pwd P@ssword1), ma così facendo verrebbe visualizzata nel formato testo normale sullo schermo o in qualunque file di testo o script in cui sia stato incorporato il comando.
Analogamente, è possibile creare un oggetto gruppo e una OU utilizzando i seguenti comandi:
dsadd computer cn=WKS1,ou=Workstations,dc=contoso,dc=com
dsadd ou "ou=Training OU,dc=contoso,dc=com"

Dsmod
Dsmod viene utilizzato per modificare un oggetto esistente e funziona in modo analogo allo strumento dsadd, anche se prevede sottomenu e sintassi differenti a seconda del tipo di oggetto che si desidera modificare. La seguente istruzione dsmod modifica la password di un utente e il suo account in modo che al successivo accesso venga visualizzata la richiesta di sostituire la password:
dsmod user "cn=afuller,ou=IT,dc=contoso,dc=com" –pwd P@ssw0rd1
    –mustchpwd yes
Per comprendere la similitudine tra queste opzioni è sufficiente esaminare la sintassi dsadd che consente di creare l'utente con gli stessi attributi configurati:
dsadd user "cn=afuller,ou=IT,dc=contoso,dc=com" –pwd P@ssw0rd1
    –mustchpwd yes
Come si vede chiaramente, basta conoscere le opzioni che consentono di creare oggetti in dsadd in modo da utilizzarle per modificare gli utenti con dsmod.

Dsrm
Drsm è l'opposto dello strumento dsadd, ovvero consente di eliminare un oggetto dalla riga di comando. La sintassi dsrm di base è piuttosto semplice: è sufficiente digitare dsrm seguito dal nome distinto dell'oggetto che si desidera eliminare, nel modo seguente:
dsrm cn=WKS1,ou=Workstations,dc=contoso,dc=com
Per impostazione predefinita, verrà visualizzato il messaggio "Eliminare l'oggetto?" Digitare Y, quindi premere Invio. È possibile utilizzare l'opzione –noprompt per eliminare questo prompt, ma naturalmente così facendo non si avrà più la possibilità di confermare di aver selezionato l'oggetto corretto prima di eliminarlo. Vi sono inoltre altre due opzioni che possono risultare utili quando si elimina un oggetto contenitore, ovvero un'unità organizzativa in grado di contenere altri oggetti. Il seguente comando consente di eliminare l'unità organizzativa TrainingOU e tutti gli oggetti che contiene:
dsrm ou=TrainingOU,dc=contoso,dc=com –subtree
Questa sintassi elimina tutti gli oggetti figlio contenuti all'interno di TrainingOU, senza però eliminare l'oggetto unità organizzativa stesso:
dsrm ou=TrainingOU,dc=contoso,dc=com –subtree
    –exclude

Dsmove
Per spostare o ridenominare un oggetto in Active Directory si utilizza lo strumento dsmove, che tuttavia consente solo di spostare oggetti all'interno di uno stesso dominio. Per eseguire la migrazione di oggetti tra domini o insiemi di strutture, utilizzare l'Utilità di migrazione ad Active Directory (ADMT), disponibile gratuitamente per il download dal sito Web Microsoft. Dsmove presenta due opzioni che è possibile utilizzare separatamente oppure insieme. Il seguente comando consente di attribuire un nuovo cognome all'account di Steve Conn:
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com"
    –newname "Steve Conn"
Il seguente comando consente di trasferire l'account di Steve dall'OU IT all'OU Training:
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com" –newparent
    ou=Training,dc=contoso,dc=com
È possibile combinare la ridenominazione e il trasferimento in un'unica operazione specificando entrambe le opzioni contemporaneamente, come illustrato di seguito:
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com" –newname
    "Steve Conn" –newparent ou=Training,dc=contoso,dc=com

Dsget e dsquery
Il set di strumenti della riga di comando ds* include inoltre due strumenti che consentono di eseguire query in Active Directory per ottenere informazioni anziché creare o modificare gli oggetti.
Dsget prende il DN di un oggetto come input e fornisce il valore dell'attributo o degli attributi specificati dall'utente. Dsget utilizza gli stessi sottomenu di dsadd e dsmod: user, computer, contact, group, ou e quota.
Per ottenere il nome account SAM e l'ID di protezione (SID) di un account utente, immettere il seguente comando (si noti che la seguente sintassi è tutta su un'unica riga):
dsget user cn=afuller,ou=IT,dc=contoso,dc=com
    –samAccountName –sid
Si otterrà l'output visualizzato nella Figura 3.
Figura 3 Esecuzione di dsget
Figura 3 Esecuzione di dsget
Dsquery restituisce un elenco di oggetti Active Directory che soddisfano i criteri specificati. È possibile specificare i seguenti parametri indipendentemente dal sottomenu utilizzato:
dsquery <ObjectType> <StartNode> -s <Search Scope> -o <OutputFormat>
Per ObjectType, dsquery può utilizzare i seguenti sottomenu, ognuno dei quali ha una propria sintassi: computer, contact, subnet, group, ou, site, server (si osservi che il sottomenu server restituisce informazioni sui controller di dominio, non sui server membri dell'ambiente), user, quota e partition. Nel caso in cui nessuno dei sottomenu precedenti soddisfi le proprie esigenze, è possibile utilizzare il sottomenu * per immettere una query LDAP in formato libero.
StartNode specifica il percorso dell'albero Active Directory da cui inizierà la ricerca. È possibile utilizzare un DN specifico, ad esempio ou=IT,dc=contoso,dc=com, oppure uno dei seguenti identificatori rapidi: domainroot, per iniziare dalla directory principale di un determinato dominio, oppure forestroot, per iniziare dalla directory principale di un insieme di strutture utilizzando un server del catalogo globale per eseguire la ricerca.
Infine, l'opzione Ambito di ricerca specifica l'ambito di ricerca ovvero il modo in cui verrà eseguita la ricerca tramite dsquery all'interno dell'albero di Active Directory. Sottostruttura (l'impostazione predefinita) esegue una query sull'oggetto StartNode e tutti i relativi oggetti figlio, UnLivello esegue una query solo sugli oggetti figlio di primo livello di StartNode e Base esegue una query solo sull'oggetto StartNode.
Per una migliore comprensione del concetto di ambito di ricerca, si consideri una OU che contenga sia oggetti utente che una OU figlio contenente a sua volta altri oggetti. Se si utilizza l'ambito Sottostruttura, la query verrà eseguita sulla OU, su tutti gli oggetti utente in essa contenuti, sulla OU figlio e tutto ciò che contiene. Se si utilizza l'ambito UnLivello, la query verrà eseguita solo sugli utenti contenuti all'interno della OU e non sulla OU figlio e tutto ciò che contiene. Se si utilizza l'ambito Base, la query verrà eseguita solo sulla OU stessa, ma non sugli oggetti in essa contenuti.
Infine, è possibile utilizzare Formato output per controllare il modo in cui verranno formattati i risultati delle query. Per impostazione predefinita, dsquery restituisce i nomi distinti degli oggetti corrispondenti alle query, nel modo seguente:
"cn=afuller,ou=Training,dc=contoso,dc=com"
"cn=rking,ou=ITTraining,ou=Training,dc=contoso,dc=com"
Per eseguire una query su tutti gli oggetti contenuti all'interno della OU IT e le eventuali OU figlio, utilizzare la seguente sintassi:
dsquery user ou=IT,dc=contoso,dc=com
È possibile impostare criteri di query ulteriormente restrittivi utilizzando altre opzioni come -disabled, che restituisce solo gli account utente disabilitati, -inactive x, che restituisce solo gli utenti che non hanno eseguito l'accesso durante le ultime x settimane o più, oppure -stalepwd x, che restituisce solo gli utenti che non hanno modificato la propria password nell'arco di x o più giorni.
A seconda del numero di oggetti contenuti nella directory, può essere necessario specificare l'opzione -limit x quando si esegue la query. Per impostazione predefinita, dsquery restituisce fino a 100 oggetti corrispondenti ai criteri di query specificati, ma è possibile ottenere un numero di risultati più elevato, ad esempio impostando -limit 500, oppure utilizzare -limit 0 per fare in modo che dsquery restituisca tutti gli oggetti corrispondenti alla query.
Inoltre, è possibile utilizzare gli altri sottomenu per eseguire query anche su altri tipi di oggetti. Si consideri la seguente query che restituisce ogni subnet definita in Siti e servizi di Active Directory che si trova nello spazio degli indirizzi 10.1.x.x:
dsquery subnet –name 10.1.*
In alternativa, utilizzare la seguente query per ottenere l'elenco di tutte le subnet presenti nel sito Corp:
dsquery subnet –site Corp
Un altro sottomenu consente inoltre di determinare rapidamente quanti sono i controller di dominio dell'insieme di strutture configurati come server del catalogo globale:
dsquery server –forest –isgc
La seguente sintassi consente di determinare quale controller di dominio ospita il ruolo FSMO (Emulator Flexible Single Master Operations) Controller di dominio primario (PDC):
dsquery server –hasfsmo pdc
Come nel caso degli altri comandi ds* che includono sottomenu, è possibile visualizzare tutte le opzioni disponibili all'interno di un determinato sottomenu di dsquery digitando dsquery user /?, dsquery computer /?, dsquery subnet /? e così via, al prompt dei comandi.
Un altro trucco utile consiste nell'inviare l'output di una query eseguita con dsquery a un altro strumento come dsmod utilizzando il carattere | (tasti MAIUSC+barra rovesciata). Ad esempio, supponiamo che un'azienda abbia cambiato il nome del reparto Training in Internal Development e si debba ora aggiornare il campo relativo alla descrizione di ogni utente interessato, cambiando di conseguenza il nome del reparto. In questo caso sarà possibile utilizzare una sola riga di comando per eseguire una query che restituisca gli oggetti utente contenenti Training nel campo relativo alla descrizione e quindi eseguire la modifica di massa della descrizione, tramite la seguente sintassi:
dsquery user –description "Training" | dsmod
    -description "Internal Development"

Alcuni strumenti utili di terze parti
Poiché Active Directory si basa sugli standard LDAP, è possibile eseguire query e modifiche tramite qualsiasi strumento che supporti il protocollo LDAP. La maggior parte dei fornitori terzi forniscono strumenti che agevolano l'amministrazione di Active Directory, tuttavia a volte si trovano anche prodotti molto utili disponibili gratuitamente, come nel caso della raccolta creata dall'MVP per i Servizi directory Joe Richards, disponibile per il download all'indirizzo joeware.net/freetools. Questa raccolta include numerosi strumenti utili a svolgere diverse funzioni. Tre degli strumenti che utilizzo più spesso sono adfind, admod e oldcmp.

Adfind e admod
Adfind e admod sono simili a dsquery e dsmod. Il primo è uno strumento di query da riga di comando per Active Directory mentre il secondo consente di creare, eliminare o modificare uno o più oggetti Active Directory.
A differenza degli strumenti ds* che comprendono molti sottomenu e diverse opzioni a seconda del tipo di oggetto, adfind e admod presentano una sintassi coerente indipendentemente dal tipo di query o modifica che si desidera eseguire. La sintassi di base di adfind è:
adfind –b <Search Base> -s <Search Scope> -f <Search Filter>
    attributesDesired
Pertanto, una query per ricercare il DN e la descrizione di tutti gli oggetti computer del dominio avrà la seguente sintassi:
adfind –b dc=contoso,dc=com –s subtree –f (objectclass=computer) dn
    description
Una query per ricercare tutti gli oggetti utente avrà la seguente sintassi:
adfind –b dc=contoso,dc=com –s subtree –f "(&(objectcategory=person)
    (objectclass=user))" dn description
Si osservi che, tranne nel caso dei contenuti della query LDAP, la sintassi non varia.
Man mano che si acquisisce familiarità con lo strumento adfind, si scopriranno diversi operatori che consentono di abbreviare la sintassi utilizzata. Ad esempio, sostituendo -b dc=contoso,dc=com l'opzione -default è possibile eseguire la ricerca nell'intero dominio mentre -gc consente di ricercare tutti gli utenti dell'insieme di strutture di Active Directory all'interno della Garbage Collection. È inoltre possibile utilizzare l'opzione -rb per impostare una base relativa per la ricerca. Ad esempio, se si desidera ricercare all'interno della OU Training del dominio phl.east.us.contoso.com, è possibile risparmiare parecchio lavoro scrivendo semplicemente –default –rb ou=Training anziché –b ou=Training, dc=phl,dc=east,dc=us,dc=contoso,dc=com.
Tramite adfind è inoltre possibile eseguire diverse ricerche avanzate altrimenti difficilmente gestibili dalla riga di comando, incluse le query illustrate nella Figura 4.
Figure 4 Opzioni di adfind (Close Figure 4)

Opzione | Descrizione
-showdel | Esegue una query sul contenitore degli oggetti eliminati per ricercare gli oggetti contrassegnati per la rimozione definitiva.
-bit | Esegue una query sugli operatori bit per bit, come l'attributo userAccountControl.
-asq | Esegue una query con ambito attributo. Questa funzione (che non può essere replicata in dsquery) è in grado di recuperare un attributo di un determinato oggetto e quindi eseguire una query utilizzandolo come criterio di ricerca.
-dsq | Invia l'output di una query adfind a dsmod o a uno degli altri strumenti ds*.
La seguente sintassi è un esempio di utilizzo dell'opzione –asq al fine di visualizzare l'appartenenza ai gruppi dei membri del Supporto tecnico:
adfind –default –rb cn=HelpDesk,ou=IT –asq member memberOf
Come suggerisce il nome stesso, admod consente di modificare gli oggetti all'interno di Active Directory. Come nel caso di adfind, non vi sono sottomenu specifici o sintassi particolari da memorizzare. Admod prevede la stessa sintassi indipendentemente dal tipo di oggetto. È inoltre possibile utilizzare admod per aggiungere, spostare, ridenominare, eliminare gli oggetti e persino annullarne l'eliminazione, semplicemente aggiungendo l'opzione appropriata, ad esempio -add, -rm, -move, -undel. E come con gli strumenti dsquery e dsmod, anche qui è possibile utilizzare il carattere | per inviare i risultati delle query di adfind ad admod.
Si noti che l'annullamento di un'operazione di eliminazione con admod non è altro che un'operazione di recupero di una rimozione definitiva dopo che ormai la maggior parte degli attributi degli oggetti è stata rimossa. Per ripristinare completamente un oggetto e tutti i suoi attributi, è necessario eseguire un ripristino autorevole dell'oggetto.

Oldcmp
Esiste un altro strumento che ritengo un componente fondamentale del mio toolkit per l'automazione: oldcmp. Questo strumento esegue l'analisi del database di Active Directory ricercando gli account computer che non sono stati utilizzati durante il numero di settimane specificato ed è inoltre in grado di:
  • Creare un report degli account senza eseguire alcuna operazione su di essi
  • Disabilitare gli account computer non utilizzati
  • Trasferire gli account computer a una diversa OU specificata dall'utente
  • Eliminare definitivamente gli account computer
Si noti che, poiché oldcmp è potenzialmente in grado di danneggiare seriamente la directory, integra diverse funzionalità di protezione integrate. Non consente di eliminare gli account che non sono stati precedentemente disabilitati (e senza dover specificare manualmente un'apposita opzione di conferma della riga di comando), né di modificare più di 10 oggetti per volta in mancanza di un'apposita opzione di conferma e non è assolutamente in grado di alterare l'account computer di un controller di dominio.
Anche se ora il nome dello strumento risulta fuorviante, Joe ha aggiornato oldcmp affinché possa eseguire le relative operazioni anche sugli account utente che non sono stati utilizzati per un determinato periodo di tempo.
In un ambiente Active Directory di piccole dimensioni o in cui vengono apportate solo poche aggiunte o modifiche per volta, strumenti GUI come Utenti e computer di Active Directory possono essere sufficienti ai fini dell'amministrazione quotidiana. Ma se si aggiungono e modificano quotidianamente molti oggetti o, semplicemente, se si desidera una soluzione che ottimizzi lo svolgimento delle attività amministrative, gli strumenti della riga di comando sono in grado di incrementare notevolmente la velocità di creazione, modifica ed eliminazione degli oggetti all'interno di Active Directory. Come ho illustrato in questo articolo, è possibile accedere gratuitamente a numerosi strumenti flessibili e potenti, sia integrati nell'ambiente Windows, sia scaricabili dai siti dei membri della community Active Directory. Tutti questi strumenti possono incrementare enormemente la produttività degli amministratori di Active Directory e diventare sempre più importanti per le attività quotidiane.

Laura E. Hunter è stata insignita per quattro volte del premio Microsoft MVP per l'area Windows Server Networking. È autrice del libro Active Directory Cookbook, Second Edition (O'Reilly, 2006). Laura possiede 10 anni di esperienza nel settore IT e attualmente lavora in qualità di progettista Active Directory per una società di progettazione globale. Ha conseguito numerose certificazioni del settore e partecipa frequentemente come relatrice a incontri tra gruppi di utenti e a conferenze del settore.


 Windows Server: Recupero degli oggetti contrassegnati per la rimozione definitiva di Active Directory
Windows Server Gil Kirkpatrick

Recupero degli oggetti contrassegnati per la rimozione definitiva di Active Directory
Panoramica:
  • Come memorizzare gli oggetti eliminati in Active Directory
  • Uso di LDP e ADRESTORE per trovare e ripristinare gli oggetti contrassegnati per la rimozione definitiva
  • Attributi degli oggetti e systemFlags

La perdita accidentale dei dati è una realtà con cui bisogna fare i conti, anche se si preferirebbe pensare ad altro, e, in qualità di professionista IT, è necessario prepararsi per poter far fronte a qualsiasi tipo di scenario di ripristino. Nel numero di aprile 2007 di TechNet Magazine, ho spiegato quanto è importante avere un piano
per il ripristino di utenti e gruppi di Active Directory®. In questo articolo, disponibile all'indirizzo technetmagazine.com/issues/2007/04/ADRecovery, ho analizzato i meccanismi dei processi di collegamento degli oggetti, replica, eliminazione e ripristino autorevole. Sfortunatamente, la funzione di ripristino autorevole richiede l'avvio di un controller di dominio (DC) in modalità ripristino servizi directory (DSRM). Questa operazione non rende disponibile il controller di dominio per la durata dell'operazione di ripristino.
Si tratta di un altro tipo di approccio che è opportuno tenere in considerazione. Il recupero degli oggetti contrassegnati per la rimozione definitiva, in inglese "Tombstone" (il che non ha nulla a che vedere con gli zombie), è l'unico metodo che consente di ripristinare gli oggetti eliminati senza disconnettere un controller di dominio nonché di recuperare le informazioni sull'identità dell'oggetto eliminato, come gli attributi objectGUID e objectSid. Questa funzionalità risolve chiaramente il problema di ricreare un utente o un gruppo eliminato e di dover correggere i vecchi riferimenti dell'elenco di controllo di accesso (ACL) che contengono objectSid dell'oggetto eliminato. Occorre tenere presente che il recupero degli oggetti contrassegnati per la rimozione definitiva presenta alcuni limiti che verranno analizzati più avanti, pertanto potrebbe essere necessario far ricorso ai ripristini autorevoli.
Il recupero degli oggetti contrassegnati per la rimozione definitiva è stato introdotto in Active Directory di Windows Server® 2003 per semplificare alcuni scenari di ripristino dei dati. Questa funzionalità si avvale del fatto che Active Directory mantiene gli oggetti eliminati nel database per un determinato periodo di tempo prima di rimuoverli fisicamente. In questo articolo fornirò una descrizione dettagliata del modo in cui Active Directory elimina e recupera gli oggetti. Inoltre, illustrerò come recuperare gli oggetti eliminati utilizzando gli strumenti Microsoft standard.

Che cos'è un oggetto contrassegnato per la rimozione definitiva?
Quando Active Directory elimina un oggetto dalla directory, non lo rimuove fisicamente dal database. Al contrario, Active Directory contrassegna l'oggetto come eliminato impostandone l'attributo isDeleted su TRUE, rimuovendone la maggior parte degli attributi, ridenominandolo e spostandolo in un contenitore speciale del contesto dei nomi dell'oggetto denominato CN=Deleted Objects. L'oggetto, ora definito oggetto contrassegnato per la rimozione definitiva, è invisibile alle normali operazioni di directory, non viene visualizzato in nessuno snap-in MMC (Microsoft® Management Console) e la maggior parte delle utilità LDAP (Lightweight Directory Access Protocol) sono assolutamente inconsapevoli della sua esistenza. Tale oggetto è, a tutti gli effetti, assente. I dati, tuttavia, sono sempre lì, ma sono invisibili. Per quale motivo Active Directory conserva gli oggetti contrassegnati per la rimozione definitiva nel database?
Nonostante sia invisibile ad altri processi, un oggetto contrassegnato per la rimozione definitiva è visibile al processo di replica di Active Directory. Per verificare che l'eliminazione venga eseguita su tutti i controller di dominio che ospitano l'oggetto eliminato, Active Directory replica l'oggetto contrassegnato per la rimozione definitiva sugli altri controller di dominio. In questo modo l'oggetto contrassegnato per la rimozione definitiva viene utilizzato per replicare l'eliminazione in ogni parte dell'ambiente Active Directory.

Durata di un oggetto contrassegnato per la rimozione definitiva
Active Directory elimina in genere un oggetto dalla directory in risposta a un'operazione di eliminazione del protocollo LDAP o a un'operazione di eliminazione di Gestione account di protezione (SAM). Questa operazione viene definita come punto di partenza dell'operazione di eliminazione e si distingue dalle altre operazioni eseguite dal processo di replica di Active Directory. Si noti che questa discussione non riguarda gli oggetti dinamici che hanno un diverso meccanismo di eliminazione e che, una volta scaduti, vengono eliminati direttamente da Active Directory.
Quando Active Directory riceve l'operazione di eliminazione, analizza dapprima un elenco di controllo per assicurarsi che l'oggetto possa essere eliminato. Questo processo garantisce che siano rispettati i seguenti criteri:
  • L'attributo isDeleted dell'oggetto non è già impostato su TRUE (non è possibile eliminare un oggetto già eliminato!).
  • Il flag di controllo del descrittore di protezione specifico della risorsa "oggetto privato" non viene impostato nel descrittore di protezione dell'oggetto. Questa sembra essere una funzionalità non documentata. Il flag dell'oggetto privato è di 1 bit di byte Sbz1 della struttura del descrittore di protezione.
  • Il bit che non consente l'eliminazione (0x80000000) non è impostato nell'attributo systemFlags dell'oggetto.
  • L'attributo isCriticalSystemObject dell'oggetto non è impostato su TRUE.
  • Il descrittore di protezione dell'oggetto concede i diritti di accesso appropriati all'utente per eliminare l'oggetto. Più specificatamente, l'utente può eliminare l'oggetto stesso e può eliminare un figlio dall'oggetto padre.
  • L'oggetto non è un oggetto di riferimento incrociato (objectClass = crossRef) per un contesto dei nomi esistente.
  • L'oggetto non contiene alcun oggetto subordinato. Se l'operazione di eliminazione LDAP include l'ID dell'oggetto di controllo "eliminazione della struttura", Active Directory eliminerà automaticamente anche gli oggetti subordinati, a meno che l'attributo isCriticalSystemObject non sia impostato su TRUE. In questo modo si impedisce che gli oggetti di sistema critici vengano eliminati inavvertitamente come parte dell'operazione di eliminazione della struttura. Naturalmente, è possibile eliminare singolarmente questi oggetti.
  • L'oggetto non è un oggetto interno critico (ad esempio, non è l'oggetto nTDSDSA per il controller di dominio o gli oggetti segnaposto per gli antenati delle intestazioni di NC).
Oltre a quanto appena detto, Active Directory deve trovarsi in uno stato appropriato per elaborare l'operazione di eliminazione. Ad esempio, se Active Directory sta ridenominando un dominio, non eliminerà un account trust tra domini o un oggetto crossRef.
Se è stato stabilito che l'oggetto può di fatti essere eliminato, Active Directory procede a trasformarlo in un oggetto contrassegnato per la rimozione definitiva. Active Directory elimina dapprima gli attributi inutili dall'oggetto, lasciando solo quelli specificati nella Figura 1 e quelli definiti nello schema nell'oggetto contrassegnato per la rimozione definitiva. Per ulteriori informazioni, vedere la sezione "Recupero degli attributi oggetto". Successivamente, modifica il nome distinto relativo (RDN) dell'oggetto in CN<=old RDN>\0ADEL<:objectGUID>, dove \0A indica il carattere di avanzamento di riga ASCII e <objectGUID> è objectGUID espresso come stringa. L'attributo lastKnownParent viene impostato sul nome distinto (DN) del contenitore padre dell'oggetto e l'attributo isDeleted viene impostato su TRUE. Active Directory rimuove poi tutti gli attributi di collegamento in avanti e a ritroso dall'oggetto. Infine, se nell'attributo systemFlag dell'oggetto il bit "disallow move on delete" non è impostato, Active Directory sposta l'oggetto nel contenitore CN=Deleted Objects per NC. Per ulteriori informazioni su questo argomento, vedere l'intestazione laterale Attributo systemFlags e comportamento dell'oggetto.
Figure 1 Attributi salvati in un oggetto contrassegnato per la rimozione definitiva (Close Figure 1)

Contrassegnato per essere salvato
attributeID
attributeSyntax
dnReferenceUpdate
dNSHostName
flatName
governsID
groupType
instanceType
lDAPDisplayName
legacyExchangeDN
mS-DS-CreatorSID
mSMQOwnerID
nCName
objectClass
objectGUID
objectSid
oMSyntax
proxiedObejctName
replPropertyMetaData
sAMAccountName
securityIdentifier
sIDHistory
subClassOf
systemFlags
trustPartner
trustDirection
trustType
trustAttributes
userAccountControl
uSNChanged
uSNCreated
whenCreated
Salvato a causa dell'impostazione di searchFlags
msDS-AdditionalSamAccountName
msDS-Auxiliary-Classes
msDS-Entry-Time-To-Die
msDS-IntId
msSFU30NisDomain
nTSecurityDescriptor
uid
Si noti che la cartella CN=Deleted Objects è piatta e non presenta alcuna gerarchia di oggetti. Si potrebbe pensare che ciò causi conflitti di nome nel caso in cui vengano eliminati due oggetti diversi con lo stesso CN. Ma non è questo il caso. Poiché objectGUID è incorporato in ogni RDN dell'oggetto contrassegnato per la rimozione definitiva, ogni RDN di tale oggetto è univoco nel contenitore CN=Deleted Objects.
Ovviamente, gli oggetti non rimangono nel contenitore CN=Deleted Objects per sempre. La durata predefinita di un oggetto contrassegnato per la rimozione definitiva è di 60 giorni per le foreste create inizialmente utilizzando Windows® 2000 e Windows Server 2003 e di 180 giorni per le foreste create inizialmente con Windows Server 2003 SP1. È possibile modificare la durata dell'oggetto contrassegnato per la rimozione definitiva impostando l'attributo tombstoneLifetime dell'oggetto CN=Directory Service,CN=Windows NT, CN=Services,CN=Configuration, DC=<root domain>.
Ogni 12 ore, ciascun controller di dominio inizia un processo di Garbage Collection. Questa impostazione può essere modificata impostando un nuovo valore per l'attributo garbageCollPeriod dell'oggetto CN=Directory Service,CN=Windows NT, CN=Services,CN=Configuration,DC=<root domain>. La Garbage Collection esegue la scansione di tutti gli oggetti contrassegnati per la rimozione definitiva sul controller di dominio ed elimina fisicamente tutti gli oggetti più vecchi rispetto alla durata dell'oggetto contrassegnato per la rimozione definitiva.

Utilizzo di LDP per trovare gli oggetti contrassegnati per la rimozione definitiva
LDP è un'utilità, simile a Esplora risorse, che viene utilizzata con Active Directory. LDP è stato ideato originariamente dal team di sviluppo di Active Directory per testare il codice LDAP mentre Active Directory era ancora in fase di sviluppo. Attualmente parte degli strumenti di supporto di Windows Server 2003, LDP è diventato uno strumento valido per l'utilizzo di Active Directory.
Sebbene gli oggetti contrassegnati per la rimozione definitiva siano invisibili alle normali operazioni di directory, è possibile trovare tali oggetti in Active Directory utilizzando le operazioni di ricerca LDAP e le estensioni speciali di LDAP definite controlli. I controlli rappresentano un meccanismo, definito nello standard LDAP, utilizzato per estendere il protocollo LDAP al fine di fornire un'ulteriore funzionalità oltre quella definita nello standard LDAP pur rimanendo compatibile con altro software conforme a LDAP. Active Directory supporta 22 controlli, compreso il controllo Return Deleted Objects. Se utilizzato per estendere un'operazione di ricerca LDAP, questo controllo recupera gli oggetti eliminati che altrimenti resterebbero invisibili.
Per illustrare la modalità di funzionamento del controllo, accedo al dominio foo.local con le credenziali di amministratore dell'organizzazione e utilizzo lo snap-in MMC Utenti e i computer di Active Directory (ADUC) per creare un oggetto utente (CN=John Smith,CN=Users,DC=foo,DC=local), come illustrato nella Figura 2. Quindi elimino l'oggetto utente, utilizzando ancora ADUC.
Figura 2 Uso di ADUC per creare un utente
Figura 2 Uso di ADUC per creare un utente
A questo punto posso eseguire il programma LDP e utilizzarlo per visualizzare l'oggetto contrassegnato per la rimozione definitiva per l'utente eliminato. Il primo passaggio consiste nel collegare LDP a un controller di dominio specifico ed eseguire l'autenticazione utilizzando le credenziali appropriate. Per effettuare il collegamento al controller di dominio, scelgo semplicemente l'opzione Connect dal menu Connection. Poiché eseguo LDP sul controller di dominio, premo semplicemente OK per collegarmi al controller di dominio locale. Se esegui LDP in modalità remota, è necessario specificare il nome del controller di dominio al quale si desidera collegarsi. Dopo aver effettuato la connessione, LDP visualizza gli attributi di rootDSE che contiene attributi che descrivono lo stato e la configurazione del controller di dominio stesso (vedere la Figura 3).
Figura 3 LDP connesso a un controller di dominio
Figura 3 LDP connesso a un controller di dominio
Per effettuare l'autenticazione a un controller di dominio utilizzando le credenziali di dominio o di amministratore di dominio, seleziono Bind dal menu Connection. Poiché sono già registrato come amministratore dell'organizzazione per la foresta (per impostazione predefinita gli amministratori di dominio e gli amministratori dell'organizzazione dispongono dei diritti per elencare e recuperare gli oggetti nel contenitore CN=Deleted Objects), lascio vuoti i campi Username e Password della finestra di dialogo Bind e seleziono OK. Altrimenti, nella finestra di dialogo Bind potrei inserire le credenziali appropriate.
La prossima cosa da fare è elencare i contenuti del contenitore CN=Deleted Objects,DC=foo=DC=local. In genere il contenitore CN=Deleted Objects non viene visualizzato in quanto il contenitore stesso è contrassegnato come eliminato. L'unico modo per ricercare il contenitore CN=Deleted Objects è utilizzare il controllo LDAP Return Deleted Objects.
Per utilizzare questo controllo con LDP, andare al menu Browse e scegliere Search. Verrà visualizzata la finestra di dialogo di ricerca illustrata nella Figura 4. Il campo Dn di base consente di specificare dove avviare la ricerca nella struttura di directory. Inserisco il DN del contenitore Deleted Objects per il dominio. In questo esempio, il DN è CN=Deleted Objects,DC=foo,DC=local.
Figura 4 Finestra di dialogo di ricerca LDP
Figura 4 Finestra di dialogo di ricerca LDP
Nel campo Filter, specifico l'LDP dei criteri di ricerca che utilizzerò. Il valore predefinito è (objectClass=*) e indica alla ricerca di restituire tutti gli oggetti che hanno un valore per l'attributo objectClass. Poiché anche gli oggetti eliminati in Active Directory hanno un valore per objectClass, il filtro predefinito restituirà ogni oggetto nell'ambito della ricerca. In quest'esempio, modifico il filtro in (objectClass=user), limitando la ricerca agli oggetti utente. In questo modo la ricerca dell'utente eliminato, John Smith, tra migliaia di possibili oggetti contrassegnati per la rimozione definitiva nel contenitore CN=Deleted Objects risulterà più semplice.
È possibile che vengano individuati più oggetti nel contenitore CN=Deleted Objects di quelli che Active Directory restituirà in un'unica operazione di ricerca. Per risolvere questo problema, in genere si utilizza una ricerca LDAP di paging, che restituisce i risultati un gruppo per volta. Tuttavia, LDP non consente di specificare una ricerca di paging ed estesa. Pertanto sarà necessario perfezionare il filtro LDAP per individuare l'oggetto desiderato.
I pulsanti di opzione Scope consentono di specificare la parte di struttura di directory nella quale eseguire la ricerca. Una ricerca di base restituirà soltanto l'oggetto specificato dal campo Dn di base. La ricerca su un solo livello restituirà gli oggetti immediatamente subordinati all'oggetto Dn di base. Mentre la ricerca in una sottostruttura restituirà tutti gli oggetti subordinati all'oggetto Dn di base. Poiché la cartella CN=Deleted Objects è piatta, si utilizza una ricerca su un solo livello per richiamare tutti gli oggetti contrassegnati per la rimozione definitiva.
Fino ad ora, ho semplicemente delineato una ricerca LDAP convenzionale. Se dovessimo eseguirla ora, LDP visualizzerebbe un errore che indica che CN=Deleted Objects,DC=foo,DC=com non esiste in quanto è stato contrassegnato come eliminato. È necessario includere ancora il controllo LDAP Return Deleted Objects nell'operazione di ricerca. A tal fine, seleziono il pulsante Options della finestra di dialogo Search e scelgo Extended for the Search Call Type, come illustrato nella Figura 5. Questa opzione mi consente di specificare i controlli per l'operazione di ricerca. A questo punto, modifico anche l'elenco Attributes in *. LDP visualizza tutti gli attributi normali per ogni oggetto recuperato, invece della serie predefinita di attributi LDP.
Figura 5 Ricerca LDP Finestra di dialogo Options
Figura 5 Ricerca LDP Finestra di dialogo Options
A questo punto premo il pulsante Controls per visualizzare la finestra di dialogo Controls. La finestra di dialogo Controls di LDP è poco pratica, pertanto quando si esegue questa operazione è necessario attenersi attentamente alle istruzioni per aggiungere il controllo Return Deleted Objects.
Aprire l'elenco a discesa Load Predefined, scegliere Return Deleted Objects e premere il pulsante Check in. In questo modo l'identificatore di oggetto (OID) per il controllo Return Deleted Objects (1.2.840.113556.1.4.417) viene aggiunto all'elenco Active Controls, come illustrato nella Figura 6. LDP aggiunge poi il controllo a tutte le successive operazioni di ricerca estese. Premere OK per salvare le impostazioni di controllo e nuovamente OK per chiudere la finestra di dialogo Search Options.
Figura 6 Aggiunta del controllo Return Deleted Objects
Figura 6 Aggiunta del controllo Return Deleted Objects
La finestra di dialogo Controls assume un comportamento particolare. In modo specifico, anche se viene visualizzato un OID nell'elenco Active Controls, ciò non significa necessariamente che il controllo è attivo. A volte è necessario estrarre un controllo e archiviarlo nuovamente per verificare che quest'ultimo venga utilizzato nella successiva operazione LDAP.
A questo punto sono pronto a eseguire la mia ricerca. Premo il pulsante OK nella finestra di dialogo Search LDP e LDP recupera tutti gli oggetti utente dal contenitore CN=Deleted Objects del dominio. I risultati sono illustrati nella Figura 7.
Figura 7 Risultati del contenitore CN=Deleted Objects
Figura 7 Risultati del contenitore CN=Deleted Objects

Analisi dei risultati LDP
La mia ricerca ha restituito due oggetti contrassegnati per la rimozione definitiva. Innanzitutto, è possibile visualizzare il nome distinto del primo oggetto contrassegnato per la rimozione definitiva: CN=John Smith\0ADEL:41800281-6bc4-42c3-a99b-b283022b3af8,CN=Deleted Objects,DC=foo,DC=local. L'objectGUID dell'oggetto eliminato è rappresentato come una stringa (41800281-6bc4-42c3-a99b-b283022b3af8). Sotto il nome distinto viene visualizzato un elenco di attributi contenente i valori per objectClass, cn, distinguishedName e così via. È possibile vedere che il valore dell'attributo isDeleted è TRUE e ciò significa che l'oggetto è stato di fatto eliminato. Si vedrà inoltre che objectSid è stato conservato nell'oggetto contrassegnato per la rimozione definitiva. Ciò è importante per il recupero degli oggetti contrassegnati per la rimozione definitiva dell'utente e del gruppo, come verrà illustrato più avanti. Anche l'attributo lastKnownParent, che rappresenta il nome distinto dell'oggetto che conteneva l'oggetto eliminato prima che diventasse contrassegnato per la rimozione definitiva, è di fondamentale importanza durante il ripristino degli oggetti contrassegnati per la rimozione definitiva.
Nel mio esempio, LDP ha visualizzato due oggetti contrassegnati per la rimozione definitiva, entrambi i quali erano oggetti utente definiti CN=John Smith che provenivano in origine dal contenitore CN=Users,dc=foo,dc=local. Come è possibile che due oggetti distinti aventi lo stesso RDN provengano dallo stesso contenitore? La spiegazione è molto semplice. Prima di eseguire LDP per la ricerca degli oggetti contrassegnati per la rimozione definitiva, ho creato l'oggetto utente CN=John Smith nel contenitore CN=Users,DC=foo,DC=local e l'ho eliminato. Successivamente, ho creato un altro oggetto utente con gli stessi attributi e ho eliminato anche quello. Poiché avevo già eliminato il primo oggetto utente CN=John Smith, era perfettamente logico crearne un secondo, anche con lo stesso nome. Ma si tratta comunque di oggetti separati, univoci, distinti dai relativi objectGUID. Poiché Active Directory incorpora objectGUID nel DN dell'oggetto contrassegnato per la rimozione definitiva, questi vengono visualizzati come oggetti distinti nel contenitore CN=Deleted Objects.

Modalità di recupero di un oggetto contrassegnato per la rimozione definitiva
Active Directory fornisce un meccanismo per il recupero di un oggetto contrassegnato per la rimozione definitiva che diventa così nuovamente un oggetto normale. Si tratta di fatto di una funzione che consente di annullare l'eliminazione degli oggetti eliminati. La funzione è un'operazione di modifica LDAP creata ad hoc che deve includere due modifiche ad attributi specifici: deve rimuovere l'attributo isDeleted (non solo impostarlo su FALSE) e spostare l'oggetto su un altro contenitore modificando il distinguishedName dell'oggetto. In genere, il nuovo distinguishedName utilizza (ma non necessariamente) l'attributo lastKnownParent come contenitore e mantiene lo stesso RDN meno il componente \0ADEL:<objectGUID> che Active Directory ha aggiunto quando ha creato l'oggetto contrassegnato per la rimozione definitiva.
Prima di ripristinare l'oggetto contrassegnato per la rimozione definitiva, Active Directory verifica se determinate condizioni necessarie sono tutte True. L'utente deve disporre del diritto di accesso esteso al ripristino degli oggetti contrassegnati per la rimozione definitiva definito nell'intestazione NC dell'NC che contiene tale oggetto. L'utente non può recuperare il proprio oggetto. L'attributo isDeleted dell'oggetto contrassegnato per la rimozione definitiva deve essere impostato su TRUE. L'identificatore di protezione (SID) del proprietario dell'oggetto, come definito nel descrittore di protezione, deve disporre di un SID di uno dei domini nella foresta o di un dominio trusted.
Se l'oggetto in questione si trova nel contesto dei nomi della configurazione o in quello degli schemi, i bit FLAG_CONFIG_ALLOW_RENAME e FLAG_CONFIG_ALLOW_MOVE devono essere impostati nell'attributo systemFlags dell'oggetto contrassegnato per la rimozione definitiva. Se l'oggetto si trova nel contesto dei nomi della configurazione o in quello degli schemi ed è stato impostato il flag FLAG_CONFIG_ALLOW_LIMITED_MOVE, l'oggetto può essere soltanto spostato in un contenitore che ha lo stesso padre del padre. In altre parole, dopo lo spostamento, l'oggetto deve mantenere l'entità superiore di tre livelli. Inoltre, se l'oggetto si trova in un contesto dei nomi dei domini o in una partizione dell'applicazione, i bit FLAG_DOMAIN_DISALLOW_RENAME e FLAG_DOMAIN_DISALLOW_MOVE non devono essere impostati nell'attributo systemFlags dell'oggetto contrassegnato per la rimozione definitiva.
L'utente deve disporre dei diritti, come definito nel descrittore di protezione, per modificare l'RDN (in genere CN, ma non sempre) e aggiungere l'oggetto al nuovo contenitore padre. A sua volta, il nuovo contenitore padre deve essere un possibile superiore per objectClass dell'oggetto contrassegnato per la rimozione definitiva, come definito dallo schema. Sebbene gli spostamenti all'interno o all'esterno del contenitore System non siano normalmente consentiti (a meno che il valore del Registro di sistema della sottostruttura di sistema Unlock non sia diverso da zero) è consentito il recupero di un oggetto contrassegnato per la rimozione definitiva.
Il recupero di un oggetto schema non è mai consentito. Tuttavia, non è un problema poiché non è possibile eliminare legittimamente un oggetto dal contesto dei nomi degli schemi.
Se tutte le verifiche risultano corrette e vengono soddisfatti tutti i requisiti necessari, Active Directory effettua le operazioni indicate di seguito per recuperare l'oggetto contrassegnato per la rimozione definitiva:
  • L'attributo isDeleted viene rimosso.
  • Se non diversamente indicato nell'operazione di modifica, objectCategory viene impostato sull'objectClass più specifico indicato nell'oggetto contrassegnato per la rimozione definitiva.
  • L'RDN viene modificato e l'oggetto viene scritto nel nuovo contenitore padre.
Al termine del recupero, l'oggetto presenta gli stessi attributi objectGUID e objectSid che conteneva in origine. Ciò significa che i riferimenti esterni all'oggetto, ad esempio negli ACL, non devono essere ripristinati come se venisse ricreato un oggetto eliminato. L'oggetto recuperato assomiglia e agisce come l'oggetto eliminato, con un'importante differenza: l'oggetto recuperato non dispone di tutti gli attributi che non sono stati salvati nell'oggetto contrassegnato per la rimozione definitiva.

Utilizzo di LDP per recuperare gli oggetti contrassegnati per la rimozione definitiva
Attributo systemFlags e comportamento dell'oggetto
L'attributo systemFlags è un attributo facoltativo definito per la classe principale che rende systemFlags un attributo facoltativo per ogni classe Active Directory. È una maschera di bit a numero intero a 32 bit che controlla il comportamento degli spostamenti e delle eliminazioni degli oggetti. Di seguito è riportato un riepilogo dei flag importanti.

FLAG_DISALLOW_DELETE (0x80000000)

Se viene impostato questo flag, il sistema non consentirà l'eliminazione o lo spostamento dell'oggetto in un altro dominio.

FLAG_CONFIG_ALLOW_RENAME (0x40000000)

Gli oggetti nei contesti dei nomi della configurazione e degli schemi non possono essere ridenominati a meno che il flag non venga impostato nell'attributo systemFlags.

FLAG_CONFIG_ALLOW_MOVE (0x20000000)

Gli oggetti nei contesti dei nomi della configurazione e degli schemi non possono essere spostati a meno che il flag non venga impostato nell'attributo systemFlags.

FLAG_CONFIG_ALLOW_LIMITED_MOVE (0x10000000)

Gli oggetti nei contesti dei nomi della configurazione e degli schemi non possono essere spostati a meno che il flag non venga impostato nell'attributo systemFlags. Questo flag impone un'ulteriore limitazione al contenitore di destinazione dell'operazione di spostamento‑il contenitore di destinazione deve avere lo stesso padre del padre del contenitore corrente.

FLAG_DOMAIN_DISALLOW_RENAME (0x08000000)

Per impostazione predefinita, è possibile ridenominare gli oggetti nei contesti dei nomi dei domini o delle applicazioni. Tuttavia, se questo flag viene impostato nell'attributo systemFlags dell'oggetto, il sistema non consentirà la ridenominazione dell'oggetto.

FLAG_DOMAIN_DISALLOW_MOVE (0x04000000)

Per impostazione predefinita, è possibile spostare in un altro contenitore gli oggetti nei contesti dei nomi dei domini o delle applicazioni. Tuttavia, se questo flag è impostato nell'attributo systemFlags dell'oggetto, il sistema non consentirà lo spostamento dell'oggetto.

FLAG_DISALLOW_MOVE_ON_DELETE (0x02000000)

Se viene impostato questo flag, il sistema non sposterà l'oggetto nel contenitore CN=Deleted Objects del relativo contesto dei nomi. Imposterà semplicemente l'attributo isDeleted, ridenominerà l'oggetto e rimuoverà gli attributi non indicati nello schema da salvare. Ciò significa che non tutti gli oggetti eliminati vengono visualizzati nel contenitore CN=Deleted Objects del contesto dei nomi, infatti alcuni rimangono nel contenitore padre originale.

Dopo aver descritto in dettaglio come avviene il recupero degli oggetti contrassegnati per la rimozione definitiva, desidero illustrare come è possibile utilizzare LDP per ripristinare l'utente CN=John Smith eliminato. Innanzitutto, mi connetto a un controller di dominio ed eseguo l'autenticazione. A questo punto posso eseguire un'operazione di modifica utilizzando LDP. Nei parametri dell'operazione di modifica, posso eliminare l'attributo isDeleted e, allo stesso tempo, specificare un nuovo DN.
Poiché sto lavorando su un oggetto contrassegnato per la rimozione definitiva, devo specificare il controllo LDAP Return Deleted Objects. Per impostare questo controllo per l'operazione di modifica in LDP, scelgo Controls dal menu di opzioni, seleziono Return Deleted Objects dall'elenco a discesa Load Predefined, premo il pulsante Check in, quindi OK per salvare le impostazioni del controllo.
In seguito seleziono Modify dal menu Browse per aprire la finestra di dialogo Modify e immettere il DN dell'oggetto contrassegnato per la rimozione definitiva che si intende ripristinare. Il metodo più semplice per eseguire questa operazione è copiare e incollare il DN dai risultati dell'operazione di ricerca eseguita in precedenza.
A questo punto devo inserire un elenco di operazioni sull'attributo da eseguire. Il recupero di un oggetto contrassegnato per la rimozione definitiva richiede due operazioni: l'eliminazione dell'attributo isDeleted e la sostituzione dell'attributo distinguishedName con il DN desiderato dell'oggetto contrassegnato per la rimozione definitiva recuperato. Quindi, immetto isDeleted nel campo Attribute e seleziono il pulsante di opzione Delete. Una volta premuto il pulsante Enter, l'operazione sull'attributo viene aggiunta all'elenco Entry, come illustrato nella Figura 8.
Figura 8 Specifica delle operazioni sull'attributo da eseguire
Figura 8 Specifica delle operazioni sull'attributo da eseguire
Inserisco il distinguishedName nel campo Attribute, seleziono il pulsante di opzione Replace e inserisco il nuovo DN dell'oggetto nel campo Values. In questo caso, utilizzo il distuiguishedName originale dell'utente, CN=John Smith,CN=Users,DC=foo,DC=local. Premo il pulsante Enter e l'operazione di modifica viene aggiunta all'elenco Entry.
Poiché devo includere il controllo LDAP Return Deleted Objects con l'operazione di modifica, devo utilizzare una modifica LDAP estesa. A tal fine, seleziono la casella di spunta Extended. Al termine di tutte le impostazioni, come illustrato nella Figura 9, premo il pulsante Run per apportare le modifiche. LDP visualizza i risultati in una finestra di testo di grandi dimensioni.
Figura 9 Modifica del distinguishedName
Figura 9 Modifica del distinguishedName
A questo punto torno allo snap-in MMC Utenti e computer di Active Directory e controllo il contenitore CN=Users, l'oggetto utente eliminato si trova nello stesso punto dal quale è stato generato. Ma l'oggetto presenterà alcune differenze importanti rispetto allo stato originale che illustrerò a breve.

Utilizzo di ADRESTORE per recuperare gli oggetti contrassegnati per la rimozione definitiva
Una volta scoperto come utilizzare LDP, il recupero di un oggetto contrassegnato per la rimozione definitiva non risulta estremamente difficile, sebbene non sia molto conveniente. Fortunatamente, quei santi che lavorano presso Sysinternals (un'azienda che adesso fa parte di Microsoft) hanno sviluppato uno strumento della riga di comando per semplificare il processo di recupero. Questo strumento, definito ADRESTORE, è disponibile dal sito Web di Microsoft all'indirizzo microsoft.com/technet/sysinternals/utilities/AdRestore.mspx. L'installazione è semplice. È sufficiente copiare l'eseguibile in una directory appropriata sul computer, ad esempio la directory C:\WINDOWS\SYSTEM32.
ADRESTORE viene eseguito in due modalità. Se viene eseguito senza parametri, elencherà tutti gli oggetti contrassegnati per la rimozione definitiva nel contenitore CN=Deleted Objects del dominio predefinito. È possibile aggiungere una stringa di ricerca alla riga di comando per selezionare gli oggetti da visualizzare, ad esempio:
C:\> adrestore John
In questo modo, verranno visualizzati tutti gli oggetti contrassegnati per la rimozione definitiva nel contenitore CN=Deleted Objects che contiene la stringa "John" nell'attributo CN o OU. Il contenitore visualizzerà i filtri di ricerca LDAP cn=*John* e ou=*John*. Non si tratta esattamente del metodo più flessibile per ricercare gli oggetti contrassegnati per la rimozione definitiva, ma è adatto per la maggior parte delle situazioni. Nella Figura 10 viene illustrato l'output restituito dalla mia ricerca in ADRESTORE.
Figura 10 Attributi salvati in un oggetto contrassegnato per la rimozione definitiva
Figura 10 Attributi salvati in un oggetto contrassegnato per la rimozione definitiva
Se si intende recuperare, e non solo trovare, un oggetto contrassegnato per la rimozione definitiva, è necessario specificare l'opzione –r, insieme a una stringa facoltativa, come la seguente:
C:\> adrestore –r John
Questo comando chiederà di recuperare ogni oggetto contrassegnato per la rimozione definitiva corrispondente. ADRESTORE recupera sempre l'oggetto nel contenitore fornito dall'attributo lastKnownParent dell'oggetto contrassegnato per la rimozione definitiva: non esiste un metodo per specificare un contenitore diverso.
ADRESTORE fornisce un'interfaccia della riga di comando conveniente per utilizzare la funzionalità di ripristino di Active Directory. Sebbene non sia molto flessibile, è più semplice da utilizzare rispetto a LDP. Tuttavia, ADRESTORE non evita due problemi significativi che si verificano durante il recupero degli oggetti contrassegnati per la rimozione definitiva: il ripristino degli attributi rimossi dall'oggetto dopo la relativa eliminazione e il ripristino degli oggetti eliminati dal contesto dei nomi della configurazione.

Recupero degli attributi oggetto
Per quanto concerne il ripristino dei dati, il recupero degli oggetti contrassegnati per la rimozione definitiva presenta un grande vantaggio rispetto all'esecuzione di un ripristino autorevole: il recupero degli oggetti contrassegnati per la rimozione definitiva non richiede la disconnessione di un controller di dominio. Inoltre, il recupero degli oggetti contrassegnati per la rimozione definitiva è un'operazione di gran lunga migliore rispetto alla creazione di una nuova versione di un oggetto eliminato. Se si sceglie di ricreare un oggetto, si otterranno sempre nuovi attributi objectGUID e objectSid (se si tratta di un'entità di protezione come un utente). Di conseguenza, qualsiasi riferimento esterno all'oggetto, come gli ACL, dovrà essere aggiornato per riflettere l'identità del nuovo oggetto. Questo potrebbe rappresentare uno dei grattacapi principali.
Alcuni attributi vengono rimossi quando un oggetto viene eliminato e non vengono ripristinati con il recupero degli oggetti contrassegnati per la rimozione definitiva. Ma Active Directory salva alcuni attributi principali nell'oggetto contrassegnato per la rimozione definitiva, i più importanti dei quali sono attributi correlati all'identità come objectGUID e objectSid. Per impostazione predefinita, Active Directory salva anche molti altri attributi (vedere la Figura 1). La maggior parte degli attributi da salvare non sono molto interessanti, in particolar modo nel caso di una discussione sul ripristino degli oggetti utente eliminati. Ma è possibile specificare ulteriori attributi da salvare nell'oggetto contrassegnato per la rimozione definitiva impostando il bit 3 (0x00000008) dell'attributo searchFlags dell'oggetto attributeSchema corrispondente nello schema Active Directory. Alcuni attributi presentano già questa serie di bit nello schema di Windows Server 2003 R2 (illustrati anche nella Figura 1).
L'installazione di determinate applicazioni potrebbe modificare il bit 3 di searchFlags degli attributi esistenti o persino aggiungere nuovi attributi che presentano una serie bit 3. Exchange Server, ad esempio, configura diversi attributi aggiuntivi da salvare nell'oggetto contrassegnato per la rimozione definitiva.
Active Directory non salverà gli attributi con collegamenti in avanti o a ritroso nell'oggetto contrassegnato per la rimozione definitiva, anche se viene indicato di proseguire in questa maniera nell'attributo searchFlags dell'oggetto schema. In particolare, Active Directory non salva elementi come l'attributo member o l'attributo memberOf di un utente. Pertanto, il recupero di un oggetto contrassegnato per la rimozione definitiva non fornisce una soluzione per il ripristino delle appartenenze in Active Directory. Vedere il mio articolo "Ripristino di emergenza: utenti e gruppi di Active Directory" all'indirizzo technetmagazine.com/issues/2007/04/ADRecovery. Dunque sarà necessario fornire un meccanismo alternativo per il ripristino di queste informazioni durante il recupero degli oggetti contrassegnati per la rimozione definitiva.
Se si desidera utilizzare il recupero degli oggetti contrassegnati per la rimozione definitiva come parte della strategia di ripristino dei dati, sarà necessario assicurarsi che gli attributi importanti vengano salvati nell'oggetto contrassegnato per la rimozione definitiva oppure sarà necessario fornire un altro metodo per salvare e ripristinare gli attributi importanti, come utilizzare LDIFDE o un altro schema di backup e ripristino. Le alternative prevedono prodotti di ripristino dati Active Directory di terzi che forniscono un meccanismo automatico per il backup e il ripristino degli attributi che non vengono salvati e ripristinati dall'oggetto contrassegnato per la rimozione definitiva.

Recupero degli oggetti dal contesto dei nomi della configurazione
In genere, un'altro limite significativo del recupero degli oggetti contrassegnati per la rimozione definitiva è rappresentato dall'impossibilità di recuperare gli oggetti che sono stati eliminati dal contesto dei nomi della configurazione. Tali oggetti sono soggetti a regole specifiche per lo spostamento e la ridenominazione, come definito dall'attributo systemFlags dell'oggetto. A meno che non venga specificato diversamente dall'attributo systemFlags, gli oggetti nel contesto dei nomi della configurazione non possono essere spostati o ridenominati, il che significa che non è possibile recuperare gli oggetti contrassegnati per la rimozione definitiva. Come illustrato nella Figura 11, quando crea oggetti di classi specifiche, Active Directory applica determinati valori per l'attributo systemFlags. Si noti che Active Directory applica l'operazione logica OR bit per bit a questi valori in combinazione con qualsiasi valore systemFlags specificato nell'operazione di aggiunta. In questo modo, anche se l'applicazione specifica un valore diverso per l'attributo systemFlags, i bit necessari verranno impostati correttamente.
Figure 11 Impostazioni systemFlags predefinite (Close Figure 11)

Classe | Impostazione predefinita
server | FLAG_DISALLOW_MOVE_ON_DELETE FLAG_CONFIG_ALLOW_RENAME FLAG_CONFIG_ALLOW_LIMITED_MOVE
site | FLAG_DISALLOW_MOVE_ON_DELETE
serversContainer | FLAG_DISALLOW_MOVE_ON_DELETE
nTDSDSA | FLAG_DISALLOW_MOVE_ON_DELETE
siteLink | FLAG_CONFIG_ALLOW_RENAME
siteLinkBridge | FLAG_CONFIG_ALLOW_RENAME
nTDSConnection | FLAG_CONFIG_ALLOW_RENAME
Gli unici oggetti del contesto dei nomi della configurazione che vengono recuperati in circostanze normali sono gli oggetti server. È interessante notare che quando Active Directory elimina un oggetto server, l'oggetto contrassegnato per la rimozione definitiva non viene spostato nel contenitore CN=Deleted Objects del contesto dei nomi della configurazione, ma rimane semplicemente dove si trova l'oggetto. Ciò consente al controllo di coerenza informazioni (KCC, Knowledge Consistency Checker), il processo responsabile del calcolo della topologia di replica di Active Directory, di eseguire automaticamente il ripristino da alcuni scenari in cui gli oggetti server eliminati potrebbero impedire la replica corretta. Di conseguenza, se si desidera recuperare un oggetto server, è necessario ricordare che non è possibile trovarlo nel contenitore CN=Deleted Objects.

Recupero nel piano di ripristino
Il recupero degli oggetti contrassegnati per la rimozione definitiva è una parte importante del toolkit per il ripristino dei dati. Questo meccanismo rappresenta l'unico modo per recuperare gli oggetti eliminati senza dover disconnettere un controller di dominio e, ugualmente importante, rappresenta l'unico modo per recuperare le informazioni sull'identità dell'oggetto eliminato. In questo modo si risolve chiaramente il problema di ricreare un utente o un gruppo eliminato e di dover correggere tutti i vecchi riferimenti dell'elenco di controllo di accesso (ACL).
Ma il recupero degli oggetti contrassegnati per la rimozione definitiva rimane una soluzione incompleta. È necessario fornire un proprio meccanismo per il ripristino degli attributi che Active Directory non conserva negli oggetti contrassegnati per la rimozione definitiva, ma la capacità di recuperare gli oggetti eliminati dal contesto dei nomi della configurazione è limitata. Tenere presente che se si sceglie di ripristinare un utente o un gruppo eliminato, sarà ancora necessario ripristinare le appartenenze ai gruppi e tutti gli altri attributi collegati di cui si potrebbe aver bisogno.

Gil Kirkpatrick è CTO di NetPro e si occupa dello sviluppo software per Active Directory dal 1996. In collaborazione con Guido Grillenmeier, che lavora presso HP, ha realizzato i noti workshop sul ripristino di emergenza in Active Directory. Gil è anche il fondatore della Directory Experts Conference (www.dec2007.com).


 Comunicazioni: Connessione tra gli utenti con Office Communications Server 2007
Comunicazioni Alan Maddison

Connessione tra gli utenti con Office Communications Server 2007
Panoramica:
  • Architettura di Office Communications Server
  • Funzionalità di conferenza
  • Enterprise Voice
  • Presenza avanzata

La comunicazione unificata è realtà. Il lancio imminente di Office Communications Server 2007 fornirà l'occasione per una profonda revisione dell'esperienza realizzabile in Live Communications Server 2005. Oltre ai miglioramenti nell'architettura e nell'amministrazione, Office
Communications Server 2007 include un nuovo client, Office Communicator. Inoltre, offre funzionalità nuove e migliorate quali Enterprise Voice, la conferenza Web locale, la presenza avanzata, la messaggistica immediata e la federazione. Insieme, queste funzionalità costituiscono la piattaforma per la strategia della comunicazione unificata Microsoft® e promettono di migliorare la produttività e la collaborazione a lunga distanza.
Questo aggiornamento include inoltre un'interfaccia ottimizzata per lo snap-in Microsoft Management Console (MMC). Nella Figura 1 è illustrato uno dei miglioramenti amministrativi apportati ai contatori delle prestazioni.
Figura 1 Il nuovo MMC include contatori delle prestazioni
Figura 1 Il nuovo MMC include contatori delle prestazioni
Il nuovo Office Communications Server 2007 viene distribuito in due edizioni: Standard e Enterprise. Office Communications Server 2007 Standard è ideale per le distribuzioni destinate a meno di 10.000 utenti. In una distribuzione dell'edizione Standard, un unico server front-end funge in genere da host per tutti i servizi.
Per le distribuzioni di maggiori dimensioni è disponibile l'edizione Enterprise, che può essere implementata in una configurazione consolidata o espansa. In una topologia consolidata tutto l'hardware è disposto in un unico pool di server front-end. Per il massimo di scalabilità, è possibile utilizzare la configurazione espansa, che consente di utilizzare server Web dedicati che eseguono Internet Information Services (IIS), server per conferenze Web e server per conferenze audio/video (A/V) esterni al pool Enterprise dei server front-end. Nella Figura 2 è illustrata una topologia di configurazione espansa.
Figura 2 Topologia di configurazione espansa
Figura 2 Topologia di configurazione espansa

Architettura
L'elemento fondante dell'architettura di Office Communications Server 2007 è costituito da una serie di server di base: server front-end, server Edge e server applicazioni. I server front-end forniscono l'autenticazione utente, la manutenzione delle rubriche, la gestione della presenza e della conferenza e l'hosting delle applicazioni, nonché la gestione dei segnali tra server e client, la gestione dei contenuti multimediali (inclusa la condivisione dei file) e il routing della messaggistica immediata e del traffico di conferenza.
Le funzionalità di conferenza di base di Office Communications Server 2007 vengono fornite tramite una serie di server integrati, anche definiti unità di controllo multipunto (MCU). Nella Figura 3 è illustrato un riepilogo di tali server e dei relativi ruoli.
Figure 3 Server per conferenze e relative funzioni (Close Figure 3)

Server per conferenze (MCU) | Funzionalità supportata
Messaggistica immediata | Consente la messaggistica immediata di gruppo instradando il traffico di messaggistica immediata tra i partecipanti. È integrato nel server front-end e non può essere installato su un server distinto.
Telefonia | Consente il supporto dei segnali di linea in ingresso e in uscita. È integrato nel server front-end e non può essere installato su un server distinto.
Web | Responsabile delle funzionalità di collaborazione quali le lavagne, la condivisione di applicazioni e le sessioni di domande e risposte. Questo server fornisce inoltre supporto per la condivisione dei documenti di Office e le presentazioni di PowerPoint. Può essere installato sul server front-end o nella configurazione del pool espanso su un server distinto.
A/V | Utilizzato per la combinazione e l'inoltro del traffico audio/video su protocollo IP a più parti. Può essere installato sul server front-end o nella configurazione del pool espanso su un server distinto.
Un'altra importante funzione del server front-end è quella di host del server della rubrica. Coloro che hanno familiarità con Live Communications Server 2005 SP1 riconosceranno questo servizio. In Office Communications Server 2007, gioca un ruolo centrale e non è più un componente facoltativo. Il server della rubrica è costituito da due componenti: il servizio Rubrica e l'archivio dei file della rubrica. Questo server è responsabile della fornitura delle informazioni sui contatti ottenute da origini interne ed esterne. L'Elenco indirizzi globale e le liste di distribuzione di Active Directory® e di Exchange Server sono esempi tipici di origini interne. Tra le origini esterne sono inclusi gli utenti di partner federati o i contatti di messaggistica immediata pubblica.
Office Communications Server 2007 migliora la connettività degli utenti esterni introdotta in Live Communications Server 2005 e consente loro di partecipare alle conferenze locali. Questa funzionalità aggiuntiva richiede due nuovi server Edge: il Web Conferencing Edge Server e il server Edge A/V. A seguito di un'altra modifica, il server proxy di accesso è adesso diventato l'Access Edge Server. I server Edge di Office Communications Server sono progettati per essere collocati nel perimetro di rete (subnet schermata) e per fornire la connettività strategica per gli utenti esterni. Nella Figura 4 viene fornito un riepilogo dei ruoli dei server Edge e dello scopo per cui vengono utilizzati.
Figure 4 Ruoli dei server Edge (Close Figure 4)

Server | Funzionalità supportata
Access Edge Server | Federazione; connettività degli utenti remoti; connettività per messaggistica immediata pubblica.
Web Conferencing Edge Server | Conferenze Web esterne.
A/V Conferencing Edge Server | Conferenze A/V e chiamate A/V point-to-point con gli utenti esterni.
Server proxy inverso | Espansione dei gruppi, download del file della rubrica, accesso tramite conferenza Web al contenuto delle riunioni. Non è, in senso stretto, un ruolo di Office Communications Server, ma fornisce funzionalità critiche. Anche ISA Server 2006 può fornire la funzionalità di proxy inverso.
Oltre ai server integrati descritti precedentemente, in Office Communications Server vengono utilizzati vari server applicazioni per eseguire funzioni essenziali quali l'autenticazione, l'archiviazione dei metadati di conferenza e la fornitura della funzionalità delle liste di distribuzione. I server applicazioni comunemente utilizzati con Office Communications Server includono IIS, i server dei certificati, i server di catalogo globale dall'ambiente Active Directory, SQL Server® 2005, Exchange Server 2007 e i file server.
IIS viene utilizzato per fornire l'accesso al contenuto delle riunioni, agli aggiornamenti della rubrica, all'espansione dei gruppi di distribuzione di Active Directory per la messaggistica immediata, all'espansione delle liste di distribuzione di Outlook® per gli utenti esterni, nonché per facilitare la comunicazione sottostante tra i componenti di Office Communications Server.
I server dei certificati giocano un ruolo cruciale in Office Communications Server, garantendo la sicurezza delle comunicazioni tra client e server e tra server e server. Se si utilizza un server dei certificati Enterprise interno, tutti i client e i server interni devono considerare attendibile l'autorità di certificazione (CA) emittente. Pertanto, ogni catena di certificati della CA deve essere installata nell'archivio radice attendibile. Se si utilizzano i servizi di federazione di Office Communications Server, l'organizzazione partner dovrà fare lo stesso.
L'autenticazione dei partecipanti alla conferenza è supportata dai server di catalogo globale nell'ambiente Active Directory. Per l'autenticazione degli utenti federati interni ed esterni sui server di catalogo globale verrà utilizzato il protocollo Kerberos. Gli utenti aziendali remoti utilizzeranno le credenziali di Active Directory su NTLM, mentre gli utenti anonimi verranno autenticati con l'autenticazione del digest.
SQL Server 2005 viene utilizzato per mantenere i dati di stato relativi alle conferenze, alla registrazione degli utenti e alle informazioni di presenza. In caso di errore, si potrà ripristinare in modo rapido e affidabile una riunione con i dati archiviati in SQL Server, senza il rischio di perdita di contenuti.
Exchange Server 2007 e le funzionalità di messaggistica unificata in esso disponibili forniscono un'importante integrazione a Office Communication Server 2007 grazie all'inclusione della messaggistica vocale e dell'operatore automatico.
I file server vengono impiegati per l'archiviazione dei dati a cui devono accedere i client, ad esempio i file fisici richiesti dai client durante il download della rubrica. Oltre a questi, vi sono archiviati ulteriori contenuti di riunione.
L'architettura di protocolli sottostante di Office Communications Server 2007 è basata su una combinazione di protocolli Internet standard e di protocolli Microsoft. Ad esempio, il protocollo SIP (Session Initiation Protocol) viene diffusamente utilizzato per funzionalità quali la messaggistica immediata, la conferenza e le sottoscrizioni di presenza. I protocolli utilizzati dai vari componenti di Office Communications Server offrono il massimo di efficacia e flessibilità. Nella Figura 5 è illustrato un riepilogo dei protocolli di base e del relativo utilizzo.
Figure 5 Protocolli e relativo utilizzo (Close Figure 5)

Protocollo | Funzionalità supportata
HTTP (Hypertext Transfer Protocol) | Accesso client, download del contenuto della riunione e dei dati della rubrica. Utilizzato anche per le comunicazioni tra i server per conferenze e Focus, un componente di Office Communications Server.
SIP (Session Initiation Protocol) | Creazione e gestione delle sessioni da parte dei vari componenti di Office Communications Server, quali Enterprise Voice, la messaggistica vocale, i server per conferenze e la presenza avanzata.
CCCP (Centralize Conference Control Protocol) | Protocollo personalizzato utilizzato per la creazione e il controllo delle conferenze e dei client di conferenza.
PSOM (Persistent Shared Object Model) | Protocollo personalizzato utilizzato per il trasporto del contenuto delle conferenze Web, tra cui le chiavi di protezione e i ruoli e diritti utente.
RTP (Real-Time Transport Protocol) | Invio dei dati in tempo reale. In Office Communications Server 2007, fornisce il meccanismo di trasporto per Enterprise Voice e per la conferenza A/V.
SRTP (Secure Real-Time Transport Protocol) | Servizi di sicurezza quali crittografia, autenticazione dei messaggi e integrità dei dati RTP. In Office Communications Server 2007, è utilizzato per il trasporto sicuro del contenuto audio e video ai dispositivi multimediali quali microfoni e altoparlanti.
RTCP (Real-Time Transport Control Protocol) | Utilizzato in combinazione con SRTP per trasmettere informazioni sulla qualità del segnale delle sessioni di conferenza A/V tra i dispositivi multimediali.

Enterprise Voice
Enterprise Voice è l'implementazione Microsoft della telefonia VoIP (Voice over Internet Protocol) ed è la novità più significativa del prodotto. Basata su un'implementazione che sfrutta SIP (Session Initiation Protocol) per la segnalazione e RTP (Real Time Protocol) per il traffico vocale, Enterprise Voice consente di effettuare e ricevere chiamate da PC a PC e a qualsiasi altro telefono. Inoltre, offre funzionalità quali il controllo e il routing delle chiamate e la normalizzazione dei numeri di telefono. Sono inclusi il supporto PSTN (Public Switched Telephone Network) e l'interoperabilità con i sistemi PBX (Private Branch Exchanges) compatibili con gli standard SIP o CSTA (Computer-Supported Telecommunications Applications) o che si interfacciano direttamente con l'API di Office Communications Server 2007.
Office Communications Server 2007 può essere distribuito senza modifiche di rilievo nell'infrastruttura vocale esistente e consentire al contempo di ottenere vantaggi significativi. Enterprise Voice supporta tre configurazioni di distribuzione: SIP–PBX, SIP–IP–PBX e IP-PSTN.
Nella configurazione SIP–PBX, tutte le chiamate remote vengono controllate dal PBX e vengono mantenuti i telefoni esistenti. L'integrazione è resa possibile dal gateway di controllo delle chiamate remote e dal protocollo CSTA.
Nella configurazione SIP–IP–PBX vengono sfruttate le funzionalità del gateway IP-PSTN, che elimina la necessità di CSTA e consente al client Office Communicator di comporre numeri e controllare il telefono IP-PBX. Se non si dispone di ricevitori, si può configurare Office Communicator come un "softphone".
La distribuzione di Office Communications Server 2007 con il componente IP-PSTN consente di instradare i controlli di chiamata ai server front-end. Office Communicator può interfacciarsi con endpoint di terze parti VoIP o SIP certificati Microsoft (in molte organizzazioni rappresentati, in genere, da ricevitori) ed effettuare e ricevere chiamate su Internet.
I gateway multimediali sono gateway di terze parti che offrono funzionalità di segnalazione e di conversione multimediale tra VoIP e l'host PSTN. Office Communications Server 2007 supporta tre tipi di gateway multimediali: gateway di base, gateway avanzati e gateway ibridi di base. Per supportare i gateway che non sono di tipo avanzato, in Office Communications Server 2007 è disponibile il ruolo Mediation Server, che fornisce funzionalità critiche di conversione dei protocolli e dei contenuti multimediali. Appositi componenti disponibili in Office Communications Server rendono inoltre possibile l'integrazione remota di Office.
Analogamente agli altri componenti di Office Communications Server 2007, Enterprise Voice si basa su server Edge per fornire connettività agli utenti esterni. In particolare, è richiesto un Access Edge Server (per il ruolo svolto nell'ambito della segnalazione SIP) per gli utenti esterni al perimetro aziendale e un server Edge A/V per consentire agli utenti esterni che accedono ai servizi vocali e video di connettersi tramite servizi di rete perimetrali quali il firewall e l'implementazione NAT (Network Address Translation (NAT).
Per quanto Enterprise Voice sia destinato a supportare un gran numero di client, il client attualmente consigliato è la versione più recente di Office Communicator. Inoltre, Microsoft e partner hanno annunciato piani per un nuovo apparecchio telefonico VoIP integrabile con Office Communications Server.
Enterprise Voice si integra inoltre con il ruolo di messaggistica unificata di Exchange Server 2007, offrendo un'unica interfaccia per la posta vocale, la posta elettronica, i calendari, i contatti e la ricezione dei fax da un telefono tramite Outlook Voice Access o da un computer. Inoltre, la messaggistica unificata fornisce servizi di operatore automatico, che permettono di implementare in sistema automatico di menu telefonici.

Presenza avanzata
Il concetto di presenza come lo si conosceva in Live Communications Server 2005 è stato esteso e migliorato in Office Communications Server 2007. In generale, la presenza è adesso associata allo stato e alla disponibilità degli utenti. In Office Communications Server, l'infrastruttura di supporto favorisce un'esperienza più ricca, con opzioni di configurazione delle informazioni sulla presenza più granulari.
Gli utenti adesso possono scegliere tra sei modalità di stato: In linea, Non disponibile, Non disturbare, Torno subito, Non al computer e Invisibile. Inoltre, possono personalizzare lo stato con ulteriori informazioni. Ad esempio, se lo stato è impostato su Non disturbare, possono fornire ulteriori informazioni per spiegare perché desiderano non essere disturbati.
La presenza avanzata consente inoltre di filtrare le informazioni visualizzate agli altri utenti tramite altri cinque livelli di presenza facoltativi: Personale, Team, Luogo di lavoro, Pubblico e Blocca. Questi livelli offrono un approccio gerarchico alla gestione della presenza. Ad esempio, il livello di presenza Personale offre la massima flessibilità consentendo azioni come contattare un utente tramite messaggi immediati anche quando il suo stato è impostato su Non disponibile. I livelli di presenza permettono inoltre di controllare la quantità delle informazioni visualizzate ai contatti.
Gli utenti di Office Communicator, poi, possono impostare lo stato relativo al luogo in cui si trovano scegliendo tra i valori predefiniti, Abitazione o Ufficio, o creando un luogo personalizzato. Le informazioni sul luogo vengono fornite ai soli contatti classificati come Personale o Team.
Se i miglioramenti apportati alla presenza daranno enormi frutti in termini di semplificazione delle comunicazioni, saranno comunque l'infrastruttura sottostante di Office Communications Server e il motore di presenza ad avere l'impatto più significativo sulle organizzazioni. Ad esempio, Office Communications Server 2007 include la web part Membri e una web part Office SharePoint Server 2007, che consente di visualizzare la presenza degli altri utenti associati al sito Web o al portale di SharePoint. Questa web part può essere aggiunta facilmente ai siti di SharePoint per facilitare lo scambio di informazioni sulla presenza all'interno dell'infrastruttura critica di collaborazione.
Le informazioni sulla presenza sono integrate nell'intera suite di applicazioni Microsoft® Office 2007 grazie all'utilizzo delle aree di lavoro documenti e ai pulsanti per le azioni smart tag. Questi ultimi, ad esempio, consentono di visualizzare informazioni sullo stato, sui contatti e sul calendario degli utenti. Gli utenti possono utilizzare le azioni smart tag per condividere il lavoro, pianificare riunioni e avviare una conversazione immediata.

Conferenza locale
Un altro significativo miglioramento che è stato apportato in Office Communications Server 2007 è la funzionalità di conferenza locale. La possibilità di ospitare conferenze in tempo reale con utenti interni o esterni (anonimi o federati) dovrebbe rappresentare uno strumento prezioso per molte organizzazioni. Queste conferenze possono essere pianificate o ad hoc e includere conferenze immediate, conferenze A/V e conferenze Web, nonché strumenti di collaborazione quali la condivisione file, le lavagne, l'aggiunta di note alle diapositive, i sondaggi e le sessioni di domande e risposte per i partecipanti. Office Communications Server supporta inoltre il passaggio da un tipo di conferenza a un altro. Un utente, ad esempio, può scegliere di aggiungere la collaborazione a una sessione esistente di messaggistica immediata e creare così una conferenza ad hoc.
Se Office Communicator è il client consigliato per la conferenza, Office Communications Server 2007 supporta anche Office Live Meeting 2007 e il componente aggiuntivo di Office Live Meeting per Outlook 2007. Office Communicator 2007 supporta la messaggistica immediata, la partecipazione alle sessioni A/V, la condivisione delle applicazioni, le lavagne e il trasferimento dei file. Office Live Meeting 2007 include il supporto per la partecipazione alle conferenze, nonché le sessioni di pianificazione, le sessioni di registrazione, i sondaggi dei partecipanti e le sessioni di domande e risposte.
Il componente aggiuntivo di Office Live Meeting per Outlook 2007 include il supporto per le attività di conferenza con Outlook 2007 e offre la possibilità di designare singoli utenti come partecipanti o come relatori e inviare inviti distinti ai differenti ruoli. Oltre ad assumere il ruolo di Organizzatore, Relatore o Partecipante, gli utenti sono suddivisi per gruppi di utenti interni o esterni in base al luogo e alle credenziali. Gli utenti interni dispongono di accesso Active Directory e sono connessi sulla rete LAN aziendale. Gli utenti esterni sono suddivisi in tre categorie: remoti, federati e anonimi.
Gli utenti remoti denotano qualsiasi utente dotato di un account Active Directory in un'organizzazione, ad esempio i dipendenti remoti o i terzisti. Tutti gli utenti remoti possono svolgere il ruolo di organizzatore, di partecipante o di relatore in una conferenza.
Gli utenti federati dispongono di credenziali definite nell'ambito della federazione di Office Communications Server. Possono partecipare alle riunioni e svolgere il ruolo di relatori, ma non possono organizzare una riunione.
Gli utenti anonimi sono il gruppo soggetto a più limitazioni, potendo solo partecipare alle riunioni cui sono stati invitati.
Per fornire un ulteriore livello di sicurezza per ciascuna riunione, è possibile specificare tipi differenti di impostazioni per il controllo degli ingressi. Questi sono quelli offerti da Office Communications Server 2007: Apri autenticati, Chiudi autenticati e Anonimo.
Una riunione configurata con Apri autenticati consente a qualsiasi utente remoto o interno di partecipare utilizzando le credenziali Active Directory. Possono partecipare allo stesso modo gli utenti federati. Una riunione configurata con Chiudi autenticati è limitata agli utenti invitati dall'organizzatore. Gli utenti federati non possono parteciparvi.
Una riunione configurata come anonima è aperta a chiunque riceva un invito. Per partecipare, un utente deve fornire una chiave conferenza e superare l'autenticazione del digest per la verifica delle credenziali. A meno che non venga convertito in relatore una volta che ha effettuato l'accesso alla riunione, un utente anonimo può essere solo partecipante. Alcune delle impostazioni disponibili sono illustrate nella Figura 6.
Figura 6 Impostazioni della riunione
Figura 6 Impostazioni della riunione

Composizione dei numeri
Semplificando le comunicazioni, integrando più mezzi di comunicazione e attribuendo più controllo all'utente, Office Communications Server 2007 ha tutte le potenzialità per rivoluzionare lo stile di vita aziendale. Alla base di questa rivoluzione è il concetto di comunicazione contestuale, caratterizzata dall'incorporazione nell'applicazione delle informazioni sulla presenza e del mezzo stesso di comunicazione. Office Communications Server 2007 non può mancare nell'azienda interconnessa di oggi.
Per ulteriori informazioni su Office Communications Server 2007 e per provare una versione beta, visitare TechNet Office System TechCenter all'indirizzo technet.microsoft.com/en-us/office/bb267356.aspx. Inoltre, è consigliata la consultazione dell'Unified Communications Group Team Blog all'indirizzo blogs.technet.com/uc.

Alan Maddison è consulente senior di MTI Technology Corporation. Il principale centro di interesse della sua attività è rappresentato da Active Directory, Server Exchange e dalla virtualizzazione.


 Dal redattore: Percorsi di formazione
Dal redattore
Percorsi di formazione
Joshua Trupin

Da quando scriviamo riviste, abbiamo creato l'edizione di settembre come se fosse una sorta di "ritorno a scuola". Ovviamente, siamo consapevoli che questo intervallo di tempo non è sempre esatto. Ad esempio, negli Stati uniti si torna a scuola verso la fine di agosto. Mentre per alcune persone la scuola sembra non finire mai.
Tuttavia, per la maggior parte di noi, settembre è il periodo che più si avvicina al concetto in questione. TechNet Magazine è l'istituto di istruzione superiore tramite cui si consegue la laurea di professionista IT. Ormai è fatta. Ma la rivista non costituisce l'unica fonte di istruzione che ti offriamo. Questo mese abbiamo sviluppato un programma di studio completo.
Come tutte le scuole superiori, offriamo numerose esperienze educative, dai corsi introduttivi su SQL per gli appassionati di script (in "Hey, Scripting Guy!") all'approfondimento degli strumenti di gestione di Active Directory.
I nostri studi di livello intermedio comprendono un corso di laurea su Windows Vista. Innanzitutto si apprende come installare Windows utilizzando Business Desktop Deployment (BDD 2007). Quindi, una volta installato Windows Vista nell'azienda, si ricevono istruzioni per implementare regolari backup dei sistemi, con uno sguardo ad alcune delle tecnologie principali attualmente disponibili.
A questo punto sei molto vicino al diploma da professionista IT e puoi sfruttare il nostro avanzato programma di studi su Active Directory. Se ti sei sempre chiesto come recuperare gli oggetti contrassegnati per la rimozione definita, ma non vuoi aspettare fino all'edizione speciale di Halloween, hai l'opportunità di approfondire l'argomento questo mese.
TechNet Magazine, ovviamente, non è che un percorso di formazione. Il sito di Microsoft TechNet offre numerosi corsi di formazione a distanza. TechNet offre centinaia di webcast sulle tecnologie chiave utilizzate dai professionisti IT, incluse dimostrazioni dell'utilizzo che i professionisti IT Microsoft fanno della tecnologia internamente. Le offerte di webcast sono divise per tipo di destinatari (professionisti IT, dirigenti e così via) e tecnologie e sono valutate in base al livello di difficoltà, proprio come in un vero istituto universitario.
Per fare un esempio, TechNet Magazine offre diversi corsi approfonditi su Active Directory questo mese. Ma forse non tutti sono in grado di farne l'uso migliore. È sufficiente consultare i webcast TechNet ed esaminare la presentazione Livello 200 denominata "Principi di base di Active Directory" (msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032295120).
Le attuali opportunità didattiche si presentano sotto varie forme. Dalle riviste a Internet, siamo qui per darti le informazioni di cui necessiti. Oltre agli articoli, visita il blog di TechNet Magazine (blogs.technet.com/tnmag) per partecipare alle chat dopo le lezioni sorseggiando un caffè.
—Joshua Trupin

Si ringraziano i seguenti esperti tecnici di Microsoft: Paul Bowden, Justin Hall, Anand Lakshminarayanan, Eduardo Laureano, Mike Lewis, Tim Mintner, Michael Murgolo, Mark Russinovich e Jim Truher.


 Lettere: Risposte alle domande degli utenti
Lettere
Risposte alle domande degli utenti

PsTools
Nella rubrica Desktop File del marzo 2007, in "Panoramica su PsTools", disponibile all'indirizzo technetmagazine.com/issues/2007/03/DesktopFiles/default.aspx?loc=it, Wes Miller si è occupato delle utilità PsTools. Ho qualche problema a eseguire queste ottime utilità. Sono interessato, in particolare, a PsLoggedOn. Potrei sapere come copiare le utilità in una cartella locale? Grazie in anticipo per ogni suggerimento.
-Tim

Per prima cosa, consigliamo di scaricare l'intero pacchetto di PsTools (download.sysinternals.com/Files/PsTools.zip) in una directory di lavoro (ad esempio, c:\strumenti). Una volta estratto il file ZIP nella directory, gli strumenti saranno pronti per l'uso. Per aggiungere la directory alla variabile di ambiente PATH in modo da potere avviare gli strumenti da qualsiasi posizione, sarà sufficiente eseguire il comando seguente dal prompt, sostituendo la directory di lavoro a c:\strumenti:
SET PATH=%PATH%;c:\toolbox

Fantastico Robocopy
Prima di leggere il vostro articolo di novembre 2006 sulla GUI di Robocopy (technetmagazine.com/issues/2006/11/UtilitySpotlight/default.aspx?loc=it), il nostro help desk si era arenato sul problema di come mantenere gli indicatori orari dei file trasferiti dalle cartelle di rete agli archivi di SharePoint®. Robocopy è uno strumento fantastico!
-Cristino

Controllo delle sottochiavi del Registro di sistema
Nelle scorse due settimane, le ho provate tutte per tentare di verificare se il valore della sottochiave del Registro di sistema EnableLUA è attivo o meno. Quando è disattivo, il controllo dell'account utente è disattivato. Ed è esattamente ciò che vogliamo, in modo da installare automaticamente i programmi nel nostro laboratorio di test senza dover accedere con un account amministrativo per la verifica. Abbiamo intenzione di inserire questo test all'inizio degli script di installazione ed eseguire, quindi, uno script che modifichi il valore di EnableLUA da 1 (attivo) a 0 (disattivo) prima della sua esecuzione. Ma per ora non sono riuscito a farlo funzionare. Vi sarei enormemente grato di qualsiasi aiuto poteste darmi.
-Derek

Ecco un script di base che consente di leggere una chiave del Registro di sistema, verificarne il valore e, se necessario, modificarlo. Nell'esempio viene letta la chiave HKLM\Software\Microsoft\Test\TestKey, verificato se il valore è 1 e, in caso affermativo, modificato tale valore in 0; se il valore è diverso da 1, lo script viene terminato:
On Error Resume Next
Set WSHShell =  Wscript.CreateObject _
    ("Wscript.Shell")
RegLoc = _
    "HKLM\Software\Microsoft\Test\TestKey"
KeyValue = WSHShell.RegRead(RegLoc)
If (KeyValue = "1") then
  WSHShell.RegWrite RegLoc,"0"
end If
Wscript.Quit
Come sempre, consigliamo di utilizzare con molta cautela gli script che modificano il Registro di sistema, in particolare in casi come questo.

ReadyBoost
Mi potreste spiegare meglio come funziona ReadyBoost? Per quanto ho capito, ReadyBoost funziona come un buffer tra la RAM e il disco rigido del computer, ma i dati vengono scritti simultaneamente. Ciò non comporta una diminuzione delle prestazioni, visto che la copia dei dati viene effettuata due volte? Come faccio a verificare le prestazioni del sistema con e senza ReadyBoost?
-Alex

Lo scopo di ReadyBoost è consentire alla memoria flash (chiavette USB e così via) di fungere da cache temporanea, per aumentare la quantità di RAM tradizionale (spesso più costosa) disponibile. ReadyBoost non scrive necessariamente gli stessi dati allo stesso tempo nella memoria flash e nel disco rigido. Piuttosto, agisce da livello intermedio di memorizzazione in cache tra la RAM e il disco. Mark Russinovich ne offre una spiegazione più approfondita nell'articolo del marzo 2007 "Il kernel di Windows Vista: parte 2". Scrive Mark:
"Dopo che il servizio ReadyBoost ha inizializzato la cache, il driver del dispositivo Ecache.sys intercetta tutte le letture e scritture dei dischi rigidi locali (C:\, ad esempio) e copia i dati in scrittura nel file di cache creato dal servizio.
Quando ReadyBoost rileva letture casuali che possono essere soddisfatte dalla cache, utilizza quest'ultima per l'operazione ma, poiché i dischi rigidi garantiscono prestazioni migliori rispetto alle memorie flash nelle letture sequenziali, consente alle letture che fanno parte di modelli sequenziali di accedere direttamente ai dischi, anche se i dati sono presenti nella cache."
È possibile leggere il seguito dell'articolo di Mark in linea all'indirizzo technetmagazine.com/issues/2007/03/VistaKernel/default.aspx?loc=it.

Download di Windows PE
Ho notato alcune contraddizioni nella rubrica Lettere del numero di maggio 2007. Nella risposta alla prima domanda, "Creazione di immagini", si legge: "È possibile creare e personalizzare le immagini di Windows PE 2.0 con gli strumenti trovati in WAIK..." Ciò implicherebbe che Windows PE sia incluso tra gli strumenti e disponibile per il download.
All'ultima domanda, "Per ottenere Windows PE", tuttavia avete risposto: "Windows PE è disponibile come vantaggio del contratto Software Assurance..." Secondo me, la prima risposta è corretta, mentre la seconda non è aggiornata.
-Xihui

Windows PE 2.0 è disponibile come download in Windows Automated Installation Kit (WAIK). Viene distribuito con criteri di licenza diversi rispetto a Windows PE 1.6 (la versione precedente, illustrata lo scorso anno nell'articolo "Introduzione a Windows PE", oggi consultabile all'indirizzo technetmagazine.com/issues/2006/09/WindowsPE/default.aspx?loc=it). Windows PE 1.6 era disponibile solo come vantaggio del contratto Software Assurance.

Sicurezza di Windows PowerShell
Si è parlato molto di Windows PowerShell™. Ho visto molti articoli che ne esaltano la sintassi simile a UNIX, la facilità di formattazione dell'output di comandi e altro ancora, ma non ho letto niente sui problemi di sicurezza che comporta l'implementazione di Windows PowerShell nel centro dati.
Quali sono i problemi di sicurezza che si presentano al momento della distribuzione o dell'esecuzione di una shell potente quale Windows PowerShell nei server di produzione?
-Carlos

È vero, la sicurezza di Windows PowerShell è un tema importante. Don Jones, che si occupa per noi di Windows PowerShell, affronta l'argomento proprio in questo numero di TechNet Magazine. Oltre a questo articolo, consigliamo la lettura di due recenti pubblicazioni: Windows PowerShell in Action di Bruce Payette (Manning Publications, 2007) e Windows PowerShell: TFM di Don Jones e Jeffrey Hicks (SAPIEN Press, 2007). Entrambe esaminano piuttosto in dettaglio Windows PowerShell e contengono interi capitoli dedicati al tema della sicurezza.

Procedure consigliate per SQL
Non sono d'accordo con i consigli relativi all'Analizzatore procedure consigliate (BPA) e alla qualifica a livello di schema degli oggetti che avete fornito in technetmagazine.com/issues/2007/05/SQLQA/default.aspx?loc=it. SQL Server™ 2005 deve comunque risolvere gli schemi (a differenza dei soli proprietari in SQL Server 2000, chiamati erroneamente "schemi" dall'autore). L'ordine di risoluzione per SQL Server 2005 è illustrato molto bene nella documentazione in linea.
Pertanto, la qualifica degli oggetti rimane una procedura consigliata per evitare errori di ambiguità e ridurre i cicli di CPU richiesti per l'ottimizzazione durante la risoluzione dei nomi degli oggetti. I consigli forniti nell'articolo sembrano in contrasto con quelli contenuti nel white paper Microsoft "Batch Compilation, Recompilation, and Plan Caching Issues in SQL Server 2005".
-Mike

Per ottenere una risposta, siamo andati direttamente alla fonte: David Browne, che, oltre a collaborare alla rubrica Domande e risposte su SQL, è Technology Architect presso il Microsoft Technology Center di Dallas. Ecco cosa ci ha detto:
È inevitabile e persino giusto che sulle procedure consigliate si possa non essere d'accordo. In particolare, quando si parla di prestazioni, la percezione di cosa rappresenti una differenza significativa e cosa dovrebbe essere ottimizzato è sempre una cosa soggettiva.
Io, ad esempio, non ho ritenuto opportuno scrivere le query in un certo modo per ridurre i cicli di CPU richiesti per l'ottimizzazione durante la compilazione, anche perché dubito che ciò produrrebbe una differenza apprezzabile in un carico di lavoro reale.
D'altro canto, ridurre la frequenza delle compilazioni promuovendo il riutilizzo dei piani di query è un metodo di ottimizzazione delle prestazioni largamente condiviso.

WinPE
Stiamo utilizzando Systems Management Server (SMS) Operating System Deployment Feature Pack (OSDFP) per l'installazione del sistema operativo. Adesso che è stato rilasciato Windows Vista®, vorremmo installarlo mediante OSDFP e, a questo scopo, abbiamo effettuato l'aggiornamento alla versione più recente. Quale versione di Windows PE viene fornita con l'ultimo OSDFP?
In genere, creavamo un file di immagine iso dell'installazione e lo copiavamo in Servizi di installazione remota (RIS). Quindi, utilizzavamo l'avvio di rete per avviare un nuovo computer. Ma abbiamo aggiornato RIS a Servizi di distribuzione Windows (WDS) e questo supporta solo file Windows Imaging (WIM) come immagine di avvio. Come possiamo creare un'immagine WIM tramite un'opzione di installazione dall'OSD?
-Vasishta

Windows PE non è stato aggiornato nella versione più recente di OSDFP, che include sempre la versione 1.5 (anche nota come Windows PE 2004). Tuttavia, anche se Windows PE non è stato aggiornato, adesso la distribuzione di Windows Vista è completamente supportata nell'ultima versione di OSDFP.
Il metodo migliore per creare un'immagine desktop distribuibile è quello delineato in BDD (Business Desktop Deployment) Solution Accelerator. È possibile reperire tutti i componenti e la documentazione necessari in linea all'indirizzo microsoft.com/technet/desktopdeployment/bdd/2007. È inoltre consigliata la lettura dell'articolo "Distribuzione di Windows Vista con BDD 2007" di Michael Niehaus in questo numero di TechNet Magazine.

Poster di Windows Server 2003
Ho appena ricevuto il numero di luglio 2007 di TechNet Magazine e ho trovato la piacevole sorpresa di due poster di Windows Server® 2008! Allegato a un numero precedente, un mio collega ha trovato un poster di Windows Server 2003. Sarebbe possibile ottenere le edizioni Windows Server 2003 di questi poster, su stampa o in PDF?
-Jason

Ci fa piacere che i poster di Windows Server 2008 abbiano riscosso tanto successo! Una versione PDF del poster di Windows Server 2003 è disponibile in linea all'indirizzo go.microsoft.com/fwlink/?LinkID=80428. Abbiamo realizzato una sola versione del poster di Windows Server 2003.


 Casella degli strumenti: Nuovi prodotti per professionisti IT
Casella degli strumenti
Nuovi prodotti per professionisti IT
Greg Steen

Spostare i database di SQL Server
xSQL Bundle Professional Edition
www.xsqlsoftware.com
Non importa se ti occupi principalmente di supporto operativo, di sviluppo di applicazioni, di controllo della qualità o di gestione della configurazione. Se sei un professionista IT (e suppongo che tu lo sia, considerato che stai leggendo TechNet Magazine), spostare i database di SQL Server™ è qualcosa che fa parte molto probabilmente della tua quotidianetà. Pertanto, durante lo spostamento di dati e schemi di dati, fai molta attenzione alle incongruenze. Per evitare tali incongruenze, hai bisogno di una serie di strumenti affidabili in grado di eseguire il confronto e la sincronizzazione tra schemi e dati.
Uno strumento utilizzato di recente è xSQL Bundle di xSQL Software. L'insieme è composto da quattro applicazioni differenti: xSQL Object, xSQL Data Compare e le relative utilità da riga di comando associate.
xSQL Object consente di confrontare e sincronizzare gli schemi del database. Fornisce numerose opzioni di confronto per i tipi e le istanze degli oggetti che si intende mettere a confronto tra i database. L'applicazione consente inoltre di creare snapshot degli schemi, molto utili per la gestione della cronologia delle versioni. Tale funzionalità fornisce anche un metodo che consente di ripristinare lo stato precedente di uno schema. Inoltre, consente di generare script dello schema e allo stesso tempo
di trasportare o comprimere lo schema del database.
xSQL Data Compare consente di mettere a confronto e sincronizzare i dati presenti in due database di SQL Server. Inoltre, consente di scegliere se confrontare l'intero contenuto dei due database o se selezionare una serie di tabelle da confrontare. Nel caso in cui non vi sia una corrispondenza esatta tra le due tabelle, è possibile definire il mapping di una tabella personalizzata per verificare che i dati presenti in tali tabelle siano gli stessi. Durante la sincronizzazione di grandi quantità di dati, l'applicazione passa alla modalità di inserimento di massa, risparmiando tempo in fase di sincronizzazione.
xSQL Data Compare e xSQL Object consentono entrambi di salvare lo spazio di lavoro in modo da non dover ricreare costantemente l'ambiente per il confronto. La sincronizzazione di entrambe le applicazioni è transazionale, pertanto è possibile essere certi che tutte le operazioni verranno eseguite correttamente o che verranno sottoposte a rollback nel loro insieme. Inoltre, tutte le applicazioni nell'insieme supportano anche le istanze dei database di SQL Server 2000 e SQL Server 2005 ed è possibile confrontare e sincronizzare gli eventi e gli oggetti rilevanti tra le versioni.
Probabilmente una delle funzionalità più potenti di xSQL Bundle è rappresentata da due utilità da riga di comando. Di fatti, xSQL Bundle consente di eseguire le attività di confronto e sincronizzazione tramite qualsiasi build, processo, controllo o utilità di pianificazione automatica a disposizione. Nel mio libro, l'automazione delle attività ridondanti semplifica le attività lavorative e le rende più produttive. Le utilità da riga di comando vengono utilizzate in un file di configurazione XML che è possibile creare tramite una configurazione guidata dall'interfaccia utente dell'applicazione principale. Ogni utilità presenta numerose opzioni di registrazione dei file di testo che consentono di tenere traccia di ciò che accade durante l'esecuzione automatizzata.

Prezzo:xSQL Bundle Professional Edition ha un prezzo di partenza di 499 dollari per licenza singolo utente.
xSQL Data Compare consente di sincronizzare i dati presenti in due database di SQL Server
xSQL Data Compare consente di sincronizzare i dati presenti in due database di SQL Server

Consentire una comunicazione più sicura
WinSSHD
www.bitvise.com
Se sei alla ricerca di metodi che ti consentano di migliorare la protezione all'interno della tua organizzazione, potresti prendere in considerazione Secure Shell Handling 2 (SSH2) e Secure FTP (SFTP). In poche parole, il tunneling di SSH2 consente una connessione protetta ai servizi sui computer remoti. Consente, inoltre, di limitare l'esposizione a potenziali utenti malintenzionati riducendo il numero di porte disponibili di ascolto, dirette all'applicazione, aperte sul firewall. SFTP è un'alternativa al server FTP standard e utilizza SSH2 per proteggere i dati e i comandi.
Se questi protocolli sembrano particolarmente interessanti, è opportuno senza alcun dubbio dare un'occhiata a WinSSHD di Bitvise. WinSSHD è un server SSH2 appositamente ideato per Windows.
L'installazione è semplice. L'applicazione fornisce un pannello di controllo intuitivo per la gestione del servizio WinSSHD. Il pannello di controllo si trova nello stesso punto in cui si trovano altre funzionalità, da quella di avvio o arresto alla vista personalizzata di Windows® Event Log (dove è possibile filtrare gli eventi WinSSHD). È lo stesso punto da dove viene avviato il pannello impostazioni che consente di configurare i dettagli specifici relativi all'installazione. È possibile impostare l'interfaccia e le associazioni porta, modificare la configurazione di registrazione, specificare i metodi di crittografia della sessione SSH che si intende attivare, configurare i timeout di sessione, scegliere i metodi di autenticazione, specificare le configurazioni proxy e controllare chi ha accesso all'istanza. È anche possibile importare ed esportare le configurazioni.
Le impostazioni del controllo dell'accesso consentono di limitare l'accesso tramite regole IP (con il mascheramento del supporto per il controllo della subnet) e le regole del nome DNS (che vengono elaborate dopo le regole IP).
WinSSHD supporta la virtualizzazione, il che è fantastico per le implementazioni di SFTP. Ciò significa che è possibile assegnare migliaia di utenti virtuali a un account di Windows, semplificando i dettagli relativi all'account e alla protezione. L'applicazione supporta anche l'autenticazione e il controllo dell'accesso di gruppi di Windows, pertanto non è necessario definire un criterio in base a ciascun utente.
Con il supporto per Kerberos 5 e l'autenticazione NTLM, è possibile integrare WinSSHD in un ambiente Single Sign-On. Il completamento di questa attività richiede un client SSH abilitato a GSSAPI come Tunnelier, un'integrazione interessante del prodotto, anch'essa disponibile da Bitvise. Come è facile immaginare, Tunnelier è completamente compatibile con il server WinSSHD. È possibile utilizzarlo anche per configurare in remoto il server WinSSHD.
Se l'ambiente del server SFTP o SSH2 è di importanza critica, è possibile abilitare il cluster WinSSHD per fornire maggiore disponibilità. Si tratta di un'attività piuttosto semplice, ma se si necessita di supporto, il sito Web dell'azienda fornisce informazioni e guide alla configurazione su come impostare il clustering, l'inoltro alla porta, il tunneling del desktop remoto e così via.

Prezzo: $99.95.
WinSSHD consente di specificare metodi di crittografia della sessione SSH
WinSSHD consente di specificare metodi di crittografia della sessione SSH

Monitorare l'attività USB
USB Monitor Professional
www.hhdsoftware.com
Ecco un prodotto per tutti i tipi di utenti. Forse sei un "drogato" di software DIY che ama creare e modificare driver per i propri dispositivi USB. O forse un ingegnere hardware che crea effettivamente dispositivi USB. O ancora ti sei semplicemente scoperto incantato davanti all'attività di alcuni dispositivi USB e ti stai domandando quale sia la causa di così tanta attività. Se ti ritrovi in uno qualsiasi di questi scenari, USB Monitor Professional di HHD Software può esserti d'aiuto. Questa utilità consente di registrare, visualizzare e analizzare i dati trasferiti tra un dispositivo USB e un sistema basato su Windows tramite il controller host USB.
L'interfaccia utente risulta un po' contorta, ma una volta abituati è possibile raccogliere grandi quantità di informazioni sui dati inviati e ricevuti dal dispositivo USB che si sta monitorando. Per impostazione predefinita, l'applicazione registra la maggior parte dei comandi e dei gruppi di comandi inviati a un dispositivo USB. Con alcuni dispositivi, in particolare con l'archiviazione di massa, l'operazione può essere piuttosto dettagliata. Fortunatamente, è possibile personalizzare i dati che si desidera vengano registrati dall'applicazione per i dispositivi di archiviazione di massa.
Una volta registrata una sessione, è possibile analizzare i dati in diversi modi. È disponibile una vista per i dispositivi di archiviazione di massa (Mass Storage View). Sono inoltre disponibili opzioni per un grafico lineare su statistica e velocità del dispositivo, una vista per la richiesta di controlli e pacchetti non elaborati, una vista per un decodificatore di pacchetti di dati, una vista specifica per HID e una visualizzazione immagine singola (che consente di decodificare il protocollo immagine singola USB per i dispositivi applicabili).
A causa della quantità dei dati registrati dall'applicazione, è preferibile non consentire l'esecuzione prolungata di una sessione di registrazione USB. Inoltre, è possibile limitare la quantità massima di spazio su disco consentito per le sessioni attive di registrazione e comprimere i dati registrati in modo da ridurre lo spazio necessario.

Prezzo:si parte da 175,99 dollari per una licenza regolare.
USB Monitor Professional registra i comandi inviati a un dispositivo USB
USB Monitor Professional registra i comandi inviati a un dispositivo USB

Gestione di supporti virtuali
CloneDrive virtuale
www.elby.ch/fun/software
L'utilizzo di supporti fisici può risultare abbastanza noioso. Sin dal passaggio a Windows Vista e la consecutiva perdita della compatibilità diretta con Microsoft Virtual CD-ROM Control Panel, si è cercato un sostituto per caricare le immagini di CD e DVD. A proposito, per coloro che sono interessati, è possibile trovare Microsoft® Virtual CD-ROM Control Panel per Windows XP all'indirizzo go.microsoft.com/fwlink/?LinkId=94801.
È senz'altro possibile eseguire Virtual CD-ROM Control Panel in Windows Vista. Il problema è che è necessario effettuare l'esecuzione sempre come Amministratore ed è possibile visualizzare l'unità installata solo nell'ambito di tale contesto, il che significa tramite un prompt dei comandi Run as Administrator, ma non nel contesto di Esplora risorse dell'utente. Di conseguenza, non solo lo strumento non funziona come dovrebbe, ma richiede anche che l'applicazione venga eseguita in un ambiente meno protetto.
Uno strumento che funziona nel contesto utente di Windows Vista
è Virtual CloneDrive della Elaborate
Byte. L'applicazione si installa come un'applicazione di gestione GUI e un controller di archiviazione che è possibile visualizzare da
Gestione periferiche. Una volta installata, l'applicazione presenta tre impostazioni fondamentali. La prima
consente di specificare il numero di unità virtuali che si intende utilizzare, con un massimo di 8 unità in parallelo. La seconda, forse quella più interessante, consente di scegliere di configurare l'impostazione Virtual Sheep che sostituisce l'icona standard dell'unità CD/DVD con l'immagine di una pecora arrabbiata, in modo da poter distinguere tra unità ISO e unità fisiche reali presenti sul sistema. Infine, è possibile scegliere di installare in automatico all'avvio l'ultima immagine assegnata a quell'unità virtuale.
Oltre ai file ISO, Virtual CloneDrive può anche installare e leggere i file con estensione ccd, dvd, img, udf e bin. Inoltre, si integra in Esplora risorse, fornendo rapido accesso all'installazione e alla disinistallazione delle immagini. Uno degli aspetti migliori di Virtual CloneDrive è che è gratuito. Se sei passato a Windows Vista® e sei alla ricerca di una nuova soluzione per la gestione dei file ISO, prendi senza alcun dubbio in considerazione questo strumento.

Prezzo:gratuito.
La pecora arrabbiata di Virtual CloneDrive
La pecora arrabbiata di Virtual CloneDrive

Recensione
SharePoint Products and Technologies Administrator's Pocket Consultant
microsoft.com/MSPress/books/10623.aspx
Gli uffici moderni possono non essere informatizzati, ma di certo sono alle prese con innumerevoli documenti elettronici. La gestione di questi documenti e le modalità con cui vengono condivisi è un problema crescente e molte aziende stanno prendendo in considerazione soluzioni quali Microsoft Sharepoint® Services e Sharepoint Server. Microsoft SharePoint Products and Technologies Administrator's Pocket Consultant, di Ben Curry, può essere d'aiuto. Se si sta solo prendendo in considerazione SharePoint, se si è in piena fase di pianificazione o si dispone già di una infrastruttura SharePoint, questo riferimento alle funzionalità amministrative e alle attività quotidiane è di grande supporto.
Per coloro i quali hanno già una certa dimestichezza con la serie Administrator's Pocket Consultant, questa guida risulterà molto familiare. È paragonabile agli altri in termini di livello di contenuti e struttura. Questo libro in particolare tratta di Windows SharePoint Services 3.0, SharePoint Server 2007 Standard e SharePoint Server 2007 Enterprise Edition ed è suddiviso in quattro sezioni.
La prima sezione, "SharePoint Products and Technologies Fundamentals", fornisce una panoramica sui componenti, le versioni, i requisiti e l'installazione dei prodotti SharePoint Server. In questa sezione vengono illustrati gli aspetti che differenziano Windows SharePoint Services 3.0 dalle versioni Standard e Enterprise di SharePoint Server. Inoltre, la sezione fornisce una guida rapida all'installazione di tutti e tre i prodotti. Descrive in dettaglio quali sono i database di SQL Server e i siti Web IIS creati durante il processo di installazione.
La sezione successiva, "SharePoint Core Administration", tratta dell'interfaccia utente amministrativa centrale e offre riferimenti su come creare siti e raccolte di siti, come importare, utilizzare e modificare le web part, nonché come configurare le impostazioni di posta elettronica e di gruppo. Sempre nella stessa sezione, è possibile visualizzare come gestire nonché controllare le diverse funzionalità del flusso di lavoro.
La terza parte del libro, "Working with SharePoint Server 2007", esamina approfonditamente le funzioni e le funzionalità specifiche delle versioni Standard e Enterprise di SharePoint Server. Vengono trattati argomenti quali come configurare la gestione del contenuto aziendale, come creare e configurare i portali SharePoint, come impostare la ricerca e l'indicizzazione, infine come configurare Excel®Calculation Services. La sezione relativa a Excel Calculation Services fornisce anche una guida su come configurare i servizi in un ambiente multiserver per migliorare le prestazioni e la disponibilità.
La quarta sezione amplia questa descrizione passando agli aspetti operativi di un'implementazione di SharePoint Server, illustrando la scalabilità orizzontale di SharePoint Server 2007 su una server farm e le diverse configurazioni possibili per quell'implementazione. Infine, il libro illustra gli elementi di base delle operazioni di backup e ripristino, come analizzare le prestazioni e come utilizzare le funzionalità di registrazione di SharePoint Server per supportare la gestione e migliorare il sito.
Nonostante il libro sia un punto di riferimento quotidiano per gli amministratori, può diventare uno strumento utile attraverso il quale tutti coloro che attualmente si occupano di pianificazione o che sono semplicemente curiosi possono ottenere maggiori informazioni su SharePoint. La struttura stessa del libro è organizzata in questo senso. Inizia con informazioni di base che descrivono in dettaglio le tecnologie SharePoint e le operazioni che consentono di svolgere, fino ad arrivare ad argomenti sempre più complessi come la configurazione di Excel Calculation Services e la scalabilità di una server farm. Il libro diventa pertanto un riferimento utile sia per chi è alla ricerca di informazioni sulle tecnologie SharePoint sia per chi desidera approfondire la propria conoscenza personale di tali tecnologie.

Prezzo: $29.99.

Greg Steen è un professionista IT oltre ad essere un appassionato imprenditore. È sempre alla ricerca di nuovi metodi e strumenti che aiutino a rendere più semplici le operazioni e lo sviluppo per i professionisti IT.


 Domande e risposte su SQL: Colli di bottiglia della CPU, ripristino e spostamento di database e altro ancora
Domande e risposte su SQL
Colli di bottiglia della CPU, ripristino e spostamento di database e altro ancora
A cura di Nancy Michell

D All'improvviso, l'utilizzo della CPU di SQL Server™ ha iniziato a bloccarsi eccessivamente, ma non è cambiato nulla. Non è stato aggiunto alcun nuovo utente, non è stato disattivato alcun hardware e non è stata creata alcuna nuova tabella. Dunque cosa succede?

Suggerimento: accesso durante la creazione dell'indice
Capita a volte che durante il processo di creazione di indici in tabelle di grandi dimensioni (operazione che può richiedere parecchio tempo), si desideri poter comunque disporre dei dati. Come è possibile raggiungere entrambi gli obiettivi?
Ogni volta che viene creato, rilasciato o ricreato un indice cluster, SQL Server inserisce nella tabella un blocco modifica schema (SCH-M), il che impedisce a tutti gli utenti di accedere ai dati sottostanti per tutta la durata dell'operazione. Ciò è quanto avviene durante la creazione di un indice cluster in una tabella. Per contrasto, quando si crea un indice non cluster in una colonna, SQL Server inserisce un blocco condiviso (S), impedendo al tempo stesso l'aggiornamento dei dati nella tabella sottostante; al massimo consente di eseguire le istruzioni SELECT in modo da poter leggere i dati.
Se è importante che la tabella possa essere letta durante la creazione dell'indice cluster, è possibile creare un indice in una tabella e renderla un'operazione in linea. Ecco il comando:
CREATE UNIQUE CLUSTERED INDEX CLUST_IDX_SQLTIPS
ON SQLTips (tip) with (ONLINE=ON) Go;
Quando si utilizzano operazioni di indice in linea nelle tabelle, SQL Server inserirà nuovamente un blocco SCH-M per un indice cluster o il blocco condiviso (S) per un indice non cluster nella tabella sottostante, ma soltanto per un breve periodo di tempo: durante la fase di avvio e fine dell'operazione di indice. Pertanto, questa opzione consente un accesso migliore per richiedere e aggiornare la tabella sottostante durante il processo di creazione dell'indice. Si noti che le operazioni di creazione dell'indice in linea sono disponibili solo con l'edizione SQL Server 2005 Enterprise.

R Le ragioni alla base di un collo di bottiglia CPU che si verifica improvvisamente e inaspettatamente senza alcuna modifica o carico aggiuntivo sul server possono essere svariate, ma alcune delle più comuni prevedono un piano di query non ottimale, una progettazione errata del database e dell'applicazione, nonché risorse hardware insufficienti.
La prima cosa da fare in una situazione di questo tipo è stabilire se esiste un limite alla CPU del server e, in tal caso, identificare le istruzioni che consumano la quantità maggiore di CPU nel sistema SQL Server locale. È possibile utilizzare Performance Monitor per stabilire se la CPU del server ha dei limiti osservando il contatore PROCESSOR:% PROCESSOR TIME. Se si scopre che il valore di riferimento per il tempo della CPU è uguale o maggiore al 75 percento, si verifica un collo di bottiglia della CPU.
È necessario, inoltre, monitorare le utilità di pianificazione di SQL Server eseguendo una query della vista a gestione dinamica (DMV) del sistema definita SYS.DM_OS_SCHEDULERS per visualizzare il valore delle attività eseguibili. Un valore diverso da zero indica che le attività devono aspettare un determinato periodo di tempo per l'esecuzione; anche valori alti per questo contatore sono un sintomo di un collo di bottiglia della CPU.
È possibile utilizzare la seguente query per elencare tutte le utilità di pianificazione e osservare le attività eseguibili:
SELECT
 Scheduler_ID,
 Current_Tasks_Count,
 Runnable_Tasks_Count
FROM
 SYS.DM_OS_SCHEDULERS
WHERE
 Scheduler_ID < 255
Per ottenere le prime 50 istruzioni SQL con un elevato utilizzo di CPU, utilizzare la query nella Figura 1.
Figure 1 I primi 50 problemi di CPU (Close Figure 1)
SELECT TOP 50 (a.total_worker_time/a.execution_count) AS [Avg_CPU_Time],
 Convert(Varchar,Last_Execution_Time) AS 'Last_execution_Time',
 Total_Physical_Reads,
 SUBSTRING(b.text,a.statement_start_offset/2,
 (case when a.statement_end_offset = -1 then len(convert(nvarchar(max), b.text)) * 2
 else
 a.statement_end_offset end - a.statement_start_offset)/2) AS Query_Text,
 dbname=Upper(db_name(b.dbid)),
 b.objectid AS 'Object_ID'
 FROM sys.dm_exec_query_stats a
 CROSS APPLY
 sys.dm_exec_sql_text(a.sql_handle) AS b
 ORDER BY
 [Avg_CPU_Time] DESC

D Devo recuperare un database SQL Server 2005 dal nastro. Dopo il ripristino, la maggior parte delle autorizzazioni dell'utente sono state perse. Quali sono state le operazioni errate durante il ripristino? I dati era corretti ma le autorizzazioni erano in disordine.

R Molto probabilmente il database principale non è stato ripristinato nello stesso momento e gli ID di accesso nel database dell'utente non corrispondono al database principale corrente. È necessario sincronizzare tutti i dati. L'intestazione laterale "Dove richiedere supporto durante lo spostamento di un database" elenca le risorse più utili per ottenere l'origine dei problemi riscontrati durante il ripristino o lo spostamento di un database.

D Ho sviluppato un'applicazione in cui ho utilizzato una stored procedure che distrugge i dati XML nelle tabelle relazionali utilizzando OpenXML in SQL Server 2005 SP1. Il documento XML è al massimo di 5KB (la media è di 2,5KB). La stored procedure viene chiamata molte volte in parallelo (fino a 50 volte).
Mi trovo ad affrontare seri problemi di conflitti del blocco e penso che possano essere dovuti a OpenXML. Cosa ne pensi?

R Nonostante OpenXML potrebbe essere più veloce per la distruzione o la conversione dei dati in un singolo thread rispetto al metodo nodes, tale metodo in genere è scalabile, soprattutto se utilizzato in parallelo. Tuttavia, se si utilizza OpenXML, è necessario utilizzare le seguenti linee guida per migliorare le prestazioni globali di OpenXML.
Invece di chiamare OpenXML cinque volte con lo stesso modello di riga (così come avveniva nella soluzione), è necessario estrarre tutti i dati con lo stesso modello di riga in una tabella temporanea ed eseguire le selezioni dalla stessa tabella. Tentare di rilasciare la memoria con sp_xml_removedocument il prima possibile. Inoltre, è un'ottima idea evitare l'uso di caratteri jolly come * e //, se possibile; fornendo il percorso esplicito si otterrà una query dalle prestazioni più elevate.

D DBCC SHRINKFILE funziona molto lentamente sul mio server. Riuscirei a ottenere delle prestazioni migliori su un computer a processi multipli? Cosa posso fare per migliorare la situazione?

R DBCC SHRINKFILE è un'operazione a thread singolo, il che significa non sfrutta le CPU multiple. Sposta le pagine dalla parte finale del file a quella iniziale, una pagina alla volta. Inoltre, la compattazione, come è spesso denominata, non esegue la deframmentazione; in realtà, in molte situazioni, la compattazione aumenta la deframmentazione logica.
Alcuni metodi che migliorano le prestazioni della compattazione includono il movimento delle pagine negli indici cluster. Se si dispone di heap e tali heap hanno molti indici non cluster, la velocità sarebbe notevolmente lenta (paragonata a una situazione di indice cluster).
Si noti, inoltre, che lo spostamento delle pagine per i dati LOB (large object blob) è lento, perché è necessario leggere i dati nella riga per trovare il percorso principale dei dati LOB.
Se la maggior parte del contenuto di un indice/tabella si trova alla fine del file, è possibile ricreare gli indici per spostarli nella parte anteriore del file. La ricostruzione degli indici sfrutta CPU multiple e potrebbe utilizzare meno spazio del log in modalità bulk_logged. Quando si esegue la compattazione, verrà eseguita più rapidamente.
Per ulteriori informazioni sulle operazioni di compattazione, iniziare con le voci agli indirizzi blogs.msdn.com/sqlserverstorageengine/archive/2007/03/29/how-does-your-schema-affect-your-shrink-run-time.aspx e blogs.msdn.com/sql-serverstorageengine/archive/2007/04/15/how-to-avoid-using-shrink-in-sql-server-2005.aspx.
Dove richiedere supporto durante lo spostamento di un database
  • Come spostare i database tra i computer che eseguono SQL Server
  • Come spostare i database di SQL Server in una nuova posizione utilizzando le funzioni di collegamento e scollegamento di SQL Server
  • INF: Utilizzo dell'opzione WITH MOVE con l'istruzione RESTORE
  • Come risolvere i problemi relativi alle autorizzazioni quando un database viene spostato tra i server che eseguono SQL Server
  • INF: Come trasferire accessi e password tra le istanze di SQL Server
  • INF: Comprendere e risolvere i problemi relativi alla Copia guidata database in SQL Server 2000
  • Dopo il ripristino del database gli accessi e le autorizzazioni dell'utente potrebbero non essere corretti
  • Non è possibile ripristinare i backup del database di sistema in una build differente di SQL Server
  • Come ripristinare una tabella o righe specifiche dai backup del database o dai backup del log delle transazioni in SQL Server

Suggerimento: modifica delle porte
Chiunque abbia una certa dimestichezza con SQL Server sa bene che il numero di porta predefinito su cui SQL Server è in ascolto è 1433. Nonostante le istanze denominate di SQL Server siano configurate per l'uso di porte dinamiche (il che significa che è possibile selezionare qualsiasi porta disponibile ogni volta che viene avviata un'istanza di SQL Server), l'istanza di SQL Server predefinita è sempre in ascolto sulla porta 1433. Pertanto, se il server è in ascolto sulla porta predefinita e non è molto protetto, è a rischio. Tuttavia, è possibile contrastare gli attacchi modificando la porta predefinita. Ecco cosa fare.
Aprire la funzionalità di gestione della configurazione di SQL Server ed espandere Configurazione di rete di SQL Server 2005, quindi i protocolli. Successivamente, fare doppio clic su TCP/IP. L'elenco delle proprietà TCP/IP e delle relative funzioni viene illustrato nel grafico riportato di seguito, di conseguenza eseguire l'impostazione.
Tenere presente che il motore di database di SQL Server può essere in ascolto su più porte nello stesso indirizzo IP, dunque elencare le porte che si intende utilizzare separandole da una virgola nel formato 1433,1500,1501. Se si desidera configurare un solo indirizzo IP per l'ascolto su più porte, è necessario impostare su no il parametro Listen All nella scheda relativa ai protocolli della finestra di dialogo Proprietà TCP/IP.
A questo punto, fare doppio clic su ciascun indirizzo e selezionare Proprietà per identificare l'indirizzo IP che si intende configurare. Se la finestra di dialogo Porte dinamiche TCP contiene 0, il che indica che il motore di database è in ascolto su porte dinamiche, eliminare lo 0. Nell'area delle proprietà IP, nella casella Porta TCP, immettere il numero di porta su cui si desidera che l'indirizzo IP sia in ascolto e fare clic su OK. Nel riquadro della console, selezionare Servizi di SQL Server 2005, mentre nel riquadro dei dettagli fare clic con il pulsante destro del mouse su SQL Server (<(nome istanza>), quindi scegliere l'opzione di riavvio per arrestare e riavviare SQL Server.
Dopo aver configurato SQL Server affinché sia in ascolto su una porta specifica, il client può collegarsi alla porta in tre modi differenti. È possibile eseguire il servizio SQL Server Browser sul server per effettuare il collegamento all'istanza del motore di database per nome; è possibile creare un alias sul client, specificando il numero di porta; oppure è possibile programmare il client in modo che effettui la connessione utilizzando una stringa di connessione personalizzata.

Proprietà | Descrizione
Active | Indica che SQL Server è in ascolto su una porta designata. Non disponibile per IPAll.
Attivato | Attivare o disattivare questa connessione. Non disponibile per IPAll.
Indirizzo IP | Visualizzare o modificare l'indirizzo IP utilizzato da questa connessione. Elenca l'indirizzo IP utilizzato dal computer e l'indirizzo di loopback IP, 127.0.0.1. Non disponibile per IPAll.
Porte dinamiche TCP | Spazio vuoto, se le porte dinamiche non sono attivate. Per utilizzare le porte dinamiche, impostare su 0.
Porta TCP | Visualizzare o modificare la porta su cui è in ascolto SQL Server. Per impostazione predefinita, l'istanza predefinita è in ascolto sulla porta 1433. Questo campo ha un limite di 2047 caratteri.

Grazie ai professionisti IT di Microsoft per aver risposto ai quesiti di questo mese: Chad Boyd, Cindy Gross, John Hadden, Saleem Hakani, Stephen Jiang, Mahesh Nayak, Paul Randal e Wayne Yu.


 Utilit&#224; in primo piano: PageDefrag
Utilità in primo piano
PageDefrag
Lance Whitney
Scarica il codice per questo articolo: PageDefrag (70KB)

In genere, l'utilità di deframmentazione di Windows® può ottimizzare la maggior parte dei file sul disco rigido, ma alcuni elementi sono al di fuori della portata della maggior parte degli strumenti di deframmentazione. I file che vengono aperti e bloccati per l'uso esclusivo, come il file di paging e gli hive del Registro di sistema, non vengono elaborati in genere dall'utilità di deframmentazione integrata di Windows o da utilità di terze parti. Le API standard di Windows non supportano la deframmentazione di questi file mentre sono in uso. Fortunatamente, l'utilità PageDefrag, creata da Mark Russinovich per Sysinternals, salva il lavoro quotidiano deframmentando gli elementi lasciati intatti da altri strumenti.
PageDefrag può deframmentare il file di paging, gli hive del Registro di sistema, i registri eventi e il file di ibernazione di Windows (l'area sul disco dove viene salvata la memoria quando un blocco appunti entra in modalità di ibernazione). Il programma ottimizza questi file durante la sequenza di avvio del computer prima che vengano utilizzati.
Per eseguire PageDefrag, è sufficiente fare doppio clic sul file pagedfrg.exe. Il programma visualizza il nome di ciascun file che può elaborare per la deframmentazione (vedere la Figura 1). Il file di paging è il file paging.sys. Gli hive del Registro di sistema vengono visualizzati come file singoli per ogni hive, DEFAULT, SAM, SECURITY, SOFTWARE e SYSTEM. Anche i registri eventi vengono visualizzati come file singoli; ad esempio, Appevent.evt è il registro delle applicazioni, Secevent.evt è il registro di protezione e Sysevent.evt è il registro eventi di sistema. Infine, il file di ibernazione è Hiberfil.sys.
Figura 1 PageDefrag visualizza i nomi di ogni file che può elaborare
Figura 1 PageDefrag visualizza i nomi di ogni file che può elaborare
Accanto al nome di ogni file è presente una colonna Cluster, che illustra quanti cluster sul disco sono assegnati al file, e una colonna Frammenti, che indica quante parti del file frammentate, o non contigue, sono sparse nel disco. In base a questi dati, è possibile stabilire se è necessario o meno eseguire la deframmentazione dei file.
Sono disponibili due opzioni: è possibile deframmentare i file al successivo avvio o a ogni avvio. A meno che i file non siano utilizzati di frequente o che il computer non sia un server o un'altra casella che viene avviata di rado, è consigliabile eseguire la deframmentazione al successivo avvio. È anche possibile attivare un conteggio alla rovescia in modo da avere il tempo di annullare la deframmentazione subito dopo l'avvio del computer.
Al successivo avvio del computer, viene eseguito il comando chkdsk, successivamente entra in azione PageDefrag. I file già organizzati in cluster contigui vengono ignorati, mentre quelli suddivisi in frammenti vengono ottimizzati uno per volta. Il programma visualizza il nome di ciascun elemento deframmentato, indica se la deframmentazione è stata eseguita correttamente ed elenca il numero di cluster assegnati al file, prima e dopo la deframmentazione.
PageDefrag potrebbe non essere in grado di ottimizzare un file se il computer ha poco spazio disponibile su disco o se lo spazio libero è troppo frammentato. In questi casi, sarà necessario creare più spazio ed eseguire una deframmentazione in Windows per ottimizzare lo spazio libero e tentare nuovamente PageDefrag.
PageDefrag di solito effettua l'esecuzione rapidamente perché affronta soltanto un piccolo numero di file. Tuttavia, se i file sono molto frammentati, il completamento dell'operazione potrebbe richiedere un po' più di tempo, almeno la prima volta. Al termine di PageDefrag, Windows viene caricato normalmente. È possibile quindi aprire nuovamente il programma per verificare che ogni singolo file sia adesso un frammento solo.
È possibile eseguire PageDefrag in modo non interattivo tramite la riga di comando o attraverso uno script utilizzando le opzioni -e Defrag boot, -o Defrag once, -n Never Defrag e -t Set countdown per un numero specifico di secondi con il file pagedfrg.exe.
Per ulteriori informazioni e per scaricare una copia, visitare il sito microsoft.com/technet/sysinternals/FileAndDisk/PageDefrag.mspx.

Lance Whitney è un consulente IT, docente e technical writer. Ha trascorso molte ore a modificare le workstation e i server di Windows. In origine era un giornalista, ma circa 15 anni fa ha fatto un salto nel buio lanciandosi nel mondo dell'IT.


 The Cable Guy: Modelli host forti e vulnerabili
The Cable Guy
Modelli host forti e vulnerabili
Joseph Davies

La configurazione sempre più comune per gli host di rete è multihomed con più interfacce di rete. Un host multihomed fornisce una migliore connettività perché è in grado di collegarsi contemporaneamente a più reti, come intranet o Internet. Proprio perché possono essere connessi sia alla rete intranet che a
Internet, tuttavia, i servizi in esecuzione su host multihomed possono essere vulnerabili ad attacchi. Per evitarli e per avere un'idea di come viene elaborato il traffico IP per un host multihomed, di seguito viene riportata una rapida panoramica sui modelli di host multihomed forti e vulnerabili e quindi viene descritto come tali modelli sono supportati in Windows®.
RFC 1122 è la specifica che descrive i due modelli per un host multihomed che non funziona come router ma invia e riceve solamente traffico IP unicast. Questi modelli, noti come host forte e host vulnerabile, specificano se il traffico unicast inviato o ricevuto deve essere associato all'interfaccia di rete su cui il traffico viaggia. Determinano, inoltre, il modo in cui un host invia e riceve pacchetti e influisce sulla vulnerabilità dei servizi in esecuzione sull'host.
Sebbene RFC 1122 definisca questi modelli per IPv4, essi si applicano anche a IPv6. Esempio di un host multihomed per IPv6 è un computer che utilizza sia IPv4 che IPv6 che disponga di un adattatore di rete connesso a una rete intranet e un'interfaccia di tunneling IPv6.

Modello host vulnerabile
Nel modello host vulnerabile, un host IP (IPv4 o IPv6) può inviare pacchetti a un'interfaccia a cui non è assegnato l'indirizzo IP di origine del pacchetto inviato. Ciò è noto come processo di invio dell'host vulnerabile. Un host IP può anche ricevere pacchetti su un'interfaccia a cui non è assegnato l'indirizzo IP di destinazione del pacchetto ricevuto. Ciò è noto come processo di ricezione dell'host vulnerabile.
Quando si dispone di un host IP multihomed con più interfacce, l'attivazione del processo di ricezione dell'host vulnerabile sulle interfacce potrebbe rendere l'host vulnerabile ad attacchi multihome. Ad esempio, la Figura 1 mostra l'Host A connesso sia a Internet che a intranet. L'Host A dispone dell'indirizzo IPv4 pubblico 131.107.89.211 assegnato alla relativa interfaccia Internet e dell'indirizzo IPv4 privato 192.168.17.48 assegnato alla relativa interfaccia intranet.
Figura 1 Esempio di un computer multihomed
Figura 1 Esempio di un computer multihomed
Con il processo di invio dell'host vulnerabile attivato sia sull'interfaccia Internet che intranet, l'Host A può inviare pacchetti da 131.107.89.211 sulla relativa interfaccia Internet, pacchetti da 192.168.17.48 sulla relativa interfaccia Internet, pacchetti da 131.107.89.211 sulla relativa interfaccia intranet e pacchetti da 192.168.17.48 sulla relativa interfaccia intranet.
Con il processo di ricezione dell'host vulnerabile attivato, l'Host A può ricevere i seguenti tipi di pacchetti (supponendo che le regole del firewall dell'host consentano il traffico in entrata): pacchetti a 131.107.89.211 sulla relativa interfaccia Internet, pacchetti a 192.168.17.48 sulla relativa interfaccia Internet, pacchetti a 131.107.89.211 sulla relativa interfaccia intranet, pacchetti a 192.168.17.48 sulla relativa interfaccia intranet.
Quando si dispone del processo di ricezione dell'host vulnerabile attivato, un utente malintenzionato su Internet può inviare pacchetti all'interfaccia Internet dell'Host A per attaccare i servizi in esecuzione sull'Host A disponibili solo per gli host sulla rete intranet. Questo tipo di attacco può verificarsi se l'infrastruttura di Internet supporta l'inoltro di pacchetti destinati a 192.168.17.48 all'interfaccia Internet dell'Host A. È possibile evitarlo impostando le regole del firewall appropriate sull'interfaccia Internet dell'Host A. Anche facendo questo, tuttavia, i servizi in esecuzione sull'Host A disponibili per i client intranet possono essere a rischio.

Modello host forte
Nel modello host forte, i processi di ricezione e invio sono diversi. Con le operazioni di invio dell'host forte, l'host può inviare pacchetti a un'interfaccia solo se all'interfaccia è assegnato l'indirizzo IP di origine del pacchetto inviato. Con le operazioni di ricezione dell'host forte, l'host può ricevere pacchetti su un'interfaccia solo se all'interfaccia è assegnato l'indirizzo IP di destinazione del pacchetto ricevuto.
Con il processo di invio dell'host forte attivato sulle relative interfacce Internet e intranet, l'Host A nella Figura 1 può solo inviare pacchetti da 131.107.89.211 sulla relativa interfaccia Internet e pacchetti da 192.168.17.48 sulla relativa interfaccia intranet.
Con il processo di ricezione dell'host forte attivato, l'Host A può solo ricevere pacchetti a 131.107.89.211 sulla relativa interfaccia Internet e pacchetti a 192.168.17.48 sulla relativa interfaccia intranet.
Nella Figura 1, il modello di host forte per l'Host A lascia cadere tutti i pacchetti in entrata sull'interfaccia Internet indirizzati a 192.168.17.48 senza bisogno che l'utente configuri le regole del firewall, isolando efficacemente l'interfaccia intranet dell'Host A da Internet.
Quando si seleziona il modello di host forte, tenere presente che ciò potrebbe influire su alcuni tipi di connettività progettati per il processo dell'host vulnerabile. Ad esempio, alcune implementazioni di bilanciamento del carico potrebbero utilizzare il processo di ricezione dell'host vulnerabile per ricevere pacchetti su qualsiasi interfaccia e quindi indirizzarli all'interfaccia appropriata internamente. Anche un host che utilizza le operazioni di invio dell'host vulnerabile per inviare dati da qualsiasi indirizzo di origine su un'interfaccia corrispondente a una connessione veloce potrebbe essere interessato.

Invio e ricezione dell'host forte
Verrà ora illustrato il modo in cui si svolge il processo di invio e ricezione su un host generico per IPv4 o per IPv6 quando le operazioni di ricezione e invio dell'host forte vengono attivate o disattivate sulle singole interfacce.
Per i pacchetti inviati, l'IP verifica prima se è già stato specificato un indirizzo di origine. Se così non fosse, l'IP esegue una ricerca libera dell'indirizzo di destinazione del pacchetto nella tabella di routing. In una ricerca libera, vengono considerate tutte le route nella tabella di routing. In base alla route selezionata per la destinazione, l'IP determina l'interfaccia hop successiva (l'interfaccia utilizzata per posizionare il pacchetto a livello di collegamento) e l'indirizzo hop successivo. In base all'interfaccia hop successiva, l'IP utilizza il processo di selezione dell'indirizzo definito in RFC 3484 come necessario per determinare l'indirizzo di origine migliore. A questo punto, l'IP dispone di tutto ciò di cui necessita per inviare il pacchetto: gli indirizzi di origine e destinazione, l'interfaccia hop successiva e l'indirizzo hop successivo.
Se l'indirizzo di origine è stato specificato, l'interfaccia di origine è nota. All'interfaccia di origine viene assegnato l'indirizzo di origine. L'IP quindi determina se le operazioni di invio dell'host forte sono attivate sull'interfaccia di origine.
Se sono disattivate, l'IP esegue una ricerca libera dell'indirizzo di destinazione del pacchetto nella tabella di routing. In base alla migliore route corrispondente per la destinazione, l'IP determina l'interfaccia hop successiva e l'indirizzo hop successivo. L'IP dispone degli indirizzi di origine e destinazione, l'interfaccia hop successiva e l'indirizzo hop successivo. Si noti che con il processo di invio dell'host forte disattivato sull'interfaccia di origine, l'interfaccia hop successiva potrebbe non essere uguale all'interfaccia di origine.
Se le operazioni di invio dell'host forte sono attivate sull'interfaccia di origine, l'IP esegue una ricerca vincolata dell'indirizzo di destinazione del pacchetto nella tabella di routing. In una ricerca vincolata, vengono considerate solo le route con un'interfaccia hop successiva dell'interfaccia di origine. In base alla route selezionata per la destinazione, l'IP determina l'indirizzo hop successivo. L'IP dispone degli indirizzi di origine e destinazione, l'interfaccia hop successiva e l'indirizzo hop successivo. Si noti che con il processo di invio dell'host forte attivato sull'interfaccia di origine, l'interfaccia hop successiva è sempre uguale all'interfaccia di origine. Nella Figura 2 viene illustrato il processo host di invio IP generico.
Figura 2 Processo host di invio IP generico
Figura 2 Processo host di invio IP generico
Quando è stato specificato l'indirizzo di origine, la ricerca vincolata della route può selezionare una route con una metrica superiore tra più route nella tabella di routing che hanno una maggiore corrispondenza con la destinazione. Ad esempio, l'Host A nella Figura 1 dispone di due route predefinite, una diretta a Internet con una metrica di 10 e una diretta a intranet con una metrica di 20. Il processo dell'host forte è attivato su entrambe le interfacce LAN.
Se l'applicazione di invio sull'Host A non specifica un indirizzo di origine, il risultato della ricerca di route è la route predefinita con la metrica più bassa; l'Host A invia sempre il traffico all'esterno dell'interfaccia Internet con un indirizzo di origine di 131.107.89.211. Tuttavia, se l'applicazione di invio sull'Host A specifica un indirizzo di origine di 131.107.89.211, il risultato della ricerca è la route predefinita per l'interfaccia Internet; l'Host A invia il traffico all'esterno dell'interfaccia Internet. Se l'applicazione di invio sull'Host A specifica un indirizzo di origine di 192.168.17.48, la ricerca seleziona la route predefinita per l'interfaccia intranet; l'Host A invia il traffico all'esterno dell'interfaccia intranet. Con la ricerca di route vincolata, l'IP invia dati con un indirizzo di origine di 192.168.17.48 utilizzando la route predefinita con la metrica più alta.
Per il traffico ricevuto, l'IP innanzitutto determina se è destinato all'host. Se non lo fosse, l'IP elimina silenziosamente il pacchetto perché l'host non sta funzionando come router. L'IP quindi determina se le operazioni di ricezione dell'host forte sono attivate sull'interfaccia in entrata (l'interfaccia su cui è stato ricevuto il pacchetto). Se sono disattivate, elabora il pacchetto. Se sono attivate, determina se l'indirizzo di destinazione nel pacchetto è assegnato all'interfaccia in entrata. In questo caso, elabora il pacchetto. Altrimenti, elimina silenziosamente il pacchetto. Nella Figura 3 viene mostrato il processo host di ricezione generico.
Figura 3 Processo host di ricezione
Figura 3 Processo host di ricezione

Processo host forte e vulnerabile in Windows
Windows XP e Windows Server® 2003 utilizzano il modello di host vulnerabile per le operazioni di invio e ricezione per tutte le interfacce IPv4 e il modello di host forte per le operazioni di invio e ricezione per tutte le interfacce IPv6. Non è possibile configurare questo processo. Lo stack TCP/IP di ultima generazione di Windows Vista e Windows Server 2008 supporta le operazioni di invio e ricezione dell'host forte sia per IPv4 che per IPv6 per impostazione predefinita su tutte le interfacce eccetto l'interfaccia di tunneling Teredo per una trasmissione specifica dell'host Teredo. Nella Figura 4 vengono elencati i comandi che è possibile utilizzare per configurare il processo di invio e ricezione sia per IPv4 che per IPv6 su ogni singola interfaccia. Si noti che InterfaceNameOrIndex è il nome dell'interfaccia dalla cartella Connessioni di rete o l'indice della relativa interfaccia. È possibile ottenere l'indice di un'interfaccia dalla visualizzazione del comando:
Figure 4 Comandi per configurare il processo di invio e ricezione forte e vulnerabile (Close Figure 4)

• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
netsh interface ipv6 show interface
Processo host forte e vulnerabile e RFC 3484
Per fornire un metodo standardizzato di scelta degli indirizzi IPv6 e IPv4 di origine e destinazione con cui tentare le connessioni, RFC 3484 definisce due algoritmi. Il primo è un algoritmo di selezione dell'indirizzo di origine per scegliere l'indirizzo di origine migliore da utilizzare con un indirizzo di destinazione. L'altro è un algoritmo di selezione dell'indirizzo di destinazione per ordinare l'elenco dei possibili indirizzi di destinazione in base alla preferenza.
Il processo host forte e vulnerabile è in realtà la determinazione dell'elenco di possibili indirizzi di origine per un dato indirizzo di destinazione e riguarda anche l'elenco finale ordinato di indirizzi di destinazione. Per il processo di invio dell'host forte, l'elenco dei possibili indirizzi di origine consiste negli indirizzi unicast assegnati all'interfaccia di invio per la destinazione. Per il processo di invio dell'host vulnerabile, l'elenco dei candidati può contenere indirizzi assegnati a qualsiasi interfaccia che disponga delle operazioni di invio dell'host vulnerabile attivate. Per ulteriori informazioni sulla selezione dell'indirizzo di origine e destinazione, andare all'indirizzo microsoft.com/technet/community/columns/cableguy/cg0206.mspx.

Per impostazione predefinita, sia le operazioni di invio che di ricezione dell'host vulnerabile sono disattivate sia per IPv4 che per IPv6, per tutte le interfacce eccetto l'interfaccia di tunneling Teredo per una trasmissione specifica dell'host Teredo.
Per ulteriori informazioni su RFC 3484, vedere la sezione "Processo host forte e vulnerabile e RFC 3484".

Disattivazione delle route predefinite per le connessioni VPN di accesso remoto
Un client VPN (Virtual Private Network) di accesso remoto è un altro esempio di host multihomed. Sebbene possa disporre di un'unica interfaccia LAN connessa a Internet, quando un client VPN di accesso remoto completa una connessione VPN, significa che è multihomed. Dispone di due interfacce: l'interfaccia LAN e un'interfaccia basata su Point-to-Point Protocol (PPP) per la connessione VPN. Dispone anche di due indirizzi IPv4: un indirizzo IPv4 assegnato dal provider di servizi Internet per l'interfaccia LAN e un indirizzo IPv4 assegnato dal server VPN per l'interfaccia basata su PPP.
Per accertarsi che il client VPN invii traffico della route predefinita attraverso la connessione VPN alla rete intranet, Windows XP e Windows Server 2003 modificano la tabella di routing IPv4 aumentando la metrica della route esistente predefinita e aggiungendo una nuova route predefinita con una metrica inferiore che utilizza l'interfaccia PPP. Questo processo predefinito rende i percorsi su intranet accessibili e quasi tutti i percorsi su Internet non accessibili per la durata della connessione VPN. È possibile configurare un client VPN in modo che suddivida il tunneling per disporre dell'accesso simultaneo ai percorsi Internet e intranet non aggiungendo la route predefinita per la connessione VPN e aggiungendo route specifiche per le destinazioni intranet. Tuttavia, suddividendo il tunneling si corre il rischio che i client VPN possano indirizzare i pacchetti tra Internet e intranet. Per ulteriori informazioni, andare all'indirizzo microsoft.com/technet/community/columns/cableguy/cg1003.mspx.
Il processo predefinito del client VPN in Windows XP e Windows Server 2003 è stato progettato per il processo di invio dell'host vulnerabile. La ricerca di route utilizza sempre la route predefinita per la connessione VPN perché dispone della metrica inferiore. Tuttavia, quando si utilizza il processo di invio dell'host forte, la route predefinita utilizzata per il traffico inviato dipende dall'indirizzo IP di origine nel pacchetto. La ricerca di route del traffico dall'indirizzo IPv4 assegnato dall'ISP utilizzerà la route predefinita che utilizza l'interfaccia LAN, rendendo accessibili tutti i percorsi di Internet. La ricerca di route del traffico dall'indirizzo IPv4 assegnato dal server VPN utilizzerà la route predefinita che utilizza l'interfaccia PPP, rendendo accessibili tutti i percorsi di intranet. Pertanto, quando si utilizza il processo di invio dell'host forte, il client VPN dispone di una configurazione di tunneling suddiviso e di accesso simultaneo sia a Internet che a intranet, anche per le applicazioni che non dispongono dei privilegi di livello di amministratore per modificare direttamente la tabella di routing IPv4.
Per impedire che il processo di invio dell'host forte crei una configurazione di tunneling condiviso per impostazione predefinita, il client VPN in Windows Vista® e Windows Server 2008 disattiva automaticamente le route predefinite delle interfacce LAN una volta terminata la connessione VPN. Questo processo assicura che vi sia solo una route predefinita attiva nella tabella di routing che utilizza l'interfaccia PPP. Assicura inoltre che le applicazioni senza privilegi a livello di amministratore non possano eseguire il tunneling suddiviso.
Poiché il traffico proveniente dal computer client VPN deve avere origine dall'indirizzo IPv4 assegnato dal server VPN, questo processo fornisce un migliore isolamento di intranet da Internet. Una volta terminata la connessione VPN, le route predefinite disattivate vengono riattivate.
È possibile controllare questo processo con il comando:
netsh interface ipv4 set interface [InterfaceNameOrIndex]
ignoredefaultroutes=enabled|disabled

Joseph Daviesè un autore tecnico di Microsoft. Dal 1992 tiene corsi e scrive su argomenti legati alle reti Microsoft. Ha scritto cinque libri per Microsoft Press ed è autore della rubrica mensile Cable Guy di TechNet.


 Windows PowerShell: Protezione della shell
Windows PowerShell
Protezione della shell
Don Jones

Quando il team di Windows PowerShell si è ritrovato intorno a un tavolo per iniziare a creare una nuova shell e nell'aria vagheggiava la parola "script", per tutta Redmond si udivano sospiri di costernazione. Dopotutto, i precedenti sforzi di Microsoft con lo script amministrativo (mi riferisco a VBSCRIPT) non erano stati esattamente privi di problemi. Un modello
di esecuzione eccessivamente permissivo, combinato con la propensione della maggior parte degli utenti ad accedere come amministratori, ha aperto la strada al disastro.
"Sicuramente" chi ha preso parte al primo incontro su Windows PowerShell™ deve aver pensato "non ricadremo nello stesso errore!" E così è stato. Microsoft ha migliorato enormemente la sua reputazione in termini di protezione, fondamentalmente perché nel ciclo di sviluppo di un prodotto l'attenzione è stata focalizzata subito sulla protezione. Questa filosofia è molto evidente in Windows PowerShell.

Perché i miei script non verranno eseguiti?
Installare Windows PowerShell su un computer nuovo e fare doppio clic su un file .ps1: viene visualizzato il Blocco note, non Windows PowerShell. Ciò avviene perché l'estensione del nome del file ps1, ossia quella utilizzata per gli script di Windows PowerShell, non ha alcuna correlazione con la shell stessa. In altre parole, non è possibile fare doppio clic su uno script per eseguirlo. L'unico modo per eseguire uno script è aprire Windows PowerShell, immettere il tipo di script e premere Invio.
A dire il vero, non è sufficiente immettere semplicemente il nome dello script. Come si può vedere nella Figura 1, il file Demo1.ps1 esiste nella cartella corrente, eppure digitando demo1 e premendo Invio viene visualizzato un messaggio di errore: "Il termine "demo1" non è riconosciuto come un cmdlet, una funzione, un programma eseguibile o un file script". Perché? Dopotutto, il file si trova proprio lì.
Figura 1 Per evitare il dirottamento del comando, Windows PowerShell richiede allo script un percorso
Figura 1 Per evitare il dirottamento del comando, Windows PowerShell richiede allo script un percorso
Questo è un altro aspetto del modello di protezione di Windows PowerShell. Spesso, gli utenti malintenzionati usano in altre shell il trucchetto di creare uno script con lo stesso nome del file come un comando integrato. Così, ad esempio, se si desidera che un utente esegua lo script, si potrebbe denominare lo script Dir.ps1 e inserirlo in una cartella. Se l'utente digita Dir e preme Invio, è possibile che venga eseguito lo script e non il comando Dir previsto dall'utente. Questa tecnica è definita dirottamento del comando. In Windows PowerShell, è necessario fornire sempre un percorso a uno script di questo tipo, proteggendo piuttosto bene Windows PowerShell dal dirottamento del comando.
L'esecuzione di demo1 non funziona, perché non è stato specificato alcun percorso, mentre ./demo1 funziona. Questo è il motivo per cui adesso è stato specificato un percorso, ossia l'attuale cartella. È molto meno probabile che quella riga di comando venga confusa con un comando integrato poiché non è necessario immettere alcun tipo di percorso se si fa riferimento a un comando integrato. Pertanto, la richiesta di un percorso consente a Windows PowerShell di evitare il dirottamento del comando e l'eventuale confusione su cosa potrebbe accadere se si preme Invio.

Un criterio per l'esecuzione degli script
A questo punto, si ha una copia di Windows PowerShell installata di recente, si utilizza la sintassi appropriata e si tenta di eseguire uno script. Con grande sorpresa, si viene accolti da un altro messaggio di errore che indica che Windows PowerShell non può eseguire gli script. Cosa??? Benvenuti in Criteri di esecuzione della shell.
Tramite l'esecuzione di Get-ExecutionPolicy nella shell, è possibile scoprire cosa si intende per Criteri di esecuzione. Per impostazione predefinita, è impostato su Restricted, il che indica semplicemente che gli script non verranno eseguiti mai, per nessuno. Per impostazione predefinita, Windows PowerShell può essere utilizzato solo in modalità interattiva e non per eseguire gli script. È possibile utilizzare il cmdlet Set-ExecutionPolicy per scegliere una delle quattro possibili impostazioni di Criteri di esecuzione:
  • Restricted, l'impostazione predefinita, non consente l'esecuzione di nessuno script.
  • AllSigned esegue soltanto script attendibili (ulteriori informazioni su questo argomento verranno fornite più avanti).
  • RemoteSigned esegue gli script locali senza la necessità che siano attendibili. È necessario, tuttavia, che gli script scaricati da Internet siano attendibili prima di essere eseguiti.
  • Unrestricted consente l'esecuzione di tutti gli script, persino di quelli non attendibili.
Francamente, AllSigned è l'impostazione minima che dovrebbe essere eseguita in un computer di produzione. RemoteSigned è utile negli ambienti di sviluppo e di test, ma non è necessario per l'utente comune. Invece non c'è alcun bisogno di Unrestricted. Non dovrebbe importare se in alcune versioni future di Windows PowerShell venisse omessa questa impostazione eccessivamente permissiva.

È una questione di attendibilità
Il computer viene preconfigurato per considerare attendibili determinate Autorità di certificazione (CA) principali, ossia server che emettono certificati digitali. Nella Figura 2 viene illustrata l'applicazione del pannello di controllo Opzioni Internet, in cui vengono elencate le principali CA attendibili. In Windows Vista® questo elenco è piuttosto breve e contiene soltanto alcune delle principali CA commerciali. Al contrario, l'elenco predefinito in Windows® XP è ampio e contiene molte CA principali mai incontrate prima. Se una CA principale si trova in questo elenco, significa fondamentalmente che la società che utilizza la CA principale è considerata attendibile ed è in grado di verificare l'identità di qualcuno prima di emettere un certificato digitale.
Quando si ottiene un certificato digitale Class III, l'autorità di certificazione (che potrebbe essere una CA commerciale o una CA privata presente all'interno dell'organizzazione) deve verificarne l'identità. Questo certificato digitale è simile a un passaporto o una carta d'identità elettronica. Prima di fornire un ID, ad esempio Don Jones, la CA effettua alcune operazioni per verificare che l'utente in questione sia realmente Don Jones. Quando si utilizza un certificato per firmare digitalmente uno script di Windows PowerShell, operazione eseguibile tramite il cmdlet Set-AuthenticodeSignature, la propria firma viene apposta allo script. Di certo, se si è in grado di ottenere un certificato falso contenente il nome di qualcun altro, è possibile apporre quella firma allo script. Questo è il motivo per cui è così importante che nell'elenco riportato nella Figura 2, siano presenti solo autorità di certificazione attendibili.
Figura 2 Principali autorità di certificazione attendibili in Windows Vista
Figura 2 Principali autorità di certificazione attendibili in Windows Vista
Quando Windows PowerShell verifica se uno script è attendibile (operazione eseguita con le impostazioni dei Criteri di esecuzione AllSigned e RemoteSigned) pone tre domande:
  • Questo script è firmato? Se non lo fosse, lo script non è attendibile.
  • La firma è intatta? In altre parole, lo script è cambiato da quando è stato firmato? Se la firma non è intatta, lo script non è attendibile.
  • La firma è stata creata utilizzando un certificato digitale emesso da una autorità di certificazione principale attendibile? Se non lo fosse, lo script non è attendibile.
CMDLET del mese: Set-AuthenticodeSignature
Set-AuthenticodeSignature è la chiave per firmare digitalmente gli script di Windows PowerShell che consente l'uso dei criteri di esecuzione più sicuri della shell, AllSigned. Per utilizzare questo cmdlet, si parte con un altro, Get-ChildItem, che recupera un certificato di firma del codice installato:
$cert = Get-ChildItem –Path cert:\CurrentUser\my –codeSigningCert
È necessario sostituire quel percorso di file con uno che indirizzi a un certificato installato poiché ciascun certificato installato viene reso accessibile tramite l'unità cert:. Una volta caricato il certificato, per firmare uno script è necessario procedere come segue:
Set-AuthenticodeSignature MyScript.ps1
–cert $cert
Naturalmente fornire il percorso completo al file di script ps1. La shell aggiungerà un blocco di firma al file.

In che modo l'attendibilità migliora la protezione? Di certo, un utente malintenzionato potrebbe scrivere potenzialmente uno script dannoso, firmarlo e convincere qualcuno nel suo ambiente a eseguirlo. Poiché lo script è stato firmato, verrà eseguito. Ma poiché è stato firmato, è possibile utilizzare la firma per trovare l'identità dell'autore e prendere contromisure appropriate (ad esempio chiamare le autorità competenti). Una persona dovrebbe essere estremamente stupida, tuttavia, per creare uno script dannoso e inserirvi il proprio vero nome.
Certo, se un utente malintenzionato fosse in grado di ottenere un certificato con l'identità di qualcun altro, ossia da una CA che non è stata sottoposta a un valido processo di verifica dell'identità, non sarebbe possibile utilizzare la firma per identificare il vero colpevole. Questo è il motivo per cui le principali autorità di certificazione devono disporre di un processo di verifica dell'identità appropriato.
Se si utilizza l'impostazione AllSigned di Criteri di esecuzione, è necessario firmare digitalmente anche ogni script prodotto prima che venga eseguito. Il cmdlet Set-AuthenticodeSignature è abbastanza facile da utilizzare, ma potrebbe creare non pochi problemi. Ecco dove il software di terzi potrebbe risultare utile. Si consiglia di selezionare un editor di script o un ambiente di sviluppo visivo che firmerà automaticamente gli script utilizzando il certificato specificato. In questo modo, l'uso delle firme è trasparente e non richiede alcuno sforzo aggiuntivo. Per suggerimenti su editor e ambienti di sviluppo che supportano questa operazione, visitare alcuni forum in linea sugli script (ad esempio il sito SscriptingAnswers.com) e inviare un messaggio in cui si chiede cosa utilizzano gli altri sostenitori di Windows PowerShell.
Una volta ottenuto un certificato, è possibile anche eseguire la singola riga di codice indicata di seguito per firmare tutti gli script in una posizione particolare:
Get-Childitem *.ps1 | %{Set-AuthenticodeSignature $_.fullname $cert}

Protetto centralmente
I Criteri di esecuzione di Windows PowerShell possono, ovviamente, essere configurati singolarmente su ciascun computer. Ma non è un'ottima soluzione per gli ambienti aziendali. È, invece, possibile utilizzare Criteri di gruppo. È possibile scaricare i modelli amministrativi di Windows PowerShell dal sito go.microsoft.com/fwlink/?LinkId=93675. Inserire semplicemente il file in un oggetto Criteri di gruppo (GPO, Group Policy Object) che interessa l'intero dominio e impostarlo su Restricted. In questo modo, a prescindere da dove venga installato Windows PowerShell, è possibile accertarsi che gli script non verranno eseguiti. In seguito, è possibile applicare un'impostazione più permissiva (AllSigned) solo sui computer in cui sono in esecuzione gli script (come la propria workstation).

Credenziali alternative
A differenza dei precedenti linguaggi di scripting amministrativi per Windows, Windows PowerShell è in grado di utilizzare qualsiasi credenziale alternativa in maniera sicura. Ad esempio, il cmdlet Get-WMIObject dispone di un parametro, -credential, che consente di specificare una credenziale alternativa per le connessioni WMI remote. Il parametro accetterà un nome utente ma non una password, impedendo così di specificare a livello di codice password sensibili in un chiaro script di testo. Al contrario, quando si fornisce il nome utente, Windows PowerShell richiede la password tramite una finestra di dialogo. Se si progetta di utilizzare nuovamente una credenziale alternativa, è possibile memorizzare le informazioni di autenticazione utilizzando il cmdlet Get-Credential:
$cred = Get-Credential DOMAIN\USER
verrà richiesta immediatamente la password e la credenziale finale verrà memorizzata nella variabile $cred. È possibile poi passare tale variabile al parametro –credential più spesso del necessario. È persino possibile utilizzare i cmdlet ConvertTo-SecureString e ConvertFrom-SecureString per convertire la credenziale in una stringa crittografata o convertire nuovamente una stringa precedentemente crittografata in una credenziale.
Il problema è che la chiave di crittografia finisce con l'essere memorizzata in uno script di testo normale, il che compromette completamente la protezione. Dunque, invece di procedere in questo modo è possibile aggiungere una chiamata Get-Credential al profilo di Windows PowerShell. Successivamente, quando si esegue Windows PowerShell, viene richiesto immediatamente di inserire un nome utente e una password, entrambi memorizzati in una variabile denominata $cred. In questo modo, si dispone sempre di una variabile $cred nella shell che rappresenta un account amministratore di dominio. Poiché la credenziale viene ricreata ogni volta che si apre la shell, non è necessario memorizzarla.

Protetto per impostazione predefinita
Per impostazione predefinita, Windows PowerShell viene installato e configurato con le impostazioni più sicure sviluppate per una shell amministrativa che supporta lo scripting. A meno che tali impostazioni non vengano modificate, Windows PowerShell rimarrà protetto. In altre parole, tutto ciò che riduce la protezione in Windows PowerShell è il risultato delle proprie decisioni e azioni. Pertanto, prima di modificare qualsiasi impostazione predefinita, mediante la riconfigurazione delle associazioni di estensione del file, la modifica dei Criteri di esecuzione e così via, accertarsi di aver compreso quali possono essere le conseguenze delle proprie azioni e assumersi la responsabilità delle modifiche apportate.

Don Jones è il guru degli script di SAPIEN Technologies e istruttore per ScriptingTraining.com. È possibile contattare Don tramite il suo sito Web, ScriptingAnswers com.


 Hey, Scripting Guy!: &#200; possibile salvare questa relazione?
Hey, Scripting Guy!
È possibile salvare questa relazione?
The Microsoft Scripting Guys
Scarica il codice per questo articolo: HeyScriptingGuy2007_09.exe (150KB)

Le relazioni contano. Ma come fanno gli Scripting Guy, più di tutti, a saperlo? Bene, da un lato, guardiamo molta TV e la TV ripete sempre che le relazioni contano.
E non sto parlando solo delle soap opera o dei telefilm settimanali. Ad esempio, ricordo una pubblicità di una compagnia che concedeva prestiti a breve termine offrendo aiuto agli ascoltatori per sostenere la loro attività. Mi sono chiesto se lo facevano perché disposti a prestare soldi a chi probabilmente non avrebbe potuto mai ottenere un prestito. Ma la risposta è no. Forse lo facevano perché guadagnavano un interesse del 900 percento annuo sul prestito? No di certo. Semplicemente questa società era interessata a stabilire una relazione con le persone. D'altronde il suo motto era: "Le relazioni contano".
Nota: certo, lo sappiamo e non c'è niente di cui vergognarsi. Dopotutto, solo le persone fredde e insensibili non si sentirebbero angosciate al pensiero dei vincoli profondi e duraturi che li legano alla società di prestito in questione.
Naturalmente, sappiamo a cosa stai pensando: "Perbacco, se le relazioni contano per le società di prestito, dovrebbero contare ancor di più per le persone che scrivono script che interagiscono con i database". E il punto è che le relazioni devono contare per le persone che scrivono script che interagiscono con i database. Sfortunatamente, però, questi autori di script non sempre realizzano l'importanza delle relazioni. Ma va bene, nell'articolo di questo mese metteremo tutti in riga.
Sappiamo che molti amministratori di sistema utilizzano spesso i database solo per controllare il proprio inventario hardware. Il problema è che molti di questi database sono configurati non proprio in modo ottimale. Ad esempio, supponiamo che sia necessario un database per tenere traccia delle unità disco collegate ai propri computer. Se la progettazione del database non prevede un background, è probabile che verrà creato un database a una tabella, come illustrato nella Figura 1.
Figura 1 Database a una tabella
Figura 1 Database a una tabella
Come è possibile vedere, è tutto molto semplice: abbiamo un campo in cui inserire il nome del computer e un paio di campi con la scelte Sì/No da utilizzare per indicare se un computer ha un'unità C e un'unità D. E questo è quanto: conciso, chiaro e mirato.
Dunque, cosa c'è che non va in questi database? Bene, in realtà, quasi tutto. Se con certezza si può affermare che i propri computer non abbiano più di due unità disco, tutto funzionerà (o quasi). Al contrario, cosa accade se un computer contiene tre unità disco? In questo caso, sarà necessario aggiungere un altro campo per tenere traccia dell'unità E. Perfetto, ma cosa succede se un computer utilizza undici unità disco? E se si desidera tenere traccia delle proprietà di tutte le unità? Ad esempio, supponiamo che si desideri tenere traccia delle dimensioni totali di ciascuna unità. In questo caso, sarà necessario un campo Dimensioni_Unità_C, un campo Dimensioni_Unità_D, un campo Dimensioni_Unità_E e così via. E, Dio ce ne guardi, si potrebbe anche voler controllare lo spazio disponibile sui diversi dischi, il tipo di connettore disco, se le quote disco sono state attivate sulle singole unità e via dicendo.
Ecco una regola empirica da tenere a mente: ogni volta che un'entità ha più di un "qualcosa" (ad esempio un computer può avere più di un'unità disco), questo progetto "file flat" (a una tabella) non è appropriato. È vero, nel caso delle unità disco è possibile pensare di cavarsela. Dopotutto, si utilizza semplicemente un numero finito di unità collegate a un computer. Ma supponiamo si desideri sottoporre a query il proprio database e che venga restituito un elenco di tutte le unità disco per un totale di almeno 100 gigabyte. Come si dovrebbe procedere? Bene, è necessario dapprima cercare le unità di 100 GB nel campo Dimensioni_Unità_C, poi nel campo Dimensioni_Unità_D, quindi nel campo Dimensioni_Unità_E e così all'infinito... Un approccio non molto pratico o utile, direi. Ma qual è l'alternativa? Cosa resta se non è possibile utilizzare un database "file flat"?
È facile: un database relazionale. I database relazionali sono ideati, tra le altre cose, per gestire le relazioni uno-a-molti (ad esempio, un computer che può avere diverse unità disco). E, prevedendo la domanda, posso anticipare che non è necessario acquistare niente di nuovo per utilizzare un database relazionale. Se si utilizza un database di qualsiasi tipo, (Microsoft® Access™, SQL Server™, Oracle e così via), ciò che sorprende è che si dispone già di un database relazionale. Non è necessario acquistare niente, basta solo sapere due cose: 1) come configurare una relazione tra due tabelle nel database e 2) come scrivere uno script che possa sfruttare questa relazione.
Nota: secondo quanto propinato in TV, non si dovrebbe mai tentare di sfruttare una relazione. Ma stiamo parlando di altro.
Poiché questa rubrica non si chiama Hey, Database Design Guy!, non ci occuperemo qui della progettazione dei database. Al contrario, illustreremo un database relazionale molto semplice che ci consentirà di spiegare come scrivere query relazionali. Nel database in questione abbiamo due tabelle. La prima viene denominata Computers e presenta due campi: ComputerName e SerialNumber. Nel campo ComputerName è possibile inserire il nome del computer, mentre nel campo SerialNumber verrà inserito...indovina? Esatto! Il numero di serie.
Poi, dove inseriremo le informazioni sulla nostra unità disco? Nella seconda tabella, denominata DiskDrives. Questa tabella contiene tre campi molto chiari: SerialNumber, DriveLetter e DriveSize.
Il campo principale qui è SerialNumber. Se questo nome suona familiare, bene, è normale: abbiamo lo stesso campo nella tabella Computers. E non si tratta di un caso o di una coincidenza. Per stabilire una relazione tra queste due tabelle è necessario che uno stesso campo venga visualizzato in entrambe le tabelle. Solo così è possibile identificare a quale computer appartengono le singole unità disco.
Perché abbiamo collegato le due tabelle utilizzando il numero di serie invece, ad esempio, del nome computer? C'è un motivo valido: i nomi computer possono cambiare (come capita spesso), mentre i numeri di serie in genere non vengono modificati.
Ma basta parlare. Diamo un'occhiata alla Figura 2 in cui viene illustrato uno script in grado di eseguire ricerche in queste due tabelle e di recuperare un elenco delle unità disco che appartengono a ciascun computer. Nella Figura 3 viene illustrato il tipo di dati restituiti dallo script.
Figure 3 Risultati della ricerca (Close Figure 3)
atl-ws-01
C:

atl-ws-01
D:

atl-ws-01
E:

atl-ws-02
C:

atl-ws-02
D:
Figure 2 Ricerca nelle tabelle (Close Figure 2)
Const adOpenStatic = 3
Const adLockOptimistic = 3

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")

objConnection.Open _
 "Provider = Microsoft.Jet.OLEDB.4.0; " & _
 "Data Source = c:\scripts\test.mdb"

objRecordSet.Open "SELECT Computers.*, DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON Computers.SerialNumber = DiskDrives.SerialNumber " & _
 "ORDER BY Computers.ComputerName, DiskDrives.Drive", objConnection, adOpenStatic, _
  adLockOptimistic

objRecordSet.MoveFirst

Do Until objRecordset.EOF
 Wscript.Echo objRecordset.Fields.Item("ComputerName")
 Wscript.Echo objRecordset.Fields.Item("Drive")
 Wscript.Echo
 objRecordset.MoveNext
Loop

objRecordSet.Close
objConnection.Close
Nell'articolo di questo mese non ci occuperemo dei principi di base della connessione e dell'utilizzo dei database. Se non si ha esperienza con la creazione degli script di database, è possibile consultare il Webcast degli Scripting Guy "Creazione degli script di database per gli amministratori di sistema" (go.microsoft.com/fwlink/?LinkId=22089). Tutto ciò che diremo è che siamo collegati a un database Access (C:\Scripts\Test.mdb) e che stiamo utilizzando le tabelle relazionali denominate Computers e DiskDrives. E questo dovrebbe risultare abbastanza evidente dallo script.
Bene, un'altra cosa che diremo è che sarà necessario apportare una piccola modifica per fare tutto ciò con Access 2007: è importante che il provider venga modificato da Microsoft.Jet.OLEDB.4.0 a Microsoft.ACE.OLEDB.12.0 nel seguente modo:
objConnection.Open _
 "Provider = Microsoft.ACE.OLEDB.12.0; " & _
 "Data Source = c:\scripts\test.accdb"
Tutto qui. Quello su cui ci soffermeremo, invece, è la query SQL in grado di recuperare i dati dalle nostre due tabelle:
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Sembra difficile? Forse un poco. Dunque vediamo se riusciamo a rendere il tutto un po' più semplice.
La prima parte della query è in realtà abbastanza facile. Vogliamo selezionare tutti i campi in entrambe le tabelle: Computers e DiskDrives. Da qui, la parte di SQL:
SELECT Computers.*, DiskDrives.*
Non è poi così difficile. L'asterisco, inutile a dirsi, è semplicemente un carattere jolly che significa "tutto".
Se in passato sono state scritte query SQL (o query Windows® Management Instrumentation, o WMI, che utilizzano un sottoinsieme del linguaggio di query SQL), si conosce già la routine: una volta specificati gli elementi da selezionare, è necessario specificare la posizione dalla quale si desidera farlo. Ecco il successivo tassello del nostro puzzle:
FROM Computers INNER JOIN DiskDrives ON Computers.SerialNumber = DiskDrives.SerialNumber
Non farti scoraggiare. È vero, è più complicato rispetto a una tipica istruzione FROM, ma per un buon motivo. Dopotutto, in una query SQL tipica vengono semplicemente selezionati i dati da una tabella, mentre questa volta stiamo selezionando i dati da due tabelle contemporaneamente.
Esaminiamo adesso più da vicino la sintassi e il relativo funzionamento. Come è possibile vedere, stiamo chiedendo allo script di selezionare i dati dalla tabella Computers e dalla tabella DiskDrives. Si noti, tuttavia, che non utilizziamo il termine "and", ma l'espressione INNER JOIN che definisce il tipo di relazione e, a sua volta, descrive il modo in cui le informazioni provenienti da due diverse tabelle verranno unite in un unico recordset. Sì, esistono altri tipi di join, ma discuteremo di questi ultimi più avanti.
Come abbiamo lasciato intuire, siamo noi a dover specificare il tipo di relazione esistente tra le due tabelle oltre a specificare esattamente come queste due tabelle sono correlate. Ecco quanto fa per noi questa parte di codice:
ON Computers.SerialNumber = DiskDrives.SerialNumber
Si tratta di definire il modo in cui andiamo a unire le nostre tabelle. I record verranno raggruppati ogni volta che quanto inserito nel campo SerialNumber della tabella Computers corrisponde a quanto inserito nel campo SerialNumber della tabella DiskDrives. Cosa accadrebbe se avessimo utilizzato un campo diverso (ad esempio ComputerName) come campo per il join? Beh, il nostro codice sarebbe stato simile al seguente:
ON Computers.ComputerName = DiskDrives.ComputerName
Nel caso lo si desideri sapere, no, i due campi non devono avere lo stesso nome, devono contenere solo gli stessi dati. L'impiego di uno stesso nome semplifica l'identificazione del campo relazionale. C'è solo un piccolo problema da considerare: se utilizziamo lo stesso nome per i due campi, è necessario utilizzare sempre la sintassi Table.Name.Field.Name quando ci riferiamo a uno dei due campi, il che vuol dire utilizzare un codice simile al seguente: Wscript.Echo obj- Recordset.Fields.Item("Computers.SerialNumber").
Questo è tutto ciò di cui abbiamo bisogno. Il resto della query ordina i dati, prima in base al nome computer e poi all'unità:
ORDER BY ComputerName, Drive
Visto, non è stato poi così difficile, vero? Dobbiamo adesso fare una piccola pausa e parlare dei join. Perché abbiamo utilizzato un inner join nella nostra query? La risposta è semplice. Un inner join restituisce solo record con valori corrispondenti in ciascuna tabella. In altre parole, supponiamo di avere il numero di serie 121989. Se questo numero di serie viene visualizzato in entrambe le tabelle, Computers e DiskDrives, verranno restituiti i record corrispondenti. Naturalmente, il numero di serie non può essere visualizzato ovunque, ma solo nel campo SerialNumber. Tutto chiaro? Bene.
Adesso, supponiamo di avere un computer con il numero di serie 121989 e che nessuna unità disco abbia lo stesso numero di serie. In questo caso, non verranno restituiti dati per il computer con il numero di serie 121989 perché un inner join restituisce informazioni solo se un record presenta valori corrispondenti in ciascuna delle tabelle unite.
In altre parole, una query di inner join restituisce tutti i computer che hanno dischi rigidi e non i computer che ne sono sprovvisti o i dischi rigidi non installati su un computer. Perfetto, è proprio quello che vogliamo. E se volessimo un elenco di computer che non hanno dischi rigidi o dischi rigidi non installati su computer? Cosa accadrebbe?
Ecco a cosa serve l'outer join. Oh, ecco a cosa serve l'outer join! Per ora, ci limitiamo a dire che esistono solo due tipi di outer join: left e right. Nel nostro database abbiamo due tabelle: Computers (considerata la tabella di sinistra in quanto tabella principale) e DiskDrives (considerata la tabella di destra perché non è la tabella principale). Supponiamo di volere che il recordset restituito includa tutti i computer, anche quelli sprovvisti di unità disco installate. In questo caso, è necessario utilizzare la sintassi LEFT OUTER JOIN e una query simile alla seguente:
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "LEFT OUTER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Come forse è possibile immaginare, un left outer join restituisce tutti i record nella tabella di sinistra, anche se non esistono record corrispondenti nella tabella di destra. A questo punto, vengono restituiti tutti i computer, ma solo i record della tabella di destra (unità disco) associati a un computer.
In alternativa, potremmo desiderare un elenco di tutte le unità disco, incluse quelle non installate in un computer. Poiché DiskDrives è la tabella di destra nella relazione, è necessario utilizzare la sintassi RIGHT OUTER JOIN nel seguente modo:
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "RIGHT OUTER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Adesso che ci pensiamo, se DiskDrives è la tabella di destra nella relazione, Computers deve essere di diritto la tabella "compagna" della relazione e non la tabella di sinistra. Come appreso dagli Scripting Guy dopo una dolorosa esperienza, la tabella "compagna" non è mai l'entità di destra della relazione.
Con il right outer join otteniamo tutti i record nella tabella di destra (tutte le unità disco), ma solo i computer (record nella tabella di sinistra) associati a un'unità disco.
Quanto appena detto potrebbe non essere chiarissimo al momento, ma pian piano lo diventerà. Per ottenere un database con il quale esercitarsi, visitare il sito microsoft.com/technet/scriptcenter/resources/tnmag/archive.mspx dove ne è disponibile un campione.
È importante ricordare che ogni volta che si utilizza un outer join, è necessario, almeno, eseguire l'istruzione On Error Resume Next nella prima riga dello script. Perché? Supponiamo di eseguire un left outer join. In questo caso è possibile che vengano restituiti alcuni computer che non dispongono di dischi rigidi installati. Bene (dopo tutto, è proprio quello che vogliamo), almeno finché non ci imbattiamo in questa riga di codice che indica la lettera dell'unità:
Wscript.Echo objRecordset.Fields.Item("Drive")
Poiché per questo computer non esiste un campo Drive, lo script verrà arrestato in modo anomalo:
C:\Scripts\database.vbs(22, 9) Microsoft VBScript runtime error: Type mismatch
Se implementiamo On Error Resume Next, tuttavia, è possibile che lo script ignori che il computer non presenta unità disco e continui per la sua strada. In caso contrario, è possibile utilizzare un codice simile per verificare il valore del campo Drive e comportarsi di conseguenza:
If IsNull(objRecordset.Fields.Item("Drive")) _Then
    Wscript.Echo "No disk drives installed."
Else
    Wscript.Echo _
      objRecordset.Fields.Item("Drive")
End If
Con questo codice è possibile controllare che venga restituito un valore Null invece di una lettera di unità. In questo caso, riceveremo il messaggio indicante che nessuna unità disco è installata. Se non riceviamo un valore Null, avremo semplicemente il valore del campo Drive. Il risultato netto è l'output, come illustrato nella Figura 4.
Figure 4 Visualizzazione dei risultati appropriati (Close Figure 4)
atl-ws-01
C:

atl-ws-01
D:

atl-ws-02
C:

atl-ws-02
D:

alt-ws-03
No disk drives installed.
Senza eccessivi approfondimenti, diamo un'occhiata a qualche altra query. Ad esempio, ecco una query di inner join che restituisce un elenco di computer con le relative unità disco installate, ammesso che queste unità disco siano superiori a 50 gigabyte (stiamo immaginando che le dimensioni delle unità siano misurate in gigabyte):
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "WHERE DriveSize > 50 " & _
 "ORDER BY Computers.ComputerName, " & _
 "DiskDrives.Drive", objConnection, _
 adOpenStatic, adLockOptimistic
Come risulta chiaro, è bastato aggiungere una clausola standard WHERE alla query originale:
WHERE DriveSize > 50
E se avessimo voluto solo ricevere informazioni sull'unità E dei computer? Nessun problema, avremmo anche qui dovuto solo aggiungere la clausola WHERE appropriata:
WHERE Drive = 'E:'
Di seguito, invece, una query leggermente più complessa che restituisce un insieme di computer senza unità disco installate:
objRecordSet.Open _
 "SELECT Computers.ComputerName, " & _
 "DiskDrives.Drive " & _
 "FROM Computers LEFT JOIN DiskDrives " & _
 "ON Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "GROUP BY Computers.ComputerName, " & _
 "DiskDrives.Drive " & _
 "HAVING (DiskDrives.Drive) Is Null " & _
 "ORDER BY Computers.ComputerName", _
 objConnection, adOpenStatic, adLockOptimistic
Come detto in precedenza, questa query è un po' più complicata e poiché lo spazio a nostra disposizione è quasi terminato, non ne spiegheremo il funzionamento. Ma funziona e questa è la cosa che più conta.
Beh, forse la seconda cosa che più conta, perché come abbiamo evidenziato più volte, ciò che conta veramente sono le relazioni. Il che non vuol dire che le relazioni non possano finire. Come disse Woody Allen al termine del film "Io e Annie": "Una relazione, io penso, è come uno squalo. Cioè deve costantemente muoversi oppure muore. Ed io penso che quello che abbiamo nelle nostre mani sia uno squalo morto". Ah, se solo Woody avesse saputo qualcosa in più sugli inner join e gli outer join. Con queste tecniche di query, sono garantite ottime relazioni!

The Microsoft Scripting Guys lavorano o, per meglio dire, sono stipendiati da Microsoft. Quando non si dedicano al baseball (o ad altre attività) come giocatori, allenatori o semplici spettatori, gestiscono il TechNet Script Center. Consultare la pagina www.scriptingguys.com.


 Domande e risposte su Exchange: Installazione, inserimento dei messaggi nel journal, opzioni di archiviazione e altro
Domande e risposte su Exchange
Installazione, inserimento dei messaggi nel journal, opzioni di archiviazione e altro
KC Lemson and Nino Bilic

D Devo eseguire l'installazione di Exchange Server 2007 e ho l'esigenza di sapere se è possibile ignorare il controllo prerequisiti. Non desidero risolvere tutti i problemi segnalati dal controllo prerequisiti, ma completare semplicemente l'installazione.

R La risposta breve è no, non è possibile. Di fatto, è necessario risolvere tutti i problemi contrassegnati dal controllo prerequisiti se questi impediscono il proseguimento dell'installazione, altrimenti l'utilizzo a lungo termine Exchange ne risentirà negativamente.
Alcuni amministratori hanno tentato di modificare il file ExBPA.PreReqs.xml, che contiene l'elenco dei prerequisiti di installazione di Exchange 2007, e rimuovere i controlli che causano il blocco dell'installazione. Tuttavia, questo approccio non funziona perché il file XML contiene una firma digitale che verrà invalidata da qualsiasi modifica del contenuto.
Ciò serve per impedire la creazione di un'installazione che non funzionerà correttamente. Abbiamo verificato Exchange 2007 in ambienti diversi e abbiamo imparato che alcune configurazioni e impostazioni funzionano meglio di altre, mentre altre possono presentare veri e propri problemi. I prerequisiti sono stati predisposti per garantire le migliori probabilità di successo dell'installazione in base alle nostre esperienze e verifiche.
Se tramite il controllo prerequisiti viene rilevato un problema autentico di Exchange 2007 che blocca l'installazione nell'ambiente, è necessario sottoporre il caso al supporto di Exchange.

D Dove si trova il registro di installazione? Non riesco a trovarlo nella radice dell'unità C: .

R Tutti i registri di installazione ora sono memorizzati nella directory %SYSTEMDRIVE%\ExchangeSetupLogs, che nella maggior parte delle installazioni corrisponde a c: \ExchangeSetupLogs. In questa posizione sarà possibile trovare diversi file, due dei quali sono molto importanti:
ExchangeSetup.log Questo è il registro che contiene le informazioni sulle attività e i parametri che sono stati utilizzati al momento dell'installazione. Quando sono stati configurati i ruoli del server, in questo registro sono state registrate anche le informazioni relative alle attività svolte per configurare il server. Questa è anche la posizione da controllare per la maggior parte delle informazioni riguardanti l'installazione del server. L'installazione di Service Pack aggiungerà le proprie informazioni allo stesso file.
ExchangeSetup.msilog Questo file contiene informazioni sulla fase di decompressione dell'installazione. Quando Microsoft® Installer copia i file nelle relative destinazioni da una posizione temporanea, le informazioni vengono registrate in questo file. Pertanto, se si verifica un problema che potrebbe essere legato alla possibilità di copiare i file o di accedere ai file durante l'installazione, questo è il registro che può rivelarsi utile.

D So che il controllo prerequisiti è supportato da Exchange Server Best Practices Analyzer (BPA), quindi dove è possibile trovare il report dei prerequisiti?
R Se si desidera trovare un report che è stato creato da BPA durante un controllo prerequisiti, è possibile cercare nella cartella seguente:
%SYSTEMDRIVE%\Exchangesetuplogs\PreReqs
Il formato dei nomi file è standard:
ExBPA.<dateandtime>.data.xml
Se si tenta di scoprire che cosa stava cercando uno specifico controllo prerequisiti, individuare il file XML che contiene il messaggio di errore rilevato e appena sopra il messaggio si potrà vedere la definizione della regola verificata.
D Come è possibile leggere i registri di installazione? Quali sono le opzioni a disposizione?
R Per leggere i registri di installazione sono generalmente disponibili due metodi. È possibile eseguire Get-SetupLog dalla Exchange Management Shell oppure aprire semplicemente il file di registro di installazione in Blocco note o nell'editor di testo preferito.
Se si utilizza Get-SetupLog, di seguito è fornito un esempio degli eventuali avvisi o errori:
Get-SetupLog c:\exchangesetuplogs\exchangesetup.log –error
Per rendere più gradevole il risultato, è possibile procurarsi gli script Out-HTML.ps1 ed Out-IE.ps1, che sono disponibili nel pacchetto dimostrativo di Exchange 2007 PowerShell Scriptacular. Ulteriori informazioni sono disponibili sul nostro blog all'indirizzo msexchangeteam.com/archive/2006/12/27/431998.aspx.
Dopo averli ottenuti, inserire gli script nella cartella degli script di Exchange (per impostazione predefinita c: \programmi\microsoft\microsoft\exchange server\scripts) ed eseguire quanto segue:
Get-SetupLog –tree:$false –error:$false | Where { $_.status –eq "Error" } | select datetime, depth, description, status | Out-HTML | Out-IE
Questo aprirà una finestra del browser di facile consultazione con una visualizzazione HTML degli eventuali errori che si sono verificati durante l'installazione (vedere la Figura 1).
Figura 1 Out-HTML e Out-IE facilitano la lettura dei registri di installazione
Figura 1 Out-HTML e Out-IE facilitano la lettura dei registri di installazione
Se, invece, si decide di visualizzare exchangesetup.log mediante Blocco note, ecco alcuni suggerimenti:
  • Per trovare un inizio dell'esecuzione dell'installazione, cercare: [0] Starting Microsoft Exchange 2007 Setup.
  • Per trovare una fine dell'esecuzione di un'installazione, cercare: [0] End of Setup.
  • Le principali attività di installazione sono separate da: [0] **************.
  • Per cercare un account che ha eseguito l'installazione, cercare: [0] Logged on user.
  • Se si desidera visualizzare quale controller di dominio è stato utilizzato durante l'installazione, cercare: [0] Setup will use the domain controller.
In termini generali, quando si rivedono i registri d installazione mediante Blocco note, è consigliabile iniziare dalla fine del file e ritornare indietro per visualizzare rapidamente qual è stato il problema. Gli errori sono di solito tra le ultime informazioni che vengono registrate nel registro di installazione.

D È possibile utilizzare la messaggistica unificata di Exchange 2007 con il PBX?

R Probabilmente è possibile. Consultare microsoft.com/technet/prodtechnol/exchange/telephony-advisor.mspx per un elenco dei gateway VoIP e PBX supportati. Qualsiasi modifica all'elenco dei prodotti supportati verrà aggiunta a questa pagina.
D Dispongo di un client che utilizza Small Business Server 2003 con Exchange e la politica aziendale richiede che tutta la posta sia monitorata. Per eseguire il monitoraggio, desidero inviare una copia di tutta la posta in arrivo e in uscita all'account dell'amministratore. Come è possibile fare in modo che ciò accada?
R È necessaria la funzione di inserimento dei messaggi nel journal, che consente di conservare una copia di tutti i messaggi inviati a o da uno specifico database di cassetta postale in una cassetta postale di inserimento nel journal separata. Sono disponibili varie opzioni che consentono di configurare il livello di dettaglio delle copie inserite nel journal (ad esempio per rilevare tutti i destinatari Ccn) e uno strumento aggiuntivo che fornisce alcune funzionalità avanzate ed è disponibile per il download all'indirizzo go.microsoft.com/fwlink/?LinkId=93725. L'inserimento nel journal di Exchange 2003 è attivato a livello di database, quindi interessa ogni utente presente in tale database. Dopo avere creato la cassetta postale destinata ai messaggi da inserire nel journal, accedere alle proprietà dell'archivio delle cassette postali in Gestore di sistema di Exchange e selezionare la casella per archiviare i messaggi inviati a o ricevuti dalle cassette postali presenti in tale archivio. A seconda delle politiche aziendali, è anche possibile attivare il gestore delle cassette postali per ripulire automaticamente le copie di journal precedenti dalla cassetta postale del journal.
Exchange 2003 dispone di un'altra funzionalità simile all'inserimento nel journal, chiamata sink di archivio. A differenza dell'inserimento nel journal, che consente di salvare copie dei messaggi in un'altra cassetta postale in Exchange, l'archivio salva i messaggi in una cartella specificata sul disco rigido del server. Perché scegliere un metodo rispetto all'altro? L'inserimento nel journal è generalmente destinato a scenari di conformità normativa, mentre il sink di archivio può essere utile se, ad esempio, si desidera acquisire tutti i messaggi ricevuti e trasmessi in Internet.
Exchange 2007 semplifica notevolmente questi scenari ed è possibile gestire facilmente il journal in base a ogni singolo utente o a una lista di distribuzione. Se non si desidera che gli utenti sappiano che la loro posta viene inserita nel journal, è possibile nascondere la lista di distribuzione dall'Elenco indirizzi globale (notare che questo è diverso dall'appartenenza nascosta di una lista di distribuzione) o configurare un attributo personalizzato per gli utenti e creare quindi un gruppo di distribuzione basato su query, indicato anche come liste di distribuzione dinamiche (DDL), per includere tutti gli utenti con quell'attributo personalizzato. Se si desidera eseguire l'inserimento nel journal di tutta la posta dell'intera organizzazione utilizzando la stessa posizione, lasciare vuoto il campo del destinatario quando si crea la regola di inserimento nel journal. Notare anche che se si desidera utilizzare opzioni di inserimento nel journal diverse da quelle basate sui database in Exchange 2007, per gli utenti interessati sarà necessaria la licenza CAL (Client Access License) Enterprise. Ulteriori informazioni sono disponibili all'indirizzo microsoft.com/exchange/howtobuy/licensingFAQ.mspx. Se non si desidera la licenza CAL o altre funzionalità, è possibile continuare a utilizzare la funzionalità di inserimento nel journal sui database di Exchange 2003. Infine, è consigliabile consultare l'articolo di David Strome nel numero di dicembre 2006 di TechNet Magazine intitolato "Inserimento nel journal più efficace con Exchange 2007" all'indirizzo technetmagazine.com/issues/2006/12/journaling.

D Tutti i miei utenti utilizzano Microsoft Office 2003 e al momento non è previsto il passaggio al sistema Office 2007 fino all'aggiornamento dell'hardware programmato per il 2008. Da quello che ho letto, tuttavia, temo che questo ci farà mancare alcune funzionalità. Sarà possibile utilizzare la messaggistica unificata?

R Assolutamente. In Office 2003, gli utenti abilitati per la messaggistica unificata possono ricevere messaggi vocali e fax nelle proprie cassette postali e utilizzare il telefono per accedere alla propria cassetta postale. Se non viene eseguito l'aggiornamento ad Outlook 2007, la funzionalità di messaggistica unificata che verrà a mancare sarà la possibilità di configurare le impostazioni della posta vocale tramite la scheda Opzioni in Outlook, come pure lo speciale modulo personalizzato che viene visualizzato in un messaggio di posta vocale in Outlook e consente di riprodurre il messaggio in linea senza avviare un altro lettore multimediale. Inoltre, non sarà disponibile la funzionalità che consente di scrivere annotazioni audio e di salvarle con il messaggio di posta vocale. Tuttavia, anche senza Outlook 2007, gli utenti abilitati sono comunque in grado di utilizzare OWA 2007 per accedere alle impostazioni della messaggistica unificata (nella pagina di opzioni OWA) e utilizzare il modulo personalizzato per la posta vocale in OWA.

D Nella mia azienda è già disponibile una SAN (Storage Area Network) alla quale si desidera collegare Exchange 2007. Tuttavia, ho sentito molto parlare dell'archiviazione diretta (DAS) e mi chiedo se dovremmo optare per questa opzione. Gradirei un parere.

R Non esiste una risposta giusta o sbagliata a questa domanda; tutto dipende di fatto dalle politiche e dagli scenari aziendali, soprattutto se è già disponibile una SAN. Se si sta pensando di acquistare una nuova SAN, di aggiungerne un'altra o di effettuare comunque un aggiornamento, il consiglio è di prendere seriamente in considerazione DAS. Ecco alcune informazioni da tenere presenti: fino al giugno 2007, Microsoft IT ha distribuito 17 server di cassette postali Exchange 2007 per 40.000 cassette postali (con quote che variano da 500 MB a 10 GB) che utilizzano Replica continua cluster (CCR) con DAS. Entro settembre è prevista la disponibilità di 35 server di cassette postali Exchange 2007 con 152.500 cassette postali tutti collegati a DAS. Di conseguenza, alla domanda sull'idoneità e praticabilità di DAS su scala enterprise, la risposta è certamente sì. DAS ha rappresentato la chiave per consentire a Microsoft IT di aumentare le quote utente riducendo al contempo i costi globali di archiviazione. Ulteriori informazioni su questa topologia e sulla distribuzione e i risparmi associati sono disponibili all'indirizzo microsoft.com/technet/itshowcase/content/64bitexchange2007.mspx.
Anche se inizialmente può sembrare che il collegamento di tutti i server alla stessa SAN porti a un notevole risparmio in termini di archiviazione, tutto ciò non è immune da rischi. Ad esempio, un problema che si verifica comunemente è correlato ai vari scenari di utilizzo del software collegato alla SAN. Se si dispone di un'applicazione HR sulla rete SAN che esegue un processo batch ogni sera alle 17.00, ad esempio, il picco di I/O che si verifica potrebbe influire seriamente sugli utenti di Exchange. La mancanza di I/O deterministico è un problema comune nelle distribuzioni di SAN condivise.
Un altro vantaggio che abbiamo realizzato con DAS è la maggiore semplicità di gestione perché non richiede amministratori di archiviazione dedicati o apparecchiatura speciale. È incrementale e facile da acquistare ed espandere in seguito. Inoltre, i costi sono generalmente abbastanza contenuti da consentire senza grossi problemi di avere spazio di riserva a disposizione.

D Ho installato il mio primo server Exchange 2007. Ora, quando tento di connetterlo utilizzando Outlook 2003, ricevo un errore indicante che l'amministratore ha bloccato la mia versione di Outlook. ("L'amministratore di Exchange Server ha bloccato la versione di Outlook che viene utilizzata. Contattare l'amministratore per assistenza".) Ma l'amministratore sono io e non l'ho mai bloccato. Che cosa accade?

R Questo comportamento non è imprevisto. Quando viene installato Exchange 2007, la procedura guidata di installazione chiede se nell'organizzazione vengono utilizzati client Outlook 2003 o precedenti o Entourage (vedere la Figura 2). Se la risposta a questa domanda è no, è possibile che si sia verificato questo problema.
Figura 2 Domanda di Exchange 2007 relativa ai client legacy
Figura 2 Domanda di Exchange 2007 relativa ai client legacy
Per risolvere questo problema dopo il completamento dell'installazione, è semplicemente possibile creare un archivio cartella pubblica utilizzando Exchange Management Console o Exchange Management Shell e riavviare il servizio Archivio informazioni. In questo caso, il riavvio del servizio Archivio informazioni è obbligatorio in quanto è condizione essenziale per consentire ai client legacy (Outlook 2003 e precedenti) di connettersi al server.
Inoltre, se si esegue l'installazione automatica di Exchange 2007, è possibile utilizzare l'opzione /EnableLegacyOutlook per specificare come si desidera rispondere alla domanda relativa ai client legacy.

D Perché è importante per Exchange 2007 se mi connetto al server utilizzando versioni precedenti di Outlook? Perché la creazione di un archivio cartella pubblica e il riavvio del servizio Archivio informazioni risolve questo problema?

R Le risposte a queste domande ruotano intorno alla presenza dell'archivio cartella pubblica. Si ricorderà che l'archivio cartella pubblica nelle versioni precedenti di Exchange è utilizzato tra le altre cose per memorizzare i dati sulla disponibilità degli utenti. Quando un utente di una versione legacy di Outlook è connesso al proprio server Exchange mediante MAPI o RPC su HTTP e pubblica qualcosa sul calendario, anche le informazioni sul relativo stato di disponibilità vengono pubblicate sul server in una cartella pubblica speciale chiamata Schedule+. Questo è l'unico metodo che consente ai client Outlook legacy di venire a conoscenza della pubblicazione dei dati di disponibilità degli utenti sul server e di fatto è l'unico metodo con cui un client Outlook legacy sa come leggere le informazioni sulla disponibilità degli utenti.
In Exchange 2007 questo è noto. Per questo motivo se non è presente alcun archivio cartella pubblica, Exchange 2007 blocca le versioni precedenti dei client. Se Exchange 2007 ha consentito la connessione di client legacy, il client incontrerebbe frequenti errori in quanto Outlook non potrebbe connettersi all'archivio cartella pubblica per pubblicare i dati sulla disponibilità e la funzionalità del client risulterebbe limitata in quanto le consultazioni della disponibilità che potrebbe fare un utente, ad esempio, per tentare di pianificare una riunione con altri, non funzionerebbero. Questo è anche il motivo per cui la creazione dell'archivio cartella pubblica consente di risolvere il problema, in quanto il server Exchange 2007 viene così informato che i client legacy possono utilizzare la funzionalità di pubblicazione della disponibilità e quindi l'accesso alla cassetta postale è consentito.
Da tutto ciò, si potrebbe avere dedotto un'altra cosa: che i client Outlook 2007 non richiedono l'archivio cartella pubblica per pubblicare le proprie informazioni sulla disponibilità. Questo è vero, ma con un effetto collaterale.
Senza entrare troppo in dettaglio, si può dire che se in un server Exchange 2007 è presente un archivio cartella pubblica, anche un client Outlook 2007 pubblicherà in essa i dati sulla disponibilità degli utenti. Ciò avviene per consentire agli altri client, alcuni dei quali sono presumibilmente client Outlook legacy, di consultare le informazioni sulla disponibilità di un utente di Outlook 2007; se le informazioni non sono presenti nell'archivio cartella pubblica, i client legacy non vedrebbero alcuna informazione sull'utente di Outlook 2007 in quanto non verrebbero mai inserite nell'archivio cartella pubblica. Se l'archivio cartella pubblica non è presente, tuttavia, un client Outlook 2007 non tenterà di pubblicare i dati sulla disponibilità. Quando non sono presenti archivi cartella pubblica e tutti i client sono come minimo Outlook 2007, viene utilizzato un altro meccanismo di consultazione delle informazioni sulla disponibilità in cui i dati di calendario vengono letti direttamente dalle cassette postali degli utenti, senza creare una relativa copia altrove. Per approfondire questo argomento, consultare le informazioni sul Servizio Disponibilità nel file della guida del server o nella documentazione in linea di Exchange situata all'indirizzo go.microsoft.com/fwlink/?LinkId=69434.

D Ho letto appena l'articolo della Knowledge Base 288894, che parla del blocco dei client MAPI utilizzando una chiave del Registro di sistema (vedere support.microsoft.com/kb/288894). Ho controllato il Registro di sistema del mio server ma questa chiave non era impostata. In che modo l'archivio esegue il blocco di questa versione del client legacy?

R Ottima domanda. Effettivamente, l'Archivio informazioni di Exchange 2007 non utilizza il valore del Registro di sistema "Disabilita client MAPI" che è citato in quell'articolo della Knowledge Base per bloccare i client legacy. La ragione è dovuta all'eventualità che non esista alcun archivio cartella pubblica e, quindi, nessuna modifica di quella chiave del Registro di sistema può sbloccare i client se non è presente alcun archivio cartella pubblica.
Il comportamento di bloccare i client di versioni precedenti di Outlook 2007 è codificato nell'Archivio informazioni di Exchange 2007. All'avvio del servizio, l'archivio controlla la presenza dell'archivio cartella pubblica, quindi decide se sarà consentito soltanto ad Outlook 2007 di connettersi o se anche le versioni precedenti saranno in grado di connettersi alle proprie cassette postali. Questo controllo ha luogo solo all'avvio del servizio. Questa è la ragione per cui è necessario riavviare il servizio Archivio informazioni affinché la modifica abbia effetto dopo la creazione dell'archivio cartella pubblica.

KC Lemson è User Experience Manager per Exchange Server. Attualmente sta svolgendo un dottorato presso una prestigiosa università non accreditata.
Nino Bilic è Supportability Program Manager per Exchange Server. Sta valutando l'opportunità di diventare pilota professionista di gare automobilistiche in Forza Motorsports 2.


 Controllo della protezione: L'impatto a lungo termine del controllo dell'account utente
Controllo della protezione
L'impatto a lungo termine del controllo dell'account utente
Dr. Jesper M. Johansson

Il problema dell'esecuzione come amministratore è ovvio: qualsiasi malware che attacchi gli utenti o le applicazioni da essi eseguite otterrà il controllo completo sul 90% dei computer infettati. Il controllo dell'account utente (UAC) di Windows Vista è la soluzione Microsoft a una sfida generale nel campo della protezione: il fatto che attualmente oltre il
90% degli utenti esegue la piattaforma Windows con privilegi amministrativi. Eseguire Windows® XP come utente standard è possibile (io l'ho fatto), ma può essere molto frustrante. Ad esempio, se si utilizza Windows XP e si viaggia spesso, si scoprirà che come utente standard è impossibile modificare il fuso orario del sistema.
Il controllo dell'account utente è la funzione che dovrebbe cambiare questa situazione. In realtà questo è il primo malinteso. Il controllo dell'account utente non è semplicemente una funzione: è un insieme di funzionalità, la maggior parte delle quali non risultano immediatamente ovvie. Non farò un'analisi approfondita di tutti i dettagli dell'implementazione del controllo dell'account utente: per chi la desiderasse, consiglio vivamente l'articolo di Mark Russinovich nel numero di giugno 2007 di TechNet Magazine, disponibile all'indirizzo technetmagazine.com/issues/2007/06/UAC.
In questo articolo cercherò invece di offrire un'opinione imparziale su cos'è e cosa non è il controllo dell'account utente e il suo effetto sul modo in cui si dovranno gestire i sistemi che eseguono Windows Vista®.

Che cosa sembra il controllo dell'account utente
La caratteristica più visibile del controllo dell'account utente è la finestra di dialogo per l'elevazione dei privilegi, illustrata nella Figura 1. Se si chiedesse a un campione rappresentativo degli utenti di Windows Vista cos'è il controllo dell'account utente, la maggioranza citerebbe probabilmente questa fastidiosa finestra di dialogo.
Figura 1 Finestra di approvazione per l'amministratore del controllo dell'account utente in modalità Approvazione amministratore
Figura 1 Finestra di approvazione per l'amministratore del controllo dell'account utente in modalità Approvazione amministratore
Nonostante la sua visibilità e tutte le opinioni a riguardo, sono convinto che la maggior parte delle discussioni su questo argomento non abbiano molto a che vedere con la vera natura del controllo dell'account utente. Al contrario, sembra esistere molta confusione su questo punto. Gli esperti scrivono blog, messaggi su newsgroup e articoli con titoli come "La funzione più fastidiosa di Vista" e pontificano su quanti utenti lo disattiveranno e perché è così irritante.
Visto che così pochi si sono presi la briga di capire la logica su cui si basa il controllo dell'account utente, potrei cominciare questo articolo spiegando che cos'è.

Che cos'è il controllo dell'account utente
Il controllo dell'account utente (UAC) è un tentativo di consentire a più persone di eseguire Windows come utenti standard. Si potrebbe dire che è la versione 2.0 di questo tentativo. La versione 1.0 era comparsa per la prima volta in Windows NT® 3.1 e consentiva a un utente di eseguire il sistema operativo senza privilegi amministrativi. Questa era una differenza rivoluzionaria rispetto al sistema operativo a 16 bit Windows 3.1 e ai suoi successori, Windows 3.11, Windows 95, Windows 98 e Windows Me, nessuno dei quali comprendeva il concetto di utenti con privilegi ridotti. La possibilità di fare qualcosa di utile senza privilegi amministrativi dipendeva da molti fattori, ma fino a Windows XP e Windows Server® 2003 compresi era spesso difficile o impraticabile utilizzare i privilegi utente minimi. Windows Vista offre la prima serie di tecnologie volte a facilitare un approccio corretto ai privilegi utente interattivi.
Benché sia corretto affermare che uno degli scopi del controllo dell'account utente sia proteggere in qualche modo le applicazioni in esecuzione come amministratore da quelle che non lo sono, questo non è assolutamente il suo scopo principale. Lo scopo principale è avviare il settore su una strada in cui più utenti accedono al sistema come utenti standard, il che a sua volta dovrebbe costringere più sviluppatori a scrivere più programmi che funzionino con i privilegi standard, riducendo il numero di situazioni in cui gli utenti hanno bisogno di elevare i privilegi. Man mano che gli sviluppatori scrivono più applicazioni conformi al controllo dell'account utente, il numero di richieste all'utente si riduce e l'esperienza dell'utente migliora. Alla fine si dovrebbe produrre una situazione in cui la maggior parte degli utenti non accedono al sistema come amministratori e magari cominciano anche a esaminare alcune delle richieste che ricevono comunque. Meno richieste ricevono, più sarà facile che gli utenti le considerino attentamente prima di accettarle.
Per lo meno, questa è la teoria. Una delle conseguenze potrebbe essere effettivamente una riduzione del malware, ma questo dipenderà dal fatto che gli utenti non disattivino il controllo dell'account utente, il che a sua volta dipenderà dal fatto che gli sviluppatori scrivano software compatibile e che gli utenti smettano di considerare le richieste come esercizi di prontezza di riflessi e si chiedano veramente se una richiesta di elevazione è legittima.
Per soddisfare l'obiettivo complessivo di aumentare il numero di utenti che possono lavorare quasi sempre senza privilegi amministrativi, il controllo dell'account utente è progettato in modo da soddisfare vari obiettivi parziali:
  1. Ridurre il numero di scenari che richiedono l'elevazione a un account amministrativo.
  2. Rendere l'elevazione molto più semplice dei metodi precedenti, come utilizzare runas.exe o uscire da un account per accedere attraverso un account diverso; se possibile, renderla addirittura automatica. In altre parole, colmare la lacuna finché i fornitori di software indipendenti non avranno corretto le proprie applicazioni.
  3. Fornire un certo isolamento alle applicazioni che vengono eseguite con privilegi amministrativi per proteggerle da quelle che non lo sono.
  4. Consentire a determinate applicazioni esposte di essere eseguite con privilegi ancora inferiori quando possibile.
Due di questi obiettivi mirano a rendere più gradevole possibile l'esperienza dell'utente senza privilegi amministrativi. Due hanno a che vedere con la protezione delle applicazioni che risultano più esposte.
La cosa interessante è che solo due di essi sono correlati alla funzionalità che viene normalmente identificata con il controllo dell'account utente e solo una ha a che vedere con l'attività di elevazione in sé. Eppure l'elevazione, quando un'applicazione richiede privilegi aggiuntivi, è ciò di cui si lamentano gli utenti, perché è l'unica manifestazione veramente visibile dell'insieme di tecnologie che costituiscono il controllo dell'account utente. Il primo obiettivo globale non ha assolutamente niente a che vedere con l'elevazione. Lo scopo era semplicemente consentire a più utenti di lavorare normalmente senza privilegi amministrativi. Si potrebbe anzi dire che l'intenzione era ridurre il numero di eventi di elevazione.
Gli obiettivi collegati all'attività di elevazione in quanto tale sono i numeri 2 e 3. L'obiettivo numero 2 è rendere l'elevazione più facile di quanto fosse in Windows XP, mentre il numero 3 è fornire un certo livello di protezione alle applicazioni che vengono eseguite con privilegi elevati. Gli altri obiettivi hanno a che fare con problemi completamente diversi. Tuttavia, ognuno di questi obiettivi ha richiesto modifiche al sistema operativo. L'articolo di Mark Russinovich citato sopra descrive i dettagli di queste modifiche per chi fosse interessato.
Come ho accennato, moltissimi "esperti" consigliano di disattivare il controllo dell'account utente. Probabilmente molti utenti lo faranno senza nemmeno provarlo, e molti altri riceveranno i propri computer da qualche grande rivenditore con una versione di Windows Vista in cui il controllo dell'account utente è già stato disattivato. Penso che sia vergognoso che i rivenditori disattivino importanti funzioni di protezione del sistema operativo nelle proprie immagini di distribuzione predefinite.
Purtroppo gran parte dei consigli di disattivare il controllo dell'account utente sono basati sull'esperienza iniziale. Quando si configura un computer, nel corso dell'installazione del software si ricevono molte richieste e si effettuano le modifiche necessarie. Bisogna rendersi conto che l'esperienza amministrativa durante la configurazione del computer è molto diversa dall'esperienza una volta che il computer ha raggiunto uno stato stabile. Le prime settimane saranno molto diverse dalle settimane successive. Se si prova il controllo dell'account utente su un computer che ha raggiunto uno stato relativamente stabile, si scoprirà probabilmente che in realtà non è così fastidioso.

Che cosa non è il controllo dell'account utente
Il controllo dell'account utente non è stato studiato apposta per diventare la funzione più irritante nella storia di Windows. Questo insieme di tecnologie è stato progettato invece per avviarci su una strada in cui gli utenti non saranno costretti ad esporre i propri sistemi a codice potenzialmente dannoso con la stessa frequenza con cui hanno dovuto farlo negli anni passati.
Nella sua forma attuale, il controllo dell'account utente non può bloccare gli attacchi di persone veramente competenti, o che si fanno aiutare da persone veramente competenti. Se i malintenzionati non riescono a immaginare un altro modo per sconfiggere il controllo dell'account utente, quasi sicuramente ricorreranno all'espediente di chiedere all'utente di farlo al posto loro. Quando si tratta di scegliere tra maiali ballerini e protezione, l'esperienza ci insegna che i maiali ballerini vincono sempre il confronto. Gli utenti hanno imparato a ignorare le finestre di dialogo e continueranno a farlo finché non riusciremo a insegnare loro un comportamento diverso. Questa situazione ha molte cause, tra cui il fatto che ci sono troppe finestre di dialogo di avviso, che i messaggi di queste finestre sono inutili e che molti dei manuali per i dispositivi acquistati dagli utenti indicano di "fare clic su Sì per chiudere la finestra dell'avviso di protezione".
Il controllo dell'account utente non offre una protezione a prova di bomba. Al contrario, restituisce interesse al vecchio attacco tramite elevazione dei privilegi locali. Questo tipo di attacco è stato essenzialmente abbandonato perché in Windows quasi tutti gli utenti erano comunque amministratori, per cui elevare a un utente amministrativo diverso era completamente inutile. Detto questo, è anche vero che il controllo dell'account utente cambia la natura di tali attacchi e rende le regole del gioco molto più simili a quelle che si sono applicate a UNIX per oltre 20 anni.
Il controllo dell'account utente non impedirà ai malintenzionati di rubare dati personali. I dati personali di un utente sono accessibili a tale utente indipendentemente dai privilegi di cui dispone. Di conseguenza un'applicazione, anche se dannosa, può accedere ai dati. Il controllo dell'account utente non cambia questo fatto e non può cambiarlo. Non elimina la necessità di essere attenti, malfidati e paranoici, attributi che dovremmo tutti instillare nei nostri utenti finali ad ogni opportunità.
Il controllo dell'account utente non è stato progettato per proteggere un'applicazione eseguita con privilegi elevati da tutti gli attacchi da parte di un'applicazione eseguita con privilegi normali nella stessa sessione di accesso. Anche se fornisce effettivamente un certo isolamento "debole" dei processi, l'isolamento delle applicazioni tra loro non era tra i suoi obiettivi di progettazione.

L'entusiasmo
La stessa Microsoft ha contribuito sia all'entusiasmo relativo al controllo dell'account utente che ai malintesi sulle sue funzioni. Nella Guida alla protezione di Windows Vista, ad esempio, nel capitolo sulla difesa dal malware viene presentato il controllo dell'account utente come la tecnologia principale finalizzata a questo scopo (microsoft.com/technet/windowsvista/security/guide.mspx). Consiglia di lasciare attivato il controllo dell'account utente (per la maggior parte) ed elenca una serie di punti da prendere in considerazione quando lo si utilizza per difendersi dal malware. Non accenna però a un fatto abbastanza importante: il controllo dell'account utente non blocca il malware e non è progettato per farlo.
Alcuni dei migliori cervelli al mondo nel campo della protezione di Windows, come Joanna Rutkowska, hanno capito lo scopo del controllo dell'account utente. Come ha scritto nel suo blog il 4 febbraio 2007, il controllo dell'account utente "è un nuovo meccanismo di sicurezza introdotto in Vista, il cui scopo principale è costringere gli utenti a lavorare tramite account limitati invece che come amministratori" (theinvisiblethings.blogspot.com/2007/02/running-vista-every-day.html). Questa descrizione è quasi esatta, salvo che io direi "consentire" invece di "costringere".
Tuttavia questo significa un notevole cambiamento nella natura degli attacchi più comuni contro Windows. Come ho accennato sopra, le vulnerabilità relative all'escalation dei privilegi locali, quando un utente può effettuare l'escalation da utente standard locale ad amministratore locale, non sono mai state particolarmente interessanti sulla piattaforma Windows.
Con Windows Vista si vorrebbe invece che gli utenti accedessero al sistema come utenti standard; di conseguenza, i problemi relativi all'escalation dei privilegi locali diventano molto interessanti. Purtroppo qui troviamo anche alcune delle limitazioni del controllo dell'account utente. Ricordiamo che non esiste un isolamento efficace: nessun limite di protezione isola i processi sullo stesso desktop. Il sistema operativo include alcune misure di protezione per bloccare le vie di comunicazione più ovvie e non necessarie, ma sarebbe impossibile e indesiderabile bloccarle tutte. Di conseguenza, Microsoft non classifica le violazioni di questo limite di protezione inesistente come violazioni della protezione. Mark Russinovich ha fatto notare questo fatto sul suo blog all'indirizzo blogs.technet.com/markrussinovich/archive/2007/02/12/638372.aspx.
Mark ha assolutamente ragione. Microsoft si rende perfettamente conto del fatto che non esistono limiti di protezione tra un processo basso e uno elevato sullo stesso desktop. Dato che non si è mai voluto isolare i processi sullo stesso desktop, non si può davvero parlare di una vulnerabilità della protezione quando si scopre che i processi sullo stesso desktop non sono isolati. Ovviamente questo riduce il valore del controllo dell'account utente come meccanismo di prima linea per la lotta contro il malware, ma non era progettato per esserlo, nonostante quanto dicano varie fonti, tra cui alcune provenienti da Microsoft.
Riduce però il valore del controllo dell'account utente per quanto riguarda il suo scopo principale, ossia consentire a più utenti di lavorare più spesso come utenti standard? No. L'esistenza o meno di un limite di protezione invalicabile tra un'applicazione dannosa con privilegi limitati e un'applicazione elevata non cambia il fatto che più utenti possono utilizzare in modo efficace il controllo dell'account utente ed eseguire Windows Vista sui propri computer come utenti standard. In effetti, nonostante ciò che alcuni "esperti" del settore vorrebbero far credere, ho scritto questo articolo (e anche tutto il mio libro sulla protezione di Windows Vista) come utente standard in Windows Vista e il controllo dell'account utente non mi ha mai chiesto nemmeno una volta di accettare quello che ho scritto!
Il fatto che il controllo dell'account utente non elimini tutti i problemi di protezione o che non disponga di una proprietà che molti, me compreso, vorrebbero avere, cioè una protezione di prim'ordine dal malware, non significa che non sia una tecnologia di protezione. La capacità di identificare gli utenti attraverso account utente separati non impedisce di per sé al malware di infettare il sistema, ma nessuno potrebbe seriamente sostenere che per questo motivo gli account utente non siano una tecnologia di protezione. Il fatto che il controllo dell'account utente non risolva tutti i problemi che ci piacerebbe che risolvesse non significa che i problemi che effettivamente risolve non siano validi.
Il controllo dell'account utente lascia a tecnologie come la nuova versione enormemente migliorata di Windows Firewall, Windows Defender e altri programmi antimalware il compito di impedire al codice dannoso di entrare nel computer e di impedirgli di venire eseguito se riesce lo stesso a entrare (grazie a una scaltra programmazione o ai maiali volanti). Probabilmente nessuna di queste tecnologie di protezione riuscirà a svolgere il proprio compito al 100%, ma nonostante ciò sono tutte tecnologie di protezione valide e hanno tutte una propria utilità. Ma come ho già detto molte volte, anche se tutte le vie di attacco vengono bloccate, alla fine dipende tutto dall'utente. Se la persona che usa la tastiera sceglie di consentire l'esecuzione di codice dannoso, nessuna protezione tecnologica al mondo potrà impedirglielo.

Procedure consigliate
Come si dovrebbe utilizzare il controllo dell'account utente? È meglio lavorare come amministratore o in modalità Approvazione amministratore? Come ho già detto varie volte, il controllo dell'account utente non impedisce a un'applicazione con privilegi limitati di inserire codice in un'applicazione con maggiori privilegi sullo stesso desktop. Questo significa che non si può ottenere un isolamento efficace né in modalità Approvazione amministratore né lavorando come utente standard ed elevando i privilegi all'interno di una sessione. Entrambe le soluzioni sono però molto meglio dell'esecuzione come amministratore in Windows XP o con UAC disattivato in Windows Vista. Prima o poi, tuttavia, comparirà probabilmente malware creato per approfittare delle applicazioni elevate sul desktop interattivo.
La scelta della modalità di esecuzione dipende quindi dalla propria filosofia di gestione dei rischi. Quando si lavora come utente standard e si eleva un'applicazione all'interno di una sessione, l'applicazione elevata ha un ambiente utente diverso dalle applicazioni regolari. Questo riduce il rischio di un attacco "poisoning", in cui un'applicazione dannosa non elevata "avvelena" l'ambiente utente per un'applicazione elevata, ma non rimuove necessariamente la possibilità che un'applicazione non elevata possa controllarne una elevata. Mentre un'applicazione dannosa eseguita qualche settimana fa non può facilmente "avvelenare" un'applicazione elevata eseguita oggi, un'applicazione dannosa attualmente in esecuzione può essere in grado di controllare un'applicazione elevata. È necessario considerare i vantaggi in termini di rischio dell'uso della modalità Approvazione amministratore o dell'elevazione all'interno di una sessione nel contesto della facilità d'uso offerta.
Questo conduce a una serie di procedure consigliate per il controllo dell'account utente, riassunte nella Figura 2. L'opzione di gran lunga migliore, a mio parere, è anche la più complicata. Tuttavia, per chi è veramente paranoico o veramente esposto, l'opzione migliore è accedere come utente standard e non eseguire mai con privilegi elevati. In un certo senso, quando si eseguiva Windows XP come amministratore, una volta che si eseguiva del codice dannoso la partita era persa. In Windows Vista, se si esegue codice dannoso e poi si elevano i privilegi all'interno della stessa sessione, probabilmente la partita è persa. Si tratta quindi di scegliere l'approccio che funziona meglio per le proprie esigenze e offre un livello di protezione considerato sufficiente.
Figure 2 Procedure consigliate di elevazione degli account (Close Figure 2)

Livello di protezione | Metodo di elevazione
Peggio | Disattivare UAC.
Male | Elevare automaticamente gli amministratori.
Bene | Eseguire in modalità Approvazione amministratore.
Meglio | Eseguire come utente standard ed elevare a un account amministrativo separato.
Metodo migliore | Eseguire come utente standard e passare a un account amministrativo separato anziché utilizzare il controllo dell'account utente per elevare i privilegi.
Inoltre, i veri paranoici non si fidano del fornitore quando dice che un'applicazione deve essere eseguita con privilegi amministrativi! Uno degli esempi più visibili di una dichiarazione falsa di questo tipo è Visual Studio® 2005 Service Pack 1. Quando si avvia Visual Studio, un messaggio informa che è necessario eseguire il programma con privilegi amministrativi. In realtà questo è vero solo per gli sviluppatori che devono eseguire determinate attività. Per ulteriori informazioni, consultare msdn2,microsoft.com/en-us/vstudio/aa972193,aspx.

Dare potere all'utente
Gli utenti dovrebbero avere la possibilità di prendere più decisioni e di prenderle nel modo migliore. Alcuni professionisti della protezione sono convinti che le decisioni relative alla protezione debbano essere nascoste all'utente. La logica sottintesa è che non solo gli utenti sono poco interessati alla protezione, ma non sono nemmeno abbastanza intelligenti da imparare a metterla in pratica correttamente. Solo affidandosi alla tecnologia di protezione preferita dall'esperto di turno saranno protetti come si deve.
Non vedo proprio come la tecnologia possa veramente proteggere le persone dagli attacchi diretti alle persone. Attualmente la maggior parte degli attacchi, compresi praticamente tutti quelli di tipo phishing, sono diretti principalmente alle persone e al modo in cui utilizzano i computer, non alla tecnologia all'interno dei computer stessi. Gli attacchi più efficaci possono combinare attacchi alle persone e attacchi alle tecnologie, ma spesso richiedono comunque l'intervento dell'utente per essere eseguiti. Non è semplicemente possibile pretendere che la tecnologia protegga da attacchi che non sono diretti alla tecnologia. Ho parlato molto di questo argomento qualche tempo fa: technetmagazine.com/issues/2006/07/SecurityWatch.
Il controllo dell'account utente sta già costringendo gli utenti a prendere decisioni relative alla protezione e alcuni fornitori di tecnologie hanno già promesso soluzioni per impedire agli utenti di prendere tali decisioni. È vero che gli utenti preferiscono non doversi preoccupare della protezione. È anche vero però che nessun software può capire le intenzioni di un altro software. Nessun sistema di prevenzione delle intrusioni può stabilire se un sito Web chiede il numero di carta di credito dell'utente per spedirgli una copia di Windows Vista Security o per trasmetterlo a una losca organizzazione criminale. Solo l'utente finale può farlo, e solo se riceve le informazioni necessarie. Come progettisti di software, dobbiamo abituare gli utenti a prendere decisioni intelligenti per quanto riguarda la sicurezza, insegnare loro come farlo e fornire loro le informazioni necessarie per farlo.
Se continuiamo a cercare di impedire agli utenti di prendere decisioni relative alla sicurezza, scopriremo semplicemente di non essere in grado di proteggerli. Alla fine gli utenti si stancheranno di essere vittime di attacchi e violazioni della propria privacy, del proprio conto in banca, della propria identità e della propria dignità. A questo punto smetteranno di utilizzare i prodotti il cui acquisto sostiene il settore in cui lavoriamo. Alcuni operatori del settore dell'alta tecnologia sono convinti che se nascondiamo l'esistenza dei problemi di protezione dei computer e delle comunicazioni elettroniche, gli utenti useranno ciecamente tutto quello che mettiamo loro davanti. Non c'è niente di più sbagliato. Quando gli utenti finalmente si renderanno conto che non siamo stati aperti e onesti con loro, perderanno completamente fiducia e abbandoneranno i nostri prodotti, provocando un crollo proprio di quel settore che stiamo cercando di proteggere nascondendo i fatti.
Il controllo dell'account utente è un passo interessante nella direzione di consentire agli utenti di assumersi la responsabilità della sicurezza dei propri sistemi. Non è assolutamente una soluzione di protezione completa, ma come primo tentativo di aiutare gli utenti a eseguire le applicazioni con privilegi minimi è sicuramente un passo significativo nella direzione giusta.

Dr. Jesper M. Johansson, Principal Security Engineer, si occupa dei problemi di protezione del software e collabora con TechNet Magazine come redattore. Ha ottenuto un Ph.D. dal MIS e ha più di 20 anni di esperienza nell'ambito della protezione informatica.


 File desktop remoto: Ripristino del computer con Windows PE
File desktop remoto
Ripristino del computer con Windows PE
Wes Miller

Negli articoli precedenti, ho accennato alla nostra visione iniziale di Windows PE quale ambiente di distribuzione. Come accade per tutti i buoni prodotti, Windows PE si è evoluto andando oltre questo concetto. I clienti (OEM, inizialmente) erano desiderosi di sviluppare una soluzione di produzione e di ripristino autonomo da parte degli utenti, così alcune aziende hanno realizzato
soluzioni Windows® PE che funzionavano per entrambe le esigenze.
La maggior parte degli strumenti di ripristino attualmente esistenti si basa sul presupposto di riportare un sistema in uno stato operativo conosciuto effettuando il mirroring del processo di distribuzione. In Windows Vista ® il ripristino è più semplice rispetto a Windows XP e fornisce un supporto standard per la creazione di immagini (vedere l'articolo sulle tecnologie di backup di Windows Vista di Christine Fok in questo numero di TechNet Magazine).
In questa rubrica mensile, verrà discusso lo sviluppo di una soluzione di recupero basata su Windows PE. Windows PE 2.0 è disponibile gratuitamente come componente del Windows Automated Installation Kit (AIK) per tutte le licenze di Windows. Oltre alle operazioni di distribuzione, questa licenza è valida anche per l'utilizzo di Windows PE a fini del ripristino e della risoluzione dei problemi.
Premesso che sarà ovviamente necessario tenere conto delle eventuali personalizzazioni e modifiche specifiche, qui verranno affrontati i punti generali da ricordare nella distribuzione di Windows XP o Windows Vista. Se si ha familiarità con la creazione di immagini, molti dei concetti affrontati di seguito saranno già noti.
I componenti principali di qualsiasi soluzione di ripristino di Windows PE sono:
  • Windows PE
  • Un'utilità di creazione di immagini
  • Elementi di scripting (o un'applicazione formale) che tengono insieme il tutto
Facoltativamente, è possibile includere il supporto di SQL e Active Directory® Service Interfaces (ADSI). Tramite la connettività SQL è possibile sviluppare indirettamente una soluzione che consente ai sistemi di disporre di una "distinta base" di tipi che definisce ciò che è necessario per l'installazione. Analogamente, la connessione ad Active Directory si rivela utile per gestire le proprietà dell'oggetto account (MAO) dei singoli computer.
Tenere presente che l'inclusione di ADSI in Windows PE non è supportata da Microsoft; tuttavia, sono disponibili alcuni articoli in linea nei quali viene spiegato come svolgere queste operazioni che, se completate in modo corretto, funzionano piuttosto bene. Se si ritiene che l'operazione sia fattibile, è possibile aggiungere il supporto SQL e sviluppare qui il flusso di lavoro dello strumento di ripristino di Windows PE. Se sono necessarie proprietà ADSI, è possibile utilizzare un sistema server che con un'operazione pianificata esegue una query sullo stesso SQL Server, e quindi su Active Directory tramite ADSI, svolgendo così la funzione di pass-through.
Non si tratta di una soluzione perfetta e sarà necessaria l'integrazione di qualche script o altro tipo di automazione, ma questa impostazione consentirà di interagire con Active Directory da Windows PE.
Tenere presente che è anche possibile utilizzare l'utilità LDIFDE per leggere le informazioni di Active Directory dall'interno di Windows PE (per ulteriori informazioni, vedere l'articolo della Knowledge Base su questo argomento all'indirizzo support.microsoft.com/kb/237677). Ad esempio, è possibile utilizzare il comando seguente:
ldifde -m -f x:\output.ldf -b <username> <domain netbiosname> <accountPassword> -s
<DC or domain name> -d "DC=contoso,DC=com" -r "(&(objectclass=<computerclassname>)
(netbuisname=<mycomputername>))" - l "<attributename>"
L'immissione di questo comando consentirà di recuperare un attributo dall'oggetto computer specificato in x:\output.ldf, dove l'output può essere quindi analizzato.

SKU, bit e lingue
È necessario considerare le versioni, le architetture e le lingue di Windows che è necessario distribuire. In una piccola organizzazione che opera su scala nazionale, è probabile che si distribuisca un solo sistema operativo, quale Windows XP o Windows Vista, o si utilizzi ciò che viene fornito già installato nei nuovi PC. È probabile che il numero di eventuali sistemi Windows x64 sarà ancora piuttosto ridotto, se non nullo. È inoltre probabile che sia necessario supportare solo una lingua. Tuttavia, tanto più grande e più globale è l'organizzazione, tanto maggiore sarà il numero di architetture, versioni e configurazioni da gestire.
In un precedente articolo ho accennato alla possibilità di memorizzare le immagini di volumi x64 e x86 in uno stesso file WIM (Windows Imaging Format), ma questo non consentirà di risparmiare spazio. Se si sta sviluppando una soluzione di ripristino ed è necessario tenere conto di entrambe le architetture, è opportuno memorizzare ciascuna di esse in un file WIM separato. Allo stesso modo, se si sta per distribuire e supportare sia Windows XP che Windows Vista, non sarà possibile realizzare alcun risparmio memorizzando entrambi i sistemi operativi nella stessa immagine. Qualche risparmio rilevabile si otterrà solamente se si includono molte istanze della stessa applicazione, ad esempio il sistema Microsoft® Office 2007, in entrambe le distribuzioni. In tal caso, i file dell'applicazione non devono essere memorizzati molte volte, ma questo non produce ancora risparmi di spazio significativi.
Metodi di avvio di Windows PE
Windows PE 1.6
Avvio di PXE da installazione remota
Servizio (RIS) (senza RAMDisk)
Unità disco rigido
Unità memoria flash USB
PXE RAMDisk
CD/DVD RAMDisk
Unità memoria flash USB RAMDisk
Unità disco rigido RAMDisk

Windows PE 2.0
PXE RAMDisk
CD/DVD RAMDisk
Unità memoria flash USB RAMDisk
Unità disco rigido RAMDisk

Avvio di PXE da RIS è ottimale se è necessario PXE, ma occorre notare che questo metodo richiede più tempo per l'avvio e utilizza più risorse di rete rispetto a un RAMDisk PXE.
Unità disco rigido utilizza la quantità minima di memoria ma blocca l'unità. Questo metodo è ideale se si utilizza uno scenario di recupero flip-flop con doppia partizione.
Unità memoria flash USB l'avvio è più pratico; tuttavia, UFD (per entrambi gli scenari con e senza RAMDisk) è accidentale se i sistemi di avvio non sono stati verificati dall'OEM come volumi di avvio UFD e non si dispone del logo Windows Vista Capable, che assicura il supporto dell'avvio UFD come requisito del logo. L'avvio UFD richiede un'unità memoria flash ad alte prestazioni sia in lettura che scrittura e il supporto USB ad alta velocità da parte del controllore USB e del BIOS.
Avvio RAMDisk in tutte le sue varianti, richiede una maggiore quantità di memoria, ma garantisce prestazioni ottimali e toglie di mezzo Windows PE spostandolo in un RAMDisk nella memoria. L'avvio RAMDisk di Windows PE 1.6 va utilizzato in genere solo su sistemi con almeno 256 MB di RAM. Windows PE 2.0, che è sempre un avvio WIM RAMDisk, va eseguito generalmente solo con sistemi dotati di almeno 384 MB di RAM.

Va tuttavia osservato che è possibile ottenere risparmi di spazio significativi quando si memorizzano diversi SKU di una particolare versione di Windows nello stesso WIM. Ad esempio, supponiamo di combinare Windows XP Professional con Windows XP Tablet PC Edition oppure Windows Vista Business Edition con Windows Vista Ultimate Edition: queste combinazioni utilizzano lo spazio in modo efficiente in quanto due SKU della stessa versione e livello di Service Pack condividono gran parte del codice e dei file.
Infine, entra in gioco la lingua. Tanto più grande è un'organizzazione, tanto maggiore è il numero di lingue da tenere in considerazione. Con Windows XP, è possibile scegliere di utilizzare versioni localizzate o l'interfaccia utente multilingue (MUI). Nelle versioni interamente localizzate di Windows XP, pressoché ogni piccola stringa è stata tradotta nella lingua di destinazione. Con MUI, d'altra parte, la lingua di base è l'inglese mentre nei pacchetti in lingua MUI e nei successivi Language Interface Pack è stato modificato il maggior numero possibile di stringhe. I risultati ottenuti con MUI in Windows 2000 sono stati soddisfacenti e ancor più in Windows XP e Windows Server 2003.
Nelle organizzazioni che utilizzano MUI, è possibile ottenere buoni risultati combinando le varie versioni in lingua nello stesso file WIM. La ragione è dovuta al fatto che tutte utilizzano come base file binari in inglese. Questo non è il caso, tuttavia, delle versioni localizzate che sono state rilasciate prima di Windows Vista. Poiché i file binari sono localizzati, uno stesso file non troverà corrispondenze tra le varie lingue con il risultato che è necessario memorizzare quasi l'intero sistema operativo, e qualsiasi applicazione localizzata, per ciascuna lingua.
In Windows Vista, le versioni localizzate (localizzate come una parte di un singolo file binario con risorse al suo interno) sono considerate obsolete. Windows Vista utilizza file di risorse con estensione mui per ciascuna lingua, compreso l'inglese. Sostanzialmente, Windows Vista è libero dalle lingue in quanto la maggior parte di queste informazioni risiedono nei file MUI. Di conseguenza, la memorizzazione di più versioni in lingua di Windows Vista nello stesso WIM si tradurrà in significativi risparmi di spazio. Grazie alla memorizzazione di due, quattro o più lingue in un unico file WIM, non è necessario che la dimensione dell'immagine cresca drasticamente e in seguito è possibile cambiare o aggiungere lingue in base alle proprie esigenze.
In breve, nello sviluppo della soluzione, occorre tenere conto di quali versioni di Windows e di altre applicazioni condividono file binari identici, consentendo la memorizzazione di una singola istanza dei file. Ciò aiuterà a determinare il numero di file WIM necessari per l'intera organizzazione.

Scenari utente
Generalmente, la crescita di ogni organizzazione è accompagnata da crescenti livelli di complessità. Le cause non provengono solo dalla dimensione, ma da tutte le variabili che vengono introdotte: un maggior numero di utenti e unità aziendali, con esigenze più specifiche.
Ricordo il caso di una specifica organizzazione multinazionale: aveva decine di migliaia di utenti e un processo di distribuzione gestito completamente da un'unica posizione geografica e organizzativa. La persona che gestiva questa organizzazione poneva sempre domande alquanto impegnative. Ad esempio, un motivo di preoccupazione era costituito da alcuni dei suoi utenti remoti che lavoravano in varie parti dell'Africa, i quali spesso non avevano a disposizione una buona connessione di rete trovandosi a centinaia di miglia da una linea telefonica. Egli aveva l'esigenza di sapere in che modo questi utenti potevano ripristinare i propri sistemi senza rimanere inattivi per giorni e senza dover viaggiare a grandi distanze.
Quando si sviluppa un prodotto, e in tal senso occorre pensare alla soluzione di ripristino come un prodotto, è necessario tenere come punto di riferimento i relativi utenti. Pensare alle specifiche esigenze aziendali, ma anche alle varie complessità associate alle diverse categorie di utenti. È necessario incorporare casi di utilizzo, applicando brevi descrizioni per descrivere ciascun tipo di utente finale da supportare. Questi possono aiutare a individuare tutti gli utenti rimasti accidentalmente esclusi dalla soluzione di ripristino e garantire che ciascun tipo di utente venga tenuto in considerazione.

La versione corretta di Windows PE
Un'altra decisione importante consiste nel determinare quale versione di Windows PE è più adeguata alle esigenze specifiche. I numeri precedenti di questa rubrica posso essere di aiuto, ma tenterò qui di facilitare ulteriormente tale decisione. Se ci si ritrova in una qualsiasi delle seguenti condizioni, occorre utilizzare Windows PE 1.6:
  • Si deve ripristinare solo Windows XP (o Windows Server 2003)
  • Si devono ripristinare sistemi che non sono conformi alle specifiche ACPI (Advanced Configuration and Power Interface)
  • Si devono ripristinare sistemi che non sono dotati di almeno 512 MB di RAM
  • Si devono ripristinare sistemi che richiedono l'avvio Pre-Boot eXecution (PXE) con meno di 256 MB di RAM
Se ci si ritrova in una qualsiasi delle seguenti condizioni, occorre utilizzare Windows PE 2.0:
  • Si deve ripristinare solo Windows Vista (o Windows Server 2008)
  • Oltre a Windows XP si deve ripristinare Windows Vista
  • Viene utilizzato BitLocker™
Tenere presente che ImageX (vedere la sezione "Creazione, aggiornamento e memorizzazione") e la maggior parte delle soluzioni di creazione di immagini di terze parti funzionerà correttamente con qualsiasi versione di Windows PE.

Avvio di Windows PE
Il successivo elemento da considerare è la modalità con cui verrà avviato Windows PE. In questo caso, gli scenari utente svolgono un ruolo determinante. È realistico valutare che gli utenti portino con sé CD o DVD per il ripristino? Saranno in grado di gestirli con un computer portatile mentre si trovano in viaggio? Inoltre, come verranno tenuti aggiornati i supporti di ripristino? Le immagini di ripristino sui supporti rimovibili possono diventare obsolete molto rapidamente.
Indubbiamente lo scenario più comune che ho osservato è la partizione secondaria del disco rigido. Un'altra opzione è l'avvio di PXE. In alternativa, è possibile valutare l'utilizzo di unità USB esterne o anche di unità memoria flash USB (UFD), ma va tenuto presente che l'hardware in questione deve supportare esplicitamente l'avvio da un dispositivo UFD.
Nella barra laterale "Metodi di avvio di Windows PE" sono descritti i metodi supportati per l'avvio di ciascuna versione di Windows PE con alcune importanti considerazioni su ciascuno di essi.
L'avvio di Windows PE deve avere l'obiettivo di predisporre il processo di ripristino soddisfacendo determinati criteri:
  • Interazione utente minima
  • Spostamento minimo di componenti (supporti rimovibili o dispositivi rimovibili)
  • Possibile mancanza di connettività di rete per il computer
  • Impossibilità di avviare il computer in locale (Windows non viene avviato)
Spesso gli amministratori escludono la possibilità di inserire Windows PE (direttamente o in un RAMDisk) sul disco rigido perché sono preoccupati dalla possibilità che questo subisca dei guasti. In realtà, data l'affidabilità dei dischi attuali questa opzione è senz'altro praticabile; inoltre, se l'unità fisica viene danneggiata, l'utente non sarà comunque in grado di ripristinare autonomamente il sistema.
La mia preferenza è di creare una partizione secondaria sulla quale memorizzare l'immagine di ripristino. Non sono un sostenitore delle partizioni nascoste, perché tendono a confondere gli utenti. Anche l'utilizzo di un elenco di controllo dell'accesso (ACL) su di esse non è una scelta fattibile, a meno che gli utenti non siano amministratori locali.
Grazie alla riduzione della partizione utilizzata per Windows (vedere la barra laterale "Creazione di una partizione di ripristino"), può essere possibile creare spazio sufficiente per memorizzare Windows PE e l'immagine di ripristino. Per inserire Windows PE sulla partizione secondaria, è sufficiente creare il settore di avvio appropriato sulla partizione di ripristino e inserire Windows PE in tale partizione. Questa procedura è descritta nei documenti contenuti nel Windows AIK e nelle versioni precedenti di Windows PE, quindi non sarà necessario trattarla in dettaglio qui. La cosa principale da ricordare è che la partizione utilizzata per l'avvio viene determinata dalla partizione contrassegnata come attiva. Diskpart fornisce un flag attivo e un altrettanto importante flag inattivo. Per avviare la partizione di ripristino dall'interno di Windows (o da una copia di Windows PE), utilizzare diskpart per commutare le partizioni attive (vedere la Figura 1). Di seguito viene fornito l'esempio di uno script di diskpart (utilizzare diskpart /s nomescript.txt) usato per commutare un sistema con due partizioni su un singolo disco:
SEL DIS 0
SEL PAR 1
INACTIVE
SEL PAR 2
ACTIVE
EXIT
Figura 1 Modifica della partizione attiva con diskpart
Figura 1 Modifica della partizione attiva con diskpart
Questo è il processo che viene adottato da molti strumenti di ripristino consumer per invertire le partizioni; per alcuni tipi di partizioni, quali le partizioni OEM nascoste, l'operazione può essere eseguita solo dall'interno di Windows PE. In alcuni casi, questi strumenti saranno anche in grado di scoprire un tipo di partizione OEM nascosta.

Creazione, aggiornamento e memorizzazione
Creazione di una partizione di ripristino
Nel momento in cui sono noti i passaggi richiesti, il processo di creazione di una partizione di ripristino lasciando intatto Windows non è difficile. Di seguito viene fornita una rapida descrizione delle operazioni da svolgere. Tenere presente che questo processo richiede Windows PE 2.0. Anche se nelle operazioni di distribuzione e ripristino è possibile non utilizzare Windows PE 2.0, per questa attività è necessario utilizzare tale versione. Questo processo può essere utilizzato anche per distribuire Windows Vista e per creare una partizione di avvio da utilizzare per i file di avvio di BitLocker, il quale richiede almeno due partizioni (una per i file di avvio e una per il resto del sistema Windows).
  1. Deframmentare il disco (questo può contribuire ad accelerare il processo di compattazione, che richiede una notevole quantità di tempo)
  2. Avviare in Windows PE 2.0
  3. Eseguire diskpart (se si desidera, è possibile creare uno script per svolgere i passaggi da 4 a 9 e inviare a diskpart il seguente argomento: /s nome_dello_script
  4. SEL VOL 1 (o il volume da compattare)
  5. SHRINK DESIRED=N MIN=N (specificato in megabyte, DESIRED è l'obiettivo e MIN è il minimo assoluto necessario)
  6. Al termine della compattazione, eseguire SEL DIS 0
  7. CRE PAR PRI (è possibile indicare SIZE=N se si desidera specificare una dimensione diversa da quella residua del disco)
  8. ASSIGN LETTER=N: (questa lettera viene utilizzata solo in Windows PE)
  9. Uscire da diskpart
  10. FORMAT N: /Q /Y /F: NTFS (NTFS formatta la nuova partizione)
  11. Eseguire bootsect N: (/nt60 per 2.0, /nt52 per 1. x)
  12. Copiare i file di Windows PE desiderati sulla partizione di ripristino
  13. Arrestare il sistema

Anche se ImageX è una soluzione disponibile gratuitamente, è possibile che si disponga già di uno strumento di creazione di immagini che viene utilizzato da qualche tempo. È possibile utilizzare lo strumento che si ritiene più pratico. Se si sta considerano l'utilizzo di ImageX, vi sono alcune cose che ritengo valga la pena segnalare, oltre all'ottimo prezzo. In particolare, ImageX adotta un approccio aggressivo alla compressione. È degna di nota anche la possibilità di aggiungere un'immagine e di modificarla in modo relativamente semplice.
Un altro aspetto apprezzabile è che ImageX consente di gestire le immagini di uno o più volumi in modo non distruttivo, lasciando che i dati utente vengano spostati per preservarli. In altre parole, durante il ripristino di Windows, non è necessario distruggere completamente l'intero volume.
Quindi, ovviamente, è necessario decidere dove memorizzare l'immagine. Supponendo che la soluzione utilizzi una partizione di ripristino, qui è possibile memorizzare un file WIM o un altro file immagine. È anche possibile considerare l'utilizzo dei Servizi di distribuzione Windows (WDS), creando un'immagine standard del sistema operativo e memorizzandola nella rete. Questo consente di realizzare una soluzione di ripristino comune che è disponibile per l'intera infrastruttura. Ovviamente, in presenza di utenti sul campo, come il personale citato in precedenza che opera in varie parti remote del mondo, sarà necessario garantire che dispongano di una propria soluzione quando non è possibile accedere alla rete.
Ho accennato in precedenza alla possibilità di utilizzare supporti, quali i DVD, anche se esiste un certo numero di ragioni per cui non prediligo questa opzione per un utilizzo generalizzato. Ad esempio, la dimensione di un'immagine può crescere rapidamente oltre la dimensione di un DVD e i dischi di questo tipo non possono essere aggiornati facilmente. Inutile aggiungere che i supporti ottici non hanno una collocazione precisa; è necessario semplicemente considerare quale scenario è migliore per i vari tipi di utenti. La mia preferenza, se non ne è stata ancora individuata una personale, è di memorizzare l'immagine su una partizione di ripristino, su un disco rigido o unità memoria flash USB o, laddove possibile, nella rete utilizzando WDS.
Un aspetto che rende interessante la scelta di WDS è la possibilità di aggiornare facilmente un'immagine centralizzata. È ormai diffusamente noto che gli aggiornamenti di Windows Update vengono rilasciati ogni mese e che la loro importanza è cruciale. Progettare la soluzione in modo tale che l'immagine di ripristino sia quanto più aggiornata è possibile. WDS consente di aggiornare l'immagine su ogni server ed è completa.

Problemi relativi ai dati e alle impostazioni utente
Quando si progetta una soluzione di ripristino, vi sono alcuni problemi da considerare. Un aspetto centrale della pianificazione di qualsiasi soluzione di ripristino è garantire la protezione anche dei dati degli utenti. Non è certamente desiderabile che un utente sul campo esegua un ripristino per scoprire subito dopo di avere perduto tutti i dati importanti nel corso della procedura. Idealmente, sarà desiderabile che i dati degli utenti siano memorizzati in una posizione diversa dalla partizione C:, a meno che non venga prestata molta attenzione alla modalità con cui viene gestito il ripristino del sistema.
Ho già accennato in precedenza che ImageX consente di ripristinare un disco in modo distruttivo. Ad esempio, sposta la struttura della directory Documents and Settings (o Users) in un'altra directory, così un utente o uno script può recuperare manualmente i file al termine del ripristino. Gli utenti che memorizzano tutti i file sotto il proprio profilo o che utilizzano profili comuni dovrebbero, nella maggior parte dei casi, ripristinare un sistema senza perdere i propri dati. È tuttavia importante ricordare che se la soluzione di ripristino non viene messa a punto con attenzione o se non è disponibile una buona soluzione di backup, è comunque possibile perdere una certa quantità di dati utente.
Va ricordato che nonostante l'accuratezza della pianificazione, alcuni utenti memorizzeranno le informazioni in posizioni diverse dal proprio profilo. È necessario accertarsi che la soluzione tenga conto della possibilità di eliminare accidentalmente dei dati utente e avvisare gli utenti prima di procedere.
Se si utilizza Crittografia file system (EFS), assicurarsi di avere attuato un piano di ripristino delle chiavi: non è auspicabile perdere dei dati a causa di un sistema di crittografia non recuperabile. Allo stesso modo con BitLocker, assicurarsi di avere predisposto il ripristino dei volumi crittografati con questo metodo. Questo comporta l'utilizzo di Windows PE 2.0, in quanto la versione 1.x non è in grado di interagire con BitLocker. Per ulteriori informazioni sul ripristino di BitLocker, vedere blogs.msdn.com/si_team.
Infine, occorre essere preparati all'eventualità che alcuni utenti saranno contrariati dalla scomparsa di alcune delle loro personalizzazioni o applicazioni. Le personalizzazioni delle applicazioni e dello stesso Windows sono memorizzate in alcune posizioni casuali, non solo nel profilo utente. Quando viene ripristinata l'intera partizione del sistema operativo, alcuni utenti chiederanno "dove è finito x?" o "perché non c'è più Word?" Stabilire le aspettative degli utenti in modo che siano consapevoli che l'ambiente potrebbe non essere esattamente lo stesso che utilizzavano il giorno prima.
La creazione di una soluzione di ripristino con Windows PE richiede tempo ed è necessario tenere sempre presenti gli utenti durante tutte le fasi di pianificazione e progettazione. Una soluzione di ripristino non deve essere eccessivamente complicata: deve semplicemente consentire agli utenti di ritornare all'operatività nel più breve tempo possibile con supporto tecnico limitato.

Wes Miller è un responsabile di sviluppo presso Pluck (www.pluck.com), Austin (Texas). In precedenza, ha lavorato per Winternals Software ad Austin e in Microsoft come Program Manager e Product Manager di Windows. È possibile contattarlo all'indirizzo technet@getwired.com.


 Taccuino: Suggerimenti su formazione e rinfreschi gratuiti
Taccuino
Suggerimenti su formazione e rinfreschi gratuiti
Michael Dragone

Sono un Systems Engineer di una società di assicurazioni di titoli formata da circa 150 persone. Le nostre esigenze informatiche non sono particolarmente complesse visto che l'applicazione principale line-of-business è basata sul Web. Solitamente, quindi, le interazioni avvengono tramite Internet Explorer® e, ovviamente, Microsoft® Office.
Una distribuzione delle applicazioni relativamente semplice come questa descritta indurrebbe a pensare che le difficoltà incontrate quotidianamente dai nostri utenti nell'utilizzo delle applicazioni siano poche o persino nulle. Questa affermazione è generalmente corretta. I problemi che si presentano sono per la maggior parte di facile risoluzione per un lettore medio di TechNet Magazine.
Attraverso l'esperienza, ho imparato che una buona formazione dell'utente è fondamentale per ridurre al minimo questi problemi. Vorrei offrire ai lettori un paio di suggerimenti nella speranza che possano essere utili anche per migliorare le relazioni con i propri utenti.
Il primo riguarda le sezioni di formazione. Di tanto in tanto, organizziamo degli incontri per discutere dei nuovi sistemi installati, delle nuove applicazioni in fase di implementazione e dei nuovi criteri adottati. Analogamente, in vista dell'introduzione di una modifica radicale del sistema, organizziamo un incontro speciale dedicato esclusivamente a questo argomento e alle domande degli utenti. L'incontro si tiene prima dell'implementazione della modifica in questione in modo che gli utenti siano ben preparati.
Ad esempio, supponiamo sia previsto un importante aggiornamento al sistema telefonico aziendale. Gli utenti potranno ancora accedere alla posta vocale tramite Outlook® come adesso, tuttavia il software che utilizzano a tale scopo verrà modificato. Viene pianificata una sessione di formazione durante la quale il fornitore del sistema telefonico mostra la nuova interfaccia agli utenti che, a loro volta, hanno la possibilità di porre domande ben prima dell'effettiva introduzione del sistema.
Vengono trattati anche altri argomenti che rappresentano un problema per gli utenti. Chiunque abbia perso tempo per risolvere problemi legati al sistema di ticket, avrà ben presente il tipo di difficoltà di cui sto parlando. Ad esempio, uno degli utenti non capiva perché due sistemi separati dovessero avere due password distinte. Non sarebbero state sufficienti milioni di parole per spiegarlo e infatti si convinse solo dopo aver visto una diapositiva di PowerPoint® esclamando un "Ah!" di liberazione.
In base alla mia esperienza, posso affermare che, a prescindere dall'argomento, la riuscita di un incontro dipende esclusivamente dal rinfresco gratuito e dal tono amichevole dei relatori. È importante mettere a proprio agio gli utenti in modo che riescano a fare le loro domande, anche se possono sembrare stupide.
Il mio secondo suggerimento è di girare per la stanza. Ogni giorno, passo 10 o 15 minuti tra i nostri utenti. Se vedo che qualcuno sta facendo qualcosa in modo strano, mi fermo e chiedo cosa sta facendo e perché, discutendone per un po'. Spesso riesco a illustrare un metodo alternativo e più semplice per fare la stessa cosa. Ad esempio, ricordo quando uno dei nostri utenti continuava a ridisporre le barre degli strumenti di Outlook a caso, senza alcuna idea di come risolvere il problema. Soffriva in silenzio finché un giorno non mi accorsi di lui. Gli feci vedere quindi come modificare le barre degli strumenti in modo tale da ripristinarle in caso di necessità.
Altri utenti possono avere difficoltà a esporre i propri problemi all'assistenza tecnica per una serie di motivi. Alcuni potrebbero provare imbarazzo perché pensano che le loro domande siano stupide e non all'altezza di un esperto IT. Altri utilizzano una tastiera o un mouse scadenti, senza sapere che il reparto IT, solo in queste occasioni, spesso offre sostituzioni. Bastano pochi minuti con gli utenti per risolvere molti di questi problemi e prendere spunto per la prossima lezione. Senza dimenticare il rinfresco gratuito!
È importante ricordarsi degli utenti in tutti gli aspetti del proprio lavoro. La maggior parte, se non tutte le modifiche apportate ai sistemi, ai criteri e alle procedure avranno sempre un impatto sugli utenti, che sono singoli individui che reagiscono differentemente a queste modifiche.
Spesso è difficile comprenderlo per noi che consideriamo come seconda natura della tecnologia la capacità di servire al meglio i nostri utenti che non sono altrettanto esperti. Con un po' di pazienza e un'adeguata formazione, è possibile aiutare gli utenti ad amare i computer. Un po' per volta, naturalmente.

Michael Dragone è Systems Engineer di una piccola società di assicurazioni di titoli di New York. Ha conseguito le certificazioni MCDST e MCSE: messaggistica. Le sue passioni sono lunghe passeggiate sulla spiaggia con il suo cane e i server su cui sono applicate patch complete.


 Windows Confidential: Il giusto equilibrio delle DLL conosciute
Windows Confidential
Il giusto equilibrio delle DLL conosciute
Raymond Chen

La funzionalità di Windows, denominata in modo informale "DLL conosciuta", fa riferimento a un elenco di DLL (Dynamic Link Libraries) a cui il caricatore di moduli del kernel dedica un trattamento speciale. Quando il caricatore individua un programma con un collegamento dinamico per la durata di caricamento a una DLL conosciuta, la copia nota viene utilizzata immediatamente ignorando l'algoritmo di ricerca che in genere si applica al caricamento del modulo. Alcuni potrebbero considerarla come una funzionalità di protezione (nonostante si tratti chiaramente di una funzionalità piuttosto debole), ma di fatto la protezione non ha mai rappresentato lo scopo di questa funzionalità. Le DLL conosciute hanno a che fare esclusivamente con le prestazioni.
I meccanismi della funzionalità relativa alle DLL conosciute sono cambiati nel tempo. In alcune versioni di Windows®, il kernel utilizza l'elenco di DLL conosciute come punto di partenza, poi prende in considerazione tutte le DLL a cui si collegano tali DLL conosciute, quindi tutte le DLL a cui si collegano queste ultime e così via. Questo processo sviluppa la chiusura transitiva di tutte le dipendenze e le considera tutte come conosciute. Nelle altre versioni di Windows, questa chiusura transitiva non viene sviluppata. Al contrario, vengono trattate come note solo le DLL elencate esplicitamente come conosciute. In alcune versioni di Windows, le DLL conosciute vengono precaricate dal kernel all'avvio del sistema. In altre versioni, non ha luogo nessuna operazione di precaricamento e il kernel utilizza semplicemente l'elenco per evitare di dover ricercare il percorso di una DLL.
Non è solo l'interpretazione dell'elenco di DLL conosciute che cambia da versione a versione. Anche i contenuti della chiave del Registro di sistema KnownDLL sono soggetti a modifiche. Il team addetto alla gestione delle prestazioni di Windows modifica sia l'elenco di DLL conosciute sia le regole tramite cui l'elenco viene convertito in una serie di DLL in base alla conoscenza delle modalità con cui le applicazioni utilizzano Windows. È un gioco di compromessi, tipico in ingegneria. Il precaricamento delle DLL conosciute all'avvio del sistema consente alle applicazioni che le utilizzano di essere avviate più rapidamente. Ma c'è un prezzo da pagare per questo. L'avvio del sistema dura di più e il consumo della memoria aumenta poiché tali DLL restano in memoria a prescindere se vengano utilizzate. È un gioco che prevede il miglioramento delle prestazioni di alcuni componenti a scapito di altri. Trovare il giusto equilibrio è difficile e, come si può vedere, è un'attività che viene costantemente ottimizzata man mano che viene sviluppato il modello di utilizzo.
Una conseguenza non proprio ovvia delle DLL conosciute è la precedenza che queste ultime hanno sulle DLL reindirizzate localmente. A tale proposito rimando all'edizione di gennaio 2007 di questa rubrica. Pensandoci su, è probabile che si tratti effettivamente del comportamento previsto piuttosto che di un capriccio. Dopotutto, lo scopo dell'elenco di DLL conosciute è ignorare il percorso di ricerca, velocizzando così il caricamento delle DLL. Se il kernel dovesse verificare le DLL reindirizzate localmente, si verificherebbe un rallentamento. Si potrebbe pensare che aggiungere una sola directory al percorso di ricerca non sia un grande affare, ma se quell'unica directory può essere un server di rete a metà strada tra una parte e l'altra del globo, l'aggiunta di una sola directory può causare un importante rallentamento delle prestazioni.
Che ci si creda o no, abbiamo visto programmi che si basano su DLL specifiche conosciute. La directory dell'applicazione conteneva un programma che aveva un file denominato Version.dll. In circostanze normali, questa copia privata di Version.dll avrebbe sostituito quella presente nella directory di sistema, ma in Windows XP, Version.dll viene elencata come DLL conosciuta. Ciò significa che la copia nella directory dell'applicazione viene ignorata e la versione nella directory di sistema ha la meglio.
In Windows Vista®, Version.dll non è più in elenco come una DLL conosciuta, probabilmente perché i responsabili delle prestazioni hanno stabilito che le applicazioni non la utilizzavano abbastanza da giustificare i costi. Di conseguenza, questo programma non funziona più in Windows Vista perché l'applicazione si basava di fatto sul kernel ignorando la DLL che il programma ha installato nella propria directory dell'applicazione. Il programma continuava ostinatamente a installare una DLL sul percorso di ricerca facendo affidamento su Windows affinché la ignorasse. Di certo se voleva che Windows ignorasse un file, sarebbe risultato molto più efficace non installare affatto il file. La società che ha scritto il programma ha segnalato un bug dichiarando di aver trovato un problema di protezione.

Raymond Chen, The Old New Thing, così come nel suo libro che porta lo stesso titolo (Addison-Wesley, 2007), vengono illustrate la storia di Windows e la programmazione in Win32. Non sa più come è fatta una T-shirt.