 TechNet Magazine January 2007
TechNet Magazine January 2007
JANUARY 2007
SharePoint

Questo mese TechNet Magazine dedica un intero numero a SharePoint e a tutte le novità presenti nell'ultima versione. Presenteremo SharePoint Server 2007 e introdurremo le nuove funzionalità che rendono migliore e più semplice che mai la creazione di un sito di collaborazione. Un articolo introduttivo presenterà la funzione di ricerca aziendale e gestione documenti e molto altro ancora. Presenteremo anche degli articoli riguardo alla protezione di SharePoint, le semplici attività di amministrazione da linea di comando e la creazione di siti wiki per la tua organizzazione utilizzando SharePoint. Come sempre, poi, avremo la nostra raccolta di rubriche di successo, comprese quelle di Raymond Chen intitolata "Fuga dall'inferno delle DLL" e gli Scripting Guys sull'ordinamento dei dati in VBScript tramite il metodo .NET Framework’s DataList.Sort.

FUNZIONALITÀ
SharePoint Una panoramica su Microsoft Office SharePoint Server 2007

La nuova versione di SharePoint è progettata per venire incontro alle esigenze di gestione delle informazioni e delle collaborazioni in un'unica piattaforma integrata. Ecco una panoramica delle nuove caratteristiche e dei nuovi strumenti di MOSS che cambieranno il modo di lavorare delle aziende.

Thomas Rizzo Sette nuove funzionalità che aumenteranno la sicurezza di SharePoint

Dal momento che SharePoint entra in contatto con molti più dati aziendali e si integra maggiormente con i flussi di lavoro aziendali, la protezione diventa ancora più importante. Scopri in che modo queste sette nuove funzionalità di MOSS possono migliorare rapidamente la sicurezza della tua azienda.

Adam Robert Buenz Trovalo con SharePoint Enterprise Search

La tua azienda perde tempo e denaro quando i dipendenti cercano di rintracciare le informazioni. Enterprise search può aiutarti. MOSS fornisce una funzione di ricerca aziendale che è in grado di reperire rapidamente le informazioni, sia che queste si nascondano all'interno di un sito intranet, sia che si trovino in un'applicazione line-of-business, sia che appartengano ad un singolo dipendente.

Matt Hester Una potente funzione di amministrazione da linea di comando per SharePoint

Non farti bloccare dalla GUI. C'è un modo molto più efficace e veloce di gestire SharePoint, che ti consente di eseguire attività di amministrazione da un prompt di comandi e anche da normali procedure di scripting.

Todd Klindt Utilizza i wiki sul lavoro

I siti wiki offrono un metodo innovativo e flessibile di collaborare e promuovono un approccio non strutturato per creare e scambiare idee. E MOSS 2007 rende straordinariamente semplice la creazione di siti wiki per la tua azienda. Ecco ciò che è necessario sapere per cominciare a creare e utilizzare siti wiki sul luogo di lavoro.

Mauro Cardarelli
COLONNE
Dall'editore

Joshua Trupin Casella degli strumenti

Nuovi prodotti per professionisti IT

Greg Steen Funzione Spotlight

Internet Explorer Administration Kit

Lance Whitney SQL Q+A

Archiviazione dei dati, server collegati, misurazione larghezza di banda, e molto altro

A cura di Nancy Michell The Cable Guy

Ottimizzazione automatica della finestra di ricezione del TCP

Joseph Davies Windows PowerShell

Costrutti Windows PowerShell

Don Jones 		Ciao Scripting Guy!

Stai attento a quel che dici

Gli Scripting Guys di Microsoft Exchange Queue & A

Sappiamo tutte le risposte (perché abbiamo formulato noi le domande)

KC Lemson e Paul Bowden Controllo protezione

Servizi di protezione avanzata in Windows Vista

Wole Moses Desktop File

Windows Automated Installation Kit

Wes Miller Appunti

Supporto tecnico In-Laws

James Snell Windows Confidential

Fuga dall'inferno delle DLL

Raymond Chen


 SharePoint: Una panoramica di Microsoft Office SharePoint Server 2007
SharePoint Thomas Rizzo

Una panoramica di Microsoft Office SharePoint Server 2007
Panoramica:
  • Integrazione Web di SharePoint
  • Gestione contenuti
  • Business intelligence

Due fenomeni stanno mutando il modo in cui le aziende operano in quello che Microsoft chiama "il nuovo mondo del lavoro". In primo luogo, i team che lavorano in collaborazione sono sempre più spesso dislocati in paesi diversi e
spesso lavorano anche in ore differenti del giorno. Di conseguenza, il software di collaborazione è divenuto sempre più importante per supportare la natura globale del lavoro. In secondo luogo, si assiste ad un'enorme crescita nell'utilizzo di informazioni digitali e contemporaneamente gli obblighi di conformità che circondano questa attività diventano sempre più complessi. Le società si stanno confrontando con la possibilità di permettere la collaborazione e lo scambio di informazioni, garantendo nello stesso tempo sia la sicurezza che la privacy. Una soluzione in grado di soddisfare tutte queste richieste (comunicazione da un continente all'altro e tra fusi orari differenti, strumenti di collaborazione effettiva e gestione sicura delle informazioni) è assolutamente determinante per sfruttare al meglio le proprie risorse umane e informative.
L'introduzione di Microsoft® Office SharePoint® Server (MOSS) 2007 riunisce diverse tecnologie in un'unica piattaforma integrata e una serie di servizi per l'impresa. Queste tecnologie spaziano dalla collaborazione ai portali, alla ricerca aziendale, ai flussi di lavoro fino ai processi aziendali. MOSS rappresenta la nuova generazione di SharePoint Portal Server (SPS) basata su Windows® SharePoint Services (WSS). Un modo semplice di comprendere come MOSS e WSS funzionano insieme è quello di vedere il grafico a torta della Figura 1. Le aree in verde rappresentano il servizio fornito da WSS e dal momento che MOSS è progettato in base a WSS, l'intera torta è coperta da MOSS. MOSS in particolare offre la gestione dei portali, delle ricerche dei contenuti d'azienda, dei processi e dei moduli aziendali e delle componenti business intelligence.
Figura 1 Servizio basato su MOSS e WSS
Figura 1 Servizio basato su MOSS e WSS (Fare clic sull'immagine per ridurla)
Figura 1 Servizio basato su MOSS e WSS
Figura 1 Servizio basato su MOSS e WSS (Fare clic sull'immagine per ingrandirla)
La parte seguente di questo articolo esporrà le caratteristiche tecnologiche più importanti di MOSS e il modo in cui utilizzarle per rendere i propri utenti più produttivi.

SharePoint si unisce a Web 2.0
Web 2.0, Enterprise 2.0, applicazioni composte, contenuti community-driven, o comunque li si voglia chiamare, tecnologie Internet quali AJAX, RSS, blog e siti wiki stanno offrendo agli utenti un maggiore controllo sui propri contenuti, un maggiore controllo sulla propria collaborazione e un maggiore controllo sulle modalità con cui i dati arrivano fino a loro. Inoltre gli utenti vogliono l'interattività di Windows unita alla facilità di impiego e di utilizzo fornita dal Web. Ma esportare concetti propri di Internet in un ambente aziendale presenta nuove problematiche. È possibile, per esempio, verificare e dare credito alla fonte che fornisce il servizio? E questo si integra in maniera impeccabile con l'infrastruttura esistente?
MOSS 2007 offre nuove caratteristiche e migliora la piattaforma di collaborazione esistente tramite funzionalità integrate per la gestione dei documenti e per i meccanismi di avviso e aggiungendo nuove funzionalità come i blog (vedi Figura 2), i siti wiki e una sezione Web per la pubblicazione e la ricezione di feed RSS. Quando si utilizza Microsoft Office Outlook® 2007, è possibile eseguire una sincronizzazione bidirezionale tra Outlook e Microsoft SharePoint dei dati utili alla collaborazione come calendari, attività e contatti. Se si desidera modificare un contatto o spostare un appuntamento di lavoro, è possibile eseguire la modifica sia in Outlook sia in SharePoint e le modifiche apportate appariranno automaticamente anche nell'altro programma.
Figura 2 MOSS 2007 supporta Blog and siti Wiki
Figura 2 MOSS 2007 supporta Blog and siti Wiki (Fare clic sull'immagine per ridurla)
Figura 2 MOSS 2007 supporta Blog and siti Wiki
Figura 2 MOSS 2007 supporta Blog and siti Wiki (Fare clic sull'immagine per ingrandirla)
Outlook supporta anche la disponibilità offline delle proprie librerie di documenti. È possibile effettuare modifiche dei documenti anche quando si è disconnessi dalla rete e sincronizzarli una volta ritornati online.
Inoltre MOSS offre la possibilità di controllare e applicare gli obblighi di conformità ai contenuti community-driven, cosicché tali nuove funzionalità non richiedono ai clienti di rinunciare alla facilità di gestione e alla sicurezza.
Una delle più importanti innovazioni di MOSS è l'accresciuta personalizzazione del portale. MOSS presenta un My Site riorganizzato che sfrutta pienamente la funzionalità di un sito SharePoint. Gli utenti hanno la possibilità di creare elenchi, librerie di documenti o siti secondari a partire da My Site e personalizzare la consultazione di questi siti sia per uso personale sia per l'utilizzo da parte del proprio gruppo di lavoro. My Site fornisce inoltre sezioni Web per l'organigramma societario e il reperimento dei dipendenti, compresi avvisi di modifiche nei dati dei propri colleghi, come il numero di telefono, la posizione, l'indirizzo dell'ufficio o altre informazioni. La figura 3 mostra un My Site personalizzato di MOSS.
Figura 3 My Site supporta diverse caratteristiche SharePoint-Centric
Figura 3 My Site supporta diverse caratteristiche SharePoint-Centric (Fare clic sull'immagine per ridurla)
Figura 3 My Site supporta diverse caratteristiche SharePoint-Centric
Figura 3 My Site supporta diverse caratteristiche SharePoint-Centric (Fare clic sull'immagine per ingrandirla)

Enterprise Search
Quando i dischi fissi erano di piccole dimensioni, era facile ricordare dove fossero archiviati i dati. Da quando gli archivi si sono ampliati enormemente, e con essi le capacità potenzialmente illimitate degli utenti di riempirli, le funzioni di ricerca sono diventate una componente fondamentale di ogni architettura dell'informazione. MOSS fornisce funzionalità avanzate per la ricerca aziendale negli archivi, progettate sulla piattaforma di ricerca precedentemente fornita con SPS 2003. MOSS 2007 continua a supportare la ricerca in archivi di condivisione file, siti Web, Exchange Server e Lotus Notes, ognuno dei quali è considerato un archivio di dati non strutturati.
Ciò che SPS non forniva facilmente era la capacità di ricerca all'interno di archivi strutturati quali applicazioni line-of-business o database relazionali. Inoltre, archivi strutturati e non strutturati sono integrati dai dati personali e dalla competenza di ogni dipendente che partecipa all'organizzazione. MOSS può effettuare ricerche in archivi strutturati mediante una nuova tecnologia denominata Business Data Catalog (BDC) e può ricercare personale e competenze mediante la innovativa Knowledge Network.
La tecnologia BDC consente di connettersi, passare in rassegna ed effettuare ricerche in sistemi che mettono a disposizione i loro dati mediante provider ADO.NET sia mediante servizi Web. È possibile creare un file di configurazione XML che contenga tutte le informazioni necessarie per connettersi al sistema che si desidera. Questa procedura può includere il nome del server o dell'endpoint, la modalità con cui enumerare e recuperare gli oggetti da quel sistema, qualsiasi filtro supportato dal sistema back-end e la modalità con cui i dati back-end dovranno essere mappati in dati SharePoint. In questa maniera è possibile utilizzare le funzionalità di ricerca aziendale comprese in SharePoint per ricercare dati BDC come se si accedesse agli archivi di altre aziende.
SharePoint crea per ogni azienda, in maniera predefinita, una pagina di profilo dal sistema back-end. È possibile personalizzare queste pagine di profilo nello stesso modo in cui si fa con SharePoint. La figura 4 mostra una pagina di profilo personalizzata che restituisce sia dati aziendali che altre informazioni. Inoltre, SharePoint comprende un numero di sezioni Web di dati aziendali che consentono di visualizzare dati BDC data nelle pagine di profilo e anche, in alternativa, di filtrare su quelle pagine dati basati sulle informazioni personali disponibili. Dal momento in cui i dati aziendali sono mappati su SharePoint, è possibile accedere ai propri dati tramite gli elenchi SharePoint utilizzando il nuovo tipo di colonna Business Data. Non c'è più possibilità di errori di immissione e di pulitura dei dati dal momento che i dati riportati negli elenchi provengono dall'autorevole sistema back-end.
Figura 4. Estrarre dati aziendali da servizi back-end a pagine SharePoint
Figura 4. Estrarre dati aziendali da servizi back-end a pagine SharePoint (Fare clic sull'immagine per ridurla)
Figura 4. Estrarre dati aziendali da servizi back-end a pagine SharePoint
Figura 4. Estrarre dati aziendali da servizi back-end a pagine SharePoint (Fare clic sull'immagine per ingrandirla)
La rete di conoscenza fornisce un ottimo modo di ricercare personale e competenze. Le reti sociali all'interno dell'azienda sono il modo in cui oggi si svolge l'attività lavorativa. In molti casi i dipendenti potrebbero essere più produttivi se fossero in grado di trovare persone esperte in grado di supportarli nella risoluzione dei problemi aziendali sui quali lavorano. Tuttavia se la ristretta cerchia dei colleghi più prossimi non possiede la conoscenza di cui necessita, è probabile che la ricerca si interrompa. Con la rete di conoscenza, invece di fare affidamento solo sulla rete sociale, il software aiuta a costruire una mappa sociale della organizzazione e consente di ricercare all'interno di quella rete sociale. È possibile ordinare i risultati a seconda della distanza sociale e filtrarli attraverso metadati come la posizione lavorativa o il dipartimento.
Come ogni soluzione che si occupa delle persone e delle loro informazioni personali, la rete di conoscenza offre un ottimo modello di sicurezza e privacy in modo tale che gli utenti debbano scegliere di partecipare alla rete e possano controllare cosa viene visualizzato in quali parti della rete. La rete di conoscenza sfrutta sia le informazioni provenienti dal proprio server sia dal My Site di SharePoint. Possiede anche un componente client che si inserisce in Outlook e nel software di Instant Messaging per rilevare e-mail e contatti. Dal lato cliente, è possibile controllare quando si verifica il rilevamento delle informazioni e che cosa viene pubblicato sul profilo server. Una delle lacune dei sistemi di competenze è la capacità di mantenere aggiornati i dati che riguardano il personale. Con la rete di conoscenza, il software mantiene aggiornate tutte le informazioni permettendo contemporaneamente agli utenti di controllare la visibilità e l'accessibilità dei propri dati.

Gestione contenuti aziendali
Oltre alla semplice gestione di documenti, MOSS 2007 fornisce una solida gestione dei contenuti aziendali mediante l'aggiunta di un supporto per la gestione di archivi, contenuti Web e moduli elettronici. Le funzionalità di gestione archivi di SharePoint comprende la possibilità di creare un archivio gestito che si accordi con le proprie esigenze di conformità, quali la conservazione dei contenuti, la revisione, l'applicazione di codici a barre e l'etichettatura. Mediante una stretta integrazione con Exchange Server, l'archivio dei documenti ha la possibilità di contenere messaggi e-mail come documenti ufficiali in aggiunta alle informazioni create e archiviate in SharePoint. Le funzionalità di gestione dei registri consente di eseguire ricerche legali fra i propri registri e diritti legali in modo da poter fare a meno dei propri criteri di conformità (in base alle procedure legali che richiedono di mantenere il contenuto più a lungo di quanto stabilito da tali criteri).
Nell'ambito della gestione dei contenuti Web, MOSS 2007 sostituisce ora Microsoft Content Management Server 2002. Con tale cambiamento, SharePoint può ora soddisfare ogni bisogno in merito al Web, da intranet a extranet fino ai siti Internet. Possedendo tutte queste funzionalità in SharePoint, è necessario supportare una sola tecnologia su tutta la propria infrastruttura. SharePoint supporta la distribuzione dei contenuti in modo da poter avere due separati server di prova e di distribuzione. Inoltre SharePoint ha reso la personalizzazione dei siti ancora più semplice con il supporto delle pagine master ASP.NET 2.0. In aggiunta, per scenari multilingue, SharePoint supporta le varianti del sito e perciò un singolo sito può avere varianti multiple e consentire un reindirizzamento automatico a seconda delle impostazioni della lingua nel browser dell'utente che apre la pagina.
Per i moduli elettronici, SharePoint aggiunge una nuova funzionalità denominata InfoPath® Forms Services, che consente la conversione dei propri moduli InfoPath in moduli elettronici. Il procedimento comporta la creazione di moduli InfoPath, la spunta di una casella nella tabella di progettazione che segnali l'eventuale utilizzo di funzioni che non consentono la conversione Web e il salvataggio del modulo in una directory sicura entro un elenco SharePoint. A questo punto gli utenti potranno utilizzare un normale browser per vedere, modificare e inviare i moduli.
Una richiesta importante degli utenti di SPS 2003 era quella di potenziare le funzionalità del flusso di lavoro, dal momento che molti clienti desideravano incorporare i flussi di lavoro nei contenuti che archiviavano in SharePoint. MOSS fa molto più che migliorare il flusso di lavoro e aggiunge le innovative funzionalità Windows Workflow Foundation di .NET Framework 3.0. Ciò permette di costruire flussi di lavoro su Windows Workflow Foundation e di far funzionare quei flussi di lavoro in SharePoint. Oltre a comprendere Windows Workflow Foundation, SharePoint include anche un numero ulteriore di flussi di lavoro, come l'approvazione e la firma di documenti. La figura 5 mostra come configurare un flusso di lavoro aggiuntivo in MOSS.
Figura 5. Impostare flussi di lavoro in MOSS
Figura 5. Impostare flussi di lavoro in MOSS (Fare clic sull'immagine per ridurla)
Figura 5. Impostare flussi di lavoro in MOSS
Figura 5. Impostare flussi di lavoro in MOSS (Fare clic sull'immagine per ingrandirla)
MOSS permette di controllare i propri flussi di lavoro in modo da poter osservare lo stato dell'attività corrente nonché la cronologia. Inoltre SharePoint si integra con i clienti Office e in questo modo gli utenti finali possono avviare flussi di lavoro dalle proprie applicazioni Office. In aggiunta essi possono rendersi conto di quando un flusso di lavoro è stato loro assegnato e hanno la possibilità di completare quelle attività senza dover continuamente abbandonare le proprie applicazioni Office.
Le potenzialità di MOSS si estendono anche ai portali di informazioni commerciali. Normalmente questi portali contengono report, grafici e tabelle di dati che è possibile ordinare e filtrare e illustrazioni che possono aiutare a rappresentare visivamente lo stato dei dati. Con MOSS, per produrre portali di informazioni commerciali si tratta semplicemente di creare una nuova pagina utilizzando un modello di pannello personale Business Intelligence (BI). Il pannello personale BI comprende, in maniera predefinita, un elenco di indicatori di prestazione chiave (KPI) e Excel® Web Access Web Part.
L'elenco KPI è un nuovo tipo di elenco contenuto in MOSS che consente di connettersi a fonti di informazioni come Excel, SQL Server™ Analysis Services, elenchi SharePoint, o a informazioni inserite manualmente, e permette di rilevare i propri KPI a partire da queste fonti di dati. Con l'elenco KPI, è possibile visionare i valori correnti, i valori obiettivo, le tendenze e lo stato utilizzando indicatori visivi.
Excel Web Access fa parte dei Excel Services di MOSS, una versione sul lato server di Excel che permette di calcolare e visualizzare le proprie informazioni Excel mediante un browser. Per utilizzare Excel Services, è possibile pubblicare i propri fogli di calcolo direttamente dall'applicazione desktop Excel su un percorso sicuro in SharePoint. Gli utenti possono a questo punto visionare da Excel il foglio di calcolo o i grafici utilizzando il proprio browser. Inoltre, se sono presenti parametri o filtri, gli utenti possono servirsi di queste funzionalità per modificare la lettura da parte del browser delle informazioni Excel.

Per saperne di più
Sebbene siamo stati in grado di esporre soltanto una piccola parte delle funzionalità di MOSS, è disponibile un'ampia gamma di risorse online per proseguire l'apprendimento. Il nostro suggerimento è di cominciare dallo SharePoint Team Blog e dallo SharePoint Server TechCenter.

Thomas Rizzo è direttore del gruppo SharePoint di Microsoft. In precedenza, ha lavorato nei gruppi SQL Server ed Exchange Server. Tom è anche autore di quattro libri. È possibile contattarlo all'indirizzo thomriz@microsoft.com.
© 2007 Microsoft Corporation e CMP Media, LLC. Tutti i diritti riservati. È vietata la riproduzione completa o parziale senza autorizzazione.


 SharePoint: Sette nuove funzioni che potenziano la sicurezza in SharePoint
SharePoint Adam Robert Buenz

Sette nuove funzioni che potenziano la sicurezza in SharePoint
Panoramica:
  • Provider di autenticazione
  • Funzioni di crittografia nativa
  • Mapping e aree di accesso alternativi
  • Information Rights Management

La realizzazione di misure di sicurezza efficaci in relazione al tuo ambiente Microsoft Office SharePoint Server (MOSS) 2007 può ridurre in modo notevole le spese generali di gestione, consentendo al tempo stesso ai team di
collaborare e condividere dati aziendali in un ambiente sicuro. Le innovative funzioni di autenticazione incorporate in MOSS 2007 consentono di impiegare standard di sicurezza basati su Web attraverso provider di autenticazione personalizzata, un'autenticazione basata su moduli di stile Internet e registrazioni uniche Web (SSO). Inoltre, MOSS propone una gestione granulare dei diritti di risorse aziendali come i file di 2007 Microsoft® Office, funzioni di crittografia nativa e obblighi ridotti di autenticazione del client.
Ecco le sette funzioni di sicurezza fornite da MOSS 2007 e rapidamente operative.
1. Provider di autenticazione plug in Un provider di autenticazione è un componente che consente di verificare le credenziali dell'utente. La configurazione del provider di autenticazione per il tuo ambiente MOSS rappresenta una significativa decisione sulla sicurezza se installi l'autenticazione SharePoint® stile Internet. MOSS continua a supportare i metodi di autenticazione basati su Windows® disponibili in precedenti versioni di SharePoint, compresa l'autenticazione di base e integrata (aggiungendo anche l'autenticazione del digest) per risolvere gli utenti in identità tangibili di Windows. Tuttavia la risoluzione in un'identità Windows non rappresenta l'unica possibilità offerta. Si possono anche impiegare più provider di autenticazione in modo che gli utenti interni possano accedere tramite autenticazione Windows, mentre gli utenti esterni accederanno con un provider plug in separato.
MOSS è costruito su ASP.NET 2.0, che consente l'uso di provider di autenticazione plug in. In questo modo è possibile usare directory configurabili per archiviare informazioni sugli utenti, purché esista un provider di appartenenza ASP.NET 2.0 (e provider di ruolo opzionale) corrispondente all'archivio di dati dei membri. Le credenziali del provider plug in possono essere soggette ad hashing, crittografia o memorizzazione in testo semplice in base ai valori di nodo salvati nel file machine.config, corrispondente al provider di appartenenza. Con MOSS sono disponibili vari provider di appartenenza, tra cui un provider LDAP V3 (fornito con MOSS), un provider SQL Server™ e un provider Active Directory® disponibile con ASP.NET 2.0.
I provider di appartenenza e ruolo implementabili non si limitano a quelli forniti. Mediante l'architettura di appartenenza ASP.NET 2.0, è possibile creare provider personali che adottano archivi di appartenenza come database di Microsoft Access™ o Oracle, file XML o persino file di testo normali. Un provider di autenticazione personale eredita dall'interfaccia ASP.NET MembershipProvider, che a sua volta eredita dalla classe ProviderBase (vedere figura 1).
Figura 1 Gerarchia delle classi di appartenenza .NET
Figura 1 Gerarchia delle classi di appartenenza .NET
L'adozione dell'autenticazione ASP.NET 2.0 (al contrario dell'autenticazione Windows) con MOSS implica alcuni fattori di cui tener conto. Il più significativo per molti utenti è la riduzione dell'interoperazione del client Microsoft Office, dovuta al fatto che la comunicazione di servizio Web tra MOSS e i client Office è stata originariamente pensata per essere utilizzata con identità Windows.
Inoltre, alcuni servizi MOS (in particolare quelli correlati al richiamo e all'indicizzazione del contenuto) devono utilizzare un account Windows anche quando si servono di un provider plug in. Tale vincolo, unito all'uso di un tipo di autenticazione che non si risolve in un'identità Windows, impone la creazione di un'area MOSS aggiuntiva che impiega l'autenticazione Windows (tratterò più avanti l'argomento aree).
Se la tua infrastruttura PKI è sotto mandato e si basa su meccanismi di sicurezza quali smart card in cui le chiavi o i certificati pubblici sono su client, è generalmente necessario che l'identità Windows sia risolta in relazione all'approvazione e all'autorizzazione del certificato client corretto, secondo l'implementazione. A sua volta, questa esigenza richiede la creazione di un'area MOSS aggiuntiva o altre configurazioni di autenticazione.
2. L'autenticazione basata su moduli e Single Sign-On Web Un altro straordinario meccanismo di autenticazione presente in MOSS 2007 è quello su moduli basato su ASP.NET 2.0. Le precedenti versioni di SharePoint consentivano questo processo attraverso l'estensione personalizzata di Internet Server Application Programming Interface (ISAPI) o l'adozione dell'estensione CustomAuth ISAPI presente nell'IIS 6.0 Toolkit. Anche con queste soluzioni, SharePoint richiede l'account per risolversi di nuovo in un'identità utente Windows, limitando la distribuzione basata su perimetro.
L'autenticazione MOSS basata su moduli utilizza provider di ruolo e autenticazione plug in per attivare meccanismi di sicurezza stile Internet che non impongono ai clienti un prompt di accesso NT di vecchio tipo. Al contrario, è possibile costruire un processo di accesso personalizzato attento alle esigenze dei tuoi utenti. Per proteggere ulteriormente il processo di autenticazione, i cookie di autenticazione dei moduli e i ticket di autenticazione sono criptati e antimanomissione.
Il provider di identità con modulo non deve necessariamente avere una residenza locale e può in effetti inserirsi in un sistema esterno di gestione delle identità che, a sua volta, fornisce la convalida delle credenziali degli utenti. Si tratta di una funzionalità nota come single sign-on Web, che adotta un modulo HTTP per l'autenticazione esterna. In tale scenario, è possibile confederare le identità della tua organizzazione con i partner aziendali consentendo loro di usare i propri accessi organizzativi per autenticarsi nella tua implementazione MOSS.
3. Crittografia delle stringhe di connessione delle applicazioni MOSS Inserire preziose informazioni di stringa di connessione in testo semplice in un file web.config non rappresenta una prassi valida in termini di sicurezza. Le informazioni rivelate potrebbero consentire agli utenti di creare un'istanza di oggetto al server del database SQL e di manomettere dati importanti. Tuttavia, usando la funzionalità intrinseca di ASP.NET 2.0, puoi crittografare i dati mediante una delle due tecnologie a disposizione: Crittografica Windows Data Protection API (DPAPI) o crittografia RSA. DPAPI si avvale della funzionalità crittografica integrata di Windows per crittografare e decifrare tramite la chiave del server MOSS. La crittografia RSA consente di usare algoritmi di chiavi pubbliche, ma offre un overhead aggiunto di contenitori necessari adatti per le chiavi crittografiche.
Nel caso di MOSS 2007 (e più in particolare per il provider di autenticazione plug in ASP.NET 2.0 Server SQL) dovresti crittografare il nodo delle <stringhe di connessione> in testo cifrato, dato che rappresenta il punto più vulnerabile alle violazioni della sicurezza.
<connectionStrings>
<add name="MembershipConnectionString"
     connectionString="connectionString"/>
</connectionStrings>
La crittografia DPAPI è relativamente semplice ed è la più facile da implementare poiché si serve della crittografia di chiavi nativa della macchina, sia per la directory virtuale che fisica. A livello di programmazione, esistono altri modi per ottenere questa implementazione, ma il meno doloroso è quello di utilizzare i seguenti comandi in un prompt:
aspnet_regiis.exe -pe section -app MOSS_virtual_directory -prov provider

aspnet_regiis.exe -pef section MOSS_physical_directory -prov provider
Dato che la preoccupazione primaria riguarda solo l'implementazione della crittografia per il nodo delle stringhe di connessione, basterà crittografare solo quella specifica sezione, precisando il relativo parametro:
aspnet_regiis.exe -pef "connectionStrings" "C:\Inetpub\wwwroot\WssVirtual " -prov "Provider"

aspnet_regiis.exe -pe "connectionStrings" -app "/MOSSAppinstance" -prov "Provider"
Dopo l'implementazione, i nodi di informazioni sensibili saranno sostituiti da valori cifrati ben formati in termini XML.
<connectionStrings confiProtectionProvider=
"EncryptionProvider">
<EncryptedData>
<CipherData>
<CipherValue>XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
</CipherValue>
<CipherData>
</EncryptedData>
</connectionStrings>
Analogamente all'architettura complessiva di MOSS, questo modello è plug in quanto puoi creare i tuoi provider di crittografia per gestire testo cifrato per i file di configurazione MOSS importanti, ad esempio web, config o machine.config; inoltre non sarai costretto a limitarti alla crittografia RSA o DPAPI.
L'adozione della crittografia implica delle conseguenze. L'uso della chiave del computer locale per la crittografia, ti consente di usare questo nodo di configurazione solo sul server MOSS su cui è stato creato; altrimenti il processo crittografico fallirà. Se un intruso riesce ad accedere al server, potrà recuperare la chiave del computer e decifrare la stringa di connessione. Il processo di decifrazione inciderà anche, in modo lieve, sulle prestazioni delle applicazioni.
4. Mapping e aree di accesso alternativi Il mapping di accesso alternativo (AAM) è vitale, in particolare se si installano più ubicazioni di ingresso nell'ambiente SharePoint. AAM consente semplicemente di specificare diversi URL attraverso i quali gli utenti possono accedere a un unico sito fisico (vedere lo schema nella figura 2). AAM può indirizzare gli utenti allo stesso percorso fisico diretto al tuo sito MOSS, ma con diversi provider di autenticazione e diverse politiche sulla sicurezza delle applicazioni Web. Inoltre AAM compensa l'uso di domini diversi, proxy inversi e altri meccanismi di reindirizzamento di URL. L'URL che MOSS utilizzerà è già mappato per te come impostazione predefinita, ma tale possibilità si può estendere ad altri URL creati appositamente da uno SharePoint architect per gestire metodi diversi di ingresso. AAM è indispensabile per assicurare che l'appropriato mapping di URL interno e pubblico funzioni nel modo corretto.Un provider di autenticazione di SQL server
Approfondiamo l'implementazione del provider di autenticazione plug in ASP.NET 2.0 SQL Server. Questo provider si serve di un'autenticazione basata su moduli con stringhe di connessione web.config crittografate, un'implementazione molto diffusa per distribuzioni perimetrali (extranet) MOSS.
Il primo passaggio dell'attivazione del provider plug in SQL server consiste nel verificare che il database relativo all'archiviazione di credenziali dell'utente sia stato creato nell'appropriata istanza SQL server, in modo che il provider del servizio avrà un'ubicazione da utilizzare per archiviare i dati di appartenenza. Per effettuare tale operazione, esegui il seguente comando dalla casella di dialogo Esegui o un prompt di comando:
%WINDIR%\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql
Apparirà una procedura guidata di SQL Server che ti consentirà di configurare il database per archiviare i tuoi dati di appartenenza.
È molto probabile che tu non abbia ancora installato il provider di appartenenza relativo all'archiviazione del database, pertanto configura SQL Server per i servizi di applicazione, in modo che crei un nuovo database. In assenza di un database, puoi aggiungere le informazioni pertinenti (se il consolidamento dei database è un obiettivo organizzativo).
La stringa di connessione SQL si connetterà a questa istanza SQL, pertanto devi installare il database per usare l'autenticazione SQL Server (vedere la figura A). A questo punto, userò un nome utente e una password in testo semplice, dato che in un secondo momento del processo di installazione, illustrerò come usare la funzionalità di crittografia nativa ASP.NET 2.0 per nascondere questi dati di connessione personali in testo cifrato per evitarne l'eventuale sfruttamento.

Creazione del modulo di accesso
L'autenticazione basata su moduli viene usata frequentemente per siti rivolti all'esterno che risiederanno in una rete perimetrale e saranno pubblicati a disposizione di tutti gli utenti Internet. Tenendo conto di questo particolare, per la creazione di una raccolta di siti extranet è preferibile scegliere un modello MOSS di presenza Internet. Grazie a tale modello, non dovrai creare manualmente un modulo di accesso. Se stai ampliando un sito esistente o intendi implementare un modulo di accesso personalizzato, è facile crearne uno utilizzando Microsoft Visual Studio® 2005. Si richiede una codifica relativamente modesta.
Inizia aprendo la directory fisica della raccolta di siti come sito Web attraverso Visual Studio; di solito si trova in un'ubicazione di questo genere:
C:\Inetpub\wwwroot\wss\VirtualDirectories\<GUID>
Il primo passaggio consiste nell'aggiungere una pagina default.aspx, che costituisce il documento predefinito nelle impostazioni del server virtuale IIS. Utilizza il comando Aggiungi elemento in Esplora soluzioni, quindi aggiungi un controllo di accesso alla superficie del modulo Web appena creato mediante la casella degli strumenti di Visual Studio.
Figura A Installazione dell'autenticazione di SQL Server
Figura A Installazione dell'autenticazione di SQL Server (Fare clic sull'immagine per ridurla)
Figura A Installazione dell'autenticazione di SQL Server
Figura A Installazione dell'autenticazione di SQL Server (Fare clic sull'immagine per ingrandirla)

Figura B Scelta del provider di autenticazione mediante la schermata di gestione delle applicazioni (Fare clic sull'immagine per ridurla)
Figura B Scelta del provider di autenticazione mediante la schermata di gestione delle applicazioni
Figura B Scelta del provider di autenticazione mediante la schermata di gestione delle applicazioni (Fare clic sull'immagine per ingrandirla)
Nella stessa pagina, verifica che il provider utilizzato per l'autenticazione nella sezione dei provider di appartenenza sia specificato come AspNetSqlMembershipProvider e che il nome del gestore di ruoli sia AspNetSqlRoleProvider. Indica dove desideri che gli utenti finali abbiano l'accesso anonimo sfogliando /_layouts/setanon.aspx e selezionando l'intero sito oppure l'impostazione di sicurezza più confacente alle tue esigenze.
Per effettuare modifiche significative cambia web.config. Verifica che l'elemento <autenticazione> sia impostato in modo da usare l'elemento <moduli>. Di solito è configurato automaticamente quando passi dall'autenticazione Windows all'autenticazione con moduli. Si tratta di una parte importante del processo di accesso, dato che trasferirà i dati sul ticket di autenticazione degli utenti che, a sua volta, verificherà le credenziali degli utenti nella pagina postback attraverso i metodi di autenticazione ASP.NET 2.0. Tuttavia, web.config non è ancora al corrente della connessione SQL al tuo archivio di utenti. Pertanto, devi aggiungere l'inserimento della stringa di connessione per effettuare la connessione al database di appartenenza.
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Server=SQLserver;
Database=aspnetdb;uid=username;
pwd=password;" providerName="System.Data.SqlClient" />
</connectionStrings>
Effettua le stesse modifiche nel file web.config file del sito di amministrazione centrale, per favorire l'uniformità dei tipi di autenticazione e per garantire che PeoplePickerWildCard si risolva in AspNetSqlMembershipProvider, in modo che i controlli di ricerca per l'aggiunta di utenti sappiano il percorso corretto su cui operare.
Dato che apporti modifiche ai file XML back-end, MOSS richiede il reset di IIS. Dopo esserti collegato al database SQL Server, puoi navigare nel sito Web con facilità, a meno che non abbia alcun proprietario di raccolte di siti negli amministratori del contenuto. In WAT, apri la scheda Sicurezza e aggiungi un utente, quindi assegnagli il privilegio di amministratore di raccolte di siti passando alla gestione siti SharePoint e aggiungendo i relativi utenti negli Amministratori di raccolte di siti. Il nome deve essere esatto, a causa delle modifiche al nodo peoplepicker in web.config effettuate in precedenza.
Infine, crittografa le stringhe di connessione con DPAPI, aprendo la finestra di dialogo esegui ed eseguendo:
aspnet_regiis.exe -pef "connectionStrings"
"C:\Inetpub\wwwroot\WssVirtual\<GUID> "
£prov "DataProtectionConfigurationProvider"
Se l'operazione si conclude correttamente, riceverai un messaggio di conferma.

Figura 2 Mapping e aree URL
Figura 2 Mapping e aree URL (Fare clic sull'immagine per ridurla)
Figura 2 Mapping e aree URL
Figura 2 Mapping e aree URL (Fare clic sull'immagine per ingrandirla)
In MOSS, le aree costituiscono una nuova funzione che consente un maggiore controllo sul mapping di siti fornito da AAM. Le aree consentono di mappare vari provider di autenticazione nello stesso percorso fisico e nello stesso contenuto MOSS in funzione dei mapping di URL AAM attraverso cui gli utenti sono collegati al contenuto. Se si specificano mapping di URL AAM, è consigliabile (ma non obbligatorio) che l'area sia legata a un meccanismo di autenticazione. Un mapping di URL AAM in un'area non definita nella pagina dei provider di autenticazione utilizzerà l'impostazione di sicurezza relativa all'area predefinita.
Le aree richiedono un minimo di pianificazione, considerato che incideranno sul modo in cui le persone saranno autenticate e instradate attraverso il portale da vari punti di ingresso URL. Quando si estende una nuova applicazione Web, è possibile specificare la zona che si intende utilizzare nella sezione URL di bilanciamento del carico delle impostazioni (vedere la figura 3). È consigliabile collocare il tuo URL più accessibile all'esterno (ad esempio, l'URL che pensi di pubblicare in Internet) nell'area predefinita, dato che sarà l'URL che SharePoint utilizzerà se non riesce a definire esattamente in che area ti trovi.
Figura 3 Configurazione delle aree MOSS
Figura 3 Configurazione delle aree MOSS (Fare clic sull'immagine per ridurla)
Figura 3 Configurazione delle aree MOSS
Figura 3 Configurazione delle aree MOSS (Fare clic sull'immagine per ingrandirla)
All'interno di ogni area, puoi stabilire un vincolo con la politica globale sulla sicurezza delle applicazioni Web, che definisce le impostazioni delle autorizzazioni per gli utenti presenti nell'area stessa. In questo modo, gestirai a livello centrale le modifiche di autorizzazioni su larga scala. Le applicazioni Web includono di solito diversi siti rientranti in varie raccolte. La gestione delle autorizzazioni di tali siti può diventare problematica quando aumenta la dimensione e la complessità delle applicazioni. MOSS 2007 consente politiche globali sulla sicurezza che associano le impostazioni sulla sicurezza (ad esempio, l'accesso completo, l'accesso completo in lettura, l'accesso negato in scrittura o l'accesso negato a tutto) a un utente o a un gruppo specifico nell'ambito dell'applicazione. Tali politiche possono prevalere sulle impostazioni di autorizzazione granulare di MOSS e possono essere gestite dall'interfaccia dell'amministrazione centrale SharePoint. Occorre quindi pianificare con attenzione la configurazione.
In sintesi, il tuo sito rivolto all'esterno potrebbe avere due URL definiti nelle tue impostazioni AAM: uno riservato agli utenti aziendali e un altro destinato agli utenti esterni. Ciascuno avrà un suo URL, ad esempio contoso per gli utenti interni e extranet.contoso.com per i partner esterni attendibili. Entrambi mapperanno lo stesso contenuto, ma ogni soggetto potrà accedere al sito attraverso la propria area, con il proprio provider di autenticazione e la sua politica sulla sicurezza delle applicazioni. La configurazione dell'area intranet sull'URL interno consente agli utenti interni di risolversi nelle proprie identità Windows autenticate dal dominio, mentre i partner esterni accederanno attraverso l'area extranet, che consentirà loro di usare le credenziali di utenti della propria organizzazione. Sfruttando la capacità di associazione delle politiche sulla sicurezza delle applicazioni Web alle aree, diventa possibile attribuire a tutti gli utenti esterni attendibili l'accesso completo in lettura, invece di impostarlo in base ad ogni oggetto.
5. Gestione dei contenuti per una collaborazione sicura Il blocco delle tue raccolte di siti SharePoint impone all'utente di gestire solo le informazioni a cui tu lo autorizzi ad accedere. I nuovi meccanismi flessibili di autorizzazione ti consentono un maggior controllo sui vari tipi di informazioni aziendali memorizzati nel tuo ambiente MOSS.
MOSS 2007 ti consente di associare un'identità a uno specifico oggetto, indipendentemente dal fatto che sia una raccolta di siti, un singolo sito, una libreria documenti, una sottocartella, un elenco, un singolo documento o un elemento di elenco. In tal modo si impongono controlli granulari di accesso e l'appartenenza esplicita all'elemento, negando l'accesso e adeguando l'interfaccia dell'utente in modo che gli utenti non conoscano gli elementi a cui non possono accedere. In MOSS, questa funzionalità è denominata Item Level Security (ILS) o Secured Objects (SO). Le autorizzazioni per oggetti MOSS sono essenzialmente gerarchiche e consentono la loro scalabilità da singoli oggetti (es. elementi di elenco) fino a elementi maggiori (es. un elenco o una libreria documenti). È possibile implementare l'eredità di autorizzazione, che consente agli oggetti figli di livello inferiore di ereditare facoltativamente le autorizzazioni dagli oggetti padri di livello superiore. Esistono 33 autorizzazioni univoche predefinite assegnabili a un utente o a un gruppo SharePoint e ciascuna è associabile a un oggetto. Si possono comunque creare altri livelli di autorizzazione.
Ad esempio, nell'ambito di un sito di gestione di progetti, puoi consentire solo agli sviluppatori e ai project manager l'accesso a materiale di sviluppo sensibile, come le specifiche di progettazione e le tecniche di codifica, presenti in documenti Microsoft Word memorizzati in una libreria documenti. Le autorizzazioni alla libreria erediteranno per impostazione predefinita dalle autorizzazioni del sito, ma possono subire modifiche che consentano l'accesso solo a sviluppatori e project manager oppure la lettura di ciascun documento Word solo a un determinato team di project manager e sviluppo. Invece, si può rendere integralmente pubblico il materiale non sensibile, a livello di elemento, cartella o libreria documenti.
È possibile specificare le autorizzazioni anche in base a elementi di evento, quali le date di scadenza del progetto in un elenco di eventi, in modo da garantire che solo determinati membri possano vedere eventi specifici. Inoltre, la funzionalità ILS estende i risultati di ricerca, che forniranno solo oggetti che mappano di nuovo nel contesto di sicurezza della persona che effettua la ricerca stessa. Di fatto, tutti questi controlli costruiranno su misura l'interfaccia utente in relazione all'esclusivo contesto dell'utente.
L'architettura di gestione delle autorizzazioni è ampiamente migliorata in MOSS 2007. È possibile impostare autorizzazioni sia per i gruppi SharePoint che per i gruppi di dominio, oltre che a livello individuale. Vari gruppi sono inseriti per impostazione predefinita, in particolare Proprietari (che hanno il controllo completo), Visitatori (che hanno i diritti di collaboratori) e i Membri (che hanno i diritti di lettura). I singoli soggetti o i gruppi di dominio possono essere inseriti in questi gruppi predefiniti o in gruppi creati appositamente e gestiti a livello di raccolta di siti, con vari livelli di autorizzazione univoci.
Quando si creano gruppi basati su ruoli, si possono creare gruppi "sviluppatori" e "project manager". Quindi si possono attribuire autorizzazioni granulari che, ad esempio, consentiranno agli sviluppatori di caricare la documentazione di codifica pertinente e che assegneranno ai project manager autorizzazioni di lettura e approvazione, in modo che possano valutare e avallare i documenti. L'appartenenza ai gruppi resta coerente in tutta la raccolta di siti e, pertanto, i gruppi creati si possono riutilizzare in più siti di progetto.
6. L'integrazione del Single Sign-On plug in In un tipico ambiente informatico, l'utente può accedere a una serie di applicazioni di terzi, ciascuna dotata di propri criteri di autenticazione, con la conseguenza di vari problemi di sicurezza e impegno in relazione alle password. Il servizio SSO MOSS contribuisce alla riduzione del problema fornendo una cache back-end crittografata delle credenziali degli utenti per il mapping ai sistemi line-of-business connessi. Questa possibilità è utile nel recupero di informazioni critiche per l'azienda che sono visualizzabili attraverso meccanismi MOSS, quali Business Data Catalog (BDC) o SharePoint DataView Web Parts (DVWP).
Il provider SSO MOSS è plug in, analogamente a vari provider di altre funzioni architettoniche di applicazione trattate; è possibile specificare un provider SSO unico oltre quello fornito con MOSS (SpsSsoProvider), anche se nell'ambiente è possibile registrare un solo provider SSO alla volta per sistema line-of-business.
7. Information Rights Management (IRM) La protezione dei dati a livello di client, anche quando le informazioni aziendali sono acquisite offline, è una notevole preoccupazione per le aziende che tendono a trattare i dati di natura sensibile, in particolare se devono conformarsi a norme quali il progetto di legge del Senato della California N. 1386, Sarbanes-Oxley (Conformità SOX) e la legge sulla trasferibilità e la responsabilità assicurativa sulla salute (HIPAA). La gestione dei diritti sui dati sul lato server (IRM) si integra con i repository MOSS per fornire una soluzione comune costruita sull'infrastruttura di gestione dei diritti Windows (WRM). IRM consente di controllare rigorosamente i dati aziendali imponendo limitazioni all'accesso a livello di documenti, indipendentemente dall'ubicazione del documento e dal soggetto che tenta di aprirlo. Un'implementazione IRM comune consente solo la visualizzazione o la stampa autorizzata, ma si può estendere ad altri scenari, ad esempio la richiesta di verifica delle credenziali dell'utente dopo un certo periodo, il divieto per gli utenti di caricare risorse che non sfruttano IRM, una scheda di scadenza programmata che farà cessare la politica di restrizioni, l'associazione a una politica globale dell'organizzazione per le autorizzazioni IRM.
La funzionalità IRM viene fornita da un protector e con MOSS 2007 ne sono installati diversi: un protector è un'applicazione che gestisce il processo crittografico per un tipo di file; in genere tutti i file che si memorizzano in MOSS sono già dotati di protector (I file di sistema Microsoft Office sono supportati in modo nativo, insieme ai formati di file Open XML). Analogamente ad altri provider presenti in MOSS, l'architettura di applicazione è comunque plug in, per consentire di implementare protector personalizzati per altri tipi di file.
Il primo passaggio dell'implementazione IRM consiste nel verificare che siano soddisfatti tutti i requisiti nell'ambiente MOSS. È necessario che WRM Services Client sia installato su tutti i server Web MOSS front-end e Microsoft Rights Management Services (RMS) deve avere la connettività con i server Web MOSS front-end. Quindi occorre specificare il server RMS per consentire a MOSS di integrarsi attraverso l'amministrazione centrale di SharePoint, utilizzando l'impostazione predefinita in Active Directory o specificando l'ubicazione.
IRM lavora direttamente con le strutture di archiviazione di dati SharePoint (es. librerie documenti) per aggiornare le autorizzazioni. Quando un utente esplora una libreria documenti consentita da IRM e tenta di scaricare un documento, MOSS associa le autorizzazioni configurate per la libreria documenti al documento (vedere figura 4). Ne risulta un mapping 1:1 tra MOSS e le autorizzazioni sul documento, che traduce i ruoli SharePoint correlati al documento in livelli di autorizzazione IRM sul documento stesso.
Figura 4 Transizione di autorizzazioni IRM da una libreria documenti
Figura 4 Transizione di autorizzazioni IRM da una libreria documenti (Fare clic sull'immagine per ridurla)
Figura 4 Transizione di autorizzazioni IRM da una libreria documenti
Figura 4 Transizione di autorizzazioni IRM da una libreria documenti (Fare clic sull'immagine per ingrandirla)
Il documento è crittografato a livello locale per la protezione offline e viene aggiornato in questo stato fino al suo nuovo caricamento nella libreria documenti. Quando un documento viene caricato, viene aggiornato in una forma non crittografata in modo che il raccoglitore SharePoint possa indicizzarne il contenuto (anche se nessun account di utente potrà accedere al contenuto nella forma non crittografata).
MOSS 2007 fornisce una serie di nuove funzioni utili per realizzare una sicurezza efficace nella tua organizzazione senza aggiungere molti costi generali di gestione. Non basta: le funzioni sono estremamente flessibili e consentono un'ampia personalizzazione che garantisce l'accesso agli utenti solo alle informazioni necessarie. Vedere un semplice esempio nell'intestazione laterale "Un provider di autenticazione di SQL server".

Adam Robert Buenz è SharePoint Architect e Developer per ARB Security Solutions LLC (sharepointsecurity.com). Si occupa in particolare di ambienti di collaborazione incentrati sulla sicurezza. Puoi contattarlo all'indirizzo adam@sharepointsecurity.com.


 SharePoint: Trovalo con SharePoint Enterprise Search
SharePoint Matt Hester

Trovalo con SharePoint Enterprise Search
Panoramica:
  • Architettura di una soluzione per la ricerca aziendale
  • Indicizzazione ed esecuzione di query per dati aziendali
  • Dati line-of-business e conoscenze del personale

Probabilmente passi troppo tempo a preoccuparti di fattori come il tempo di attività e la disponibilità del server, gli aggiornamenti software e la protezione. Ma anche se la tua infrastruttura funziona alla perfezione, anche se tutte le applicazioni e
i file sono disponibili in rete, è possibile che i tuoi utenti stiano perdendo in produttività. Certo: i dati necessari sono disponibili; ma quanto tempo impiegano per trovarli?
Molto è stato fatto per aiutare gli utenti a gestire il sovraccarico di informazioni. Grazie agli strumenti di ricerca, trovare una determinata informazione nascosta tra tutti i dati archiviati nel tuo sistema è diventato più semplice (si veda il mio articolo dell’agosto 2006 "Find Anything with Windows Desktop Search"). Ma che dire di tutti i dati disponibili sui portali, archiviati nelle condivisioni e integrati nelle applicazioni aziendali, per non parlare delle preziose informazioni archiviate nelle menti dei singoli dipendenti? Sono informazioni di vitale importanza per i tuoi utenti; ne hanno bisogno per svolgere il loro lavoro e devono poterne usufruire in modo rapido per prendere decisioni d’affari in modo puntuale e accurato. Prova ad immaginare quanto tempo è necessario perché uno dei tuoi utenti riesca a trovare e a raccogliere le informazioni diffuse in rete. Pensa ora all’effetto potenziale che questa perdita di tempo ha sulla bottom-line della tua azienda.
Hai bisogno di diminuire la quantità di tempo che i tuoi utenti impiegano per reperire le informazioni archiviate all'interno dell'azienda. Come fai? La risposta è semplice: utilizzando un motore di ricerca che fornisca funzionalità di ricerca aziendale.
Le soluzioni di ricerca aziendali consentono di reperire le informazioni archiviate in un'intera organizzazione. Sia che cerchi i dati archiviati sul desktop, quelli al sicuro in una pagina intranet o ancora i dati integrati in un’applicazione line-of-business o custoditi nella mente di qualcuno, uno strumento di ricerca aziendale è quello che ci vuole (non temere: non dovrai installare alcun chip nel cervello dei tuoi utenti).
Una soluzione di ricerca aziendale unisce la ricerca desktop alle funzionalità di ricerca rapida in intranet. In definitiva, uno strumento di ricerca aziendale deve essere in grado di eseguire ricerche combinate, tali da accedere a fonti dei dati multiple mediante un'unica query. L’utente dispone di un’unica interfaccia da cui accede alla query. In realtà la query viene inviata a diversi motori di ricerca; in seguito i risultati vengono visualizzati in un'unica soluzione.
Nel presente articolo illustrerò come Microsoft® Office SharePoint® Server 2007 (MOSS 2007), la nuova generazione delle soluzioni SharePoint di Microsoft, fornisca un potente motore di ricerca che consentirà di ridurre drasticamente gli archivi dati della propria organizzazione. MOSS 2007 presenta numerosi miglioramenti rispetto alle versioni precedenti, componenti completamente rinnovati, insieme ad alcune nuove funzionalità. Vorrei illustrare alcuni dei suoi componenti fondamentali, come ad esempio l’indicizzazione, la propagazione, la pertinenza e le fonti contenuto, soffermandomi sul contributo da essi fornito nell’offrire agli utenti le migliori funzionalità di ricerca aziendale.

Ricerche nella tua azienda con SharePoint
La ricerca aziendale è disponibile in quattro versioni contraddistinte da alcune differenze fondamentali: Microsoft Office SharePoint Server 2007 edizione Search Standard, Microsoft Office SharePoint Server 2007 edizione Search Enterprise, Microsoft Office SharePoint Server 2007 Standard, and Microsoft Office SharePoint Server 2007 Enterprise.
La principale differenza tra le prime due edizioni e le edizioni complete SharePoint Server consiste nel fatto che le prime due non includono la funzionalità di ricerca personale (che include inoltre l'integrazione con la Knowledge Network per MOSS 2007), il Business Data Catalog o il centro di ricerca avanzato con schede personalizzabili. La figura 1 illustra le differenze fondamentali.
Figure 1 Principali differenze tra le quattro offerte per la ricerca (Close Figure 1)

 | Microsoft Office SharePoint Server 2007 edizione Search Standard | Microsoft Office SharePoint Server 2007 edizione Search Enterprise | Microsoft Office SharePoint Server 2007 Standard | Microsoft Office SharePoint Server 2007 Enterprise
Indici | 40 file supplementari (estendibili) | 40 file supplementari (estendibili) | 40 file supplementari (estendibili) | 40 file supplementari (estendibili)
Supporta inoltre la ricerca in condivisioni di file, siti Web, siti SharePoint, cartelle Exchange Public, file database Notes |  |  |  |
Supporta la ricerca negli archivi documenti di terze parti |  |  |  |
Supporta la ricerca di personale e specialisti |  |  |  |
Supporta la ricerca su fonti di dati strutturate |  |  |  |
Fornisce controllo di accesso protetto ai contenuti |  |  |  |
Fornisce interfaccia utente avanzata per centro di ricerca |  |  |  |
Limite documenti | 400,000 | Illimitato | Illimitato | Illimitato
L'interfaccia utente presenta una serie di nuove funzionalità, comprese le funzionalità di assistenza alla ricerca "Forse cercavi...". Componente fondamentale per i motori di ricerca su Internet, tale funzionalità avvisa in caso di errori nella digitazione di un comune termine di ricerca (cfr. figura 2). L’interfaccia comprende anche l’evidenziazione della parte rilevante trovata e il supporto completo per le "migliori corrispondenze". Ma questo è solo un assaggio delle nuove funzionalità di ricerca.
Figura 2 Il nuovo 'Forse cercavi...'. Funzionalità di ricerca con SharePoint
Figura 2 Il nuovo 'Forse cercavi...'. Funzionalità di ricerca con SharePoint (Fare clic sull'immagine per ridurla)
Figura 2 Il nuovo 'Forse cercavi...'. Funzionalità di ricerca con SharePoint
Figura 2 Il nuovo 'Forse cercavi...'. Funzionalità di ricerca con SharePoint (Fare clic sull'immagine per ingrandirla)

Ricerca delle competenze personali
Una delle nuove offerte più interessanti è la possibilità di cercare persone dotate di conoscenze e competenze in un determinato settore. Ciò consente agli utenti di accedere e sfruttare le conoscenze possedute dai dipendenti dell'organizzazione, consentendo di fare un bel passo avanti verso la riduzione delle montagne di archivi.
Per far questo, l'indicizzazione e la ricerca possono essere effettuate su qualsiasi directory LDAP, compresi gli elenchi di distribuzione Active Directory® Active Directory e i gruppi di utenti SharePoint. In realtà, MOSS non esegue la ricerca direttamente nelle directory; per consentire la ricerca agli utenti le informazioni LDAP devono essere importate in MOSS (le ricerche possono essere svolte inoltre sull'intera infrastruttura dell’azienda).
I risultati della ricerca possono essere raggruppati in base alla “distanza sociale” del singolo individuo, vale a dire la distanza che intercorre tra la posizione dell’utente (si presume che un addetto alle vendite non necessiti di chiamare il CFO ) e gli interessi comuni. La figura 3 mostra i risultati di una ricerca di persone.
Figura 3 Ricerca di colleghi dotati di conoscenze pertinenti
Figura 3 Ricerca di colleghi dotati di conoscenze pertinenti (Fare clic sull'immagine per ridurla)
Figura 3 Ricerca di colleghi dotati di conoscenze pertinenti
Figura 3 Ricerca di colleghi dotati di conoscenze pertinenti (Fare clic sull'immagine per ingrandirla)

Ricerca di dati aziendali
SharePoint consente inoltre di indicizzare svariate tipologie di dati aziendali. Sono comprese anche le applicazioni line-of-business (quali ad esempio le applicazioni HR, CRM, i rapporti spese e così via). Per tradizione, tale tipo di dati è difficilmente accessibile al di fuori della normale interfaccia delle applicazioni line-of-business, il che ostacola la gran parte dei dipendenti nel reperimento e nell’utilizzo dei dati.
Da oggi, però, la ricerca MOSS è in grado di recuperare i dati da qualsiasi applicazione line-of-business, come ad esempio un database relazionale o un database Lotus Notes, accessibile via ADO.NET o servizi Web. La sua particolarità è che non è necessario inserire un codice personalizzato. Grazie alla funzionalità di Business Data Catalog, reperire i dati aziendali desiderati diventa semplice come accedere ad un qualsiasi documento o sito Web. La funzionalità di catalogo dati aziendale può essere semplicemente integrata nella gestione della proprietà, mentre gli ambiti personalizzati vengono forniti dal centro di ricerca.

Pertinenza effettiva
Naturalmente, perché sia ritenuta efficace, ogni nuova funzionalità deve produrre risultati accurati. Fortunatamente, MOSS ha effettuato alcuni notevoli miglioramenti per quanto riguarda la pertinenza. Tuttavia, prima di illustrare tali miglioramenti, è fondamentale capire in che modo la pertinenza all’interno dell’azienda si distingua dalla pertinenza in Internet.
Potresti chiederti perché le ricerche in intranet non possano sfruttare gli stessi strumenti (e quindi la stessa precisione) delle ricerche in Internet. In poche parole, si tratta di due ambienti notevolmente diversi con esigenze e requisiti differenti. Tali differenze si possono suddividere in tre categorie principali: protezione, struttura e gerarchia.
La protezione fa riferimento alla semplicità della natura di Internet rispetto all’azienda. I dati disponibili in Internet sono accessibili comunemente in modo anonimo; l’indicizzazione e la ricerca non richiedono un'autenticazione né la funzione di security trimming. L’ambiente aziendale, al contrario, deve aderire ad un rigido modello di protezione, che comprende il filtraggio dei risultati in modo da corrispondere alle autorizzazioni dell’utente.
Gli effetti della struttura riguardano la densità. Internet è denso e ricco di informazioni, con siti che spesso si collegano ad altri siti per integrare i propri contenuti. Nell’azienda, invece, i collegamenti sono utilizzati in genere per la navigazione e la struttura risulta quindi molto meno densa.
La struttura dei collegamenti è connessa in qualche modo al fattore della gerarchia dei siti. In genere, su Internet non esiste una gerarchia dei siti e sono pochi i siti di livello superiore. Al contrario, le reti intranet aziendali sono di norma pianificate e di natura gerarchica. Generalmente, anche quando un’impresa dispone di più livelli principali, esiste un unico portale principale per l’organizzazione.
Tali differenze fondamentali cambiano il modo in cui la soluzione di ricerca aziendale indicizza i dati e restituisce i risultati. MOSS 2007 mira a soddisfare in maniera migliore le diverse esigenze dell’azienda. Presenta un nuovo motore di classificazione che è stato sviluppato a partire dalla tecnologia esistente, unita al lavoro della ricerca Microsoft e del team MSN®. È stato possibile aumentarne la pertinenza creando una serie di algoritmi di pertinenza in grado di accumulare informazioni sia interne che esterne riguardanti i documenti e i dati line-of-business passati in rassegna. Durante l’indicizzazione dei dati aziendali, vengono analizzati oltre 200 documenti ai quali sono applicati gli algoritmi per rilevare la lingua, estrarre i metadati ed eseguire l’analisi del testo. I nuovi algoritmi, messi a punto specificatamente per soddisfare le esigenze dei dati aziendali e delle applicazioni line-of-business, migliorano notevolmente la precisione dei risultati.
Nei calcoli della pertinenza sono compresi svariati tag di metadati. Ecco alcuni degli elementi presi in considerazione:
  • Click Distance Browsing: distanza dai siti autorevoli (una distanza minore tende ad essere più pertinente).
  • Anchor Text Hyperlinks: i link del testo fungono da annotazioni sull'obiettivo. Inoltre tendono ad essere estremamente descrittivi.
  • Gli URL ad un livello superiore della gerarchia tendono ad essere più pertinenti.
  • URL Matching Direct trova le corrispondenze nel testo dell'URL.
  • L’estrazione di metadati consente di estrarre automaticamente i titoli e gli autori dal documento, qualora questi non siano presenti.
  • Il rilevamento automatico della lingua consente di creare delle preferenze per i risultati nella propria lingua.
  • Rilevamento del tipo di file: alcune tipologie di file tendono ad essere più pertinenti (per esempio, i file PPT sono spesso più pertinenti dei file XLS).
  • Analisi del testo: la classificazione tradizionale dei testi si basa su fattori quali i termini corrispondenti, la frequenza dei termini e le varianti.

Come funziona l'indicizzazione?
MOSS 2007 ha apportato notevoli miglioramenti al funzionamento del servizio di indicizzazione e alla gestione dei contenuti. Per iniziare, basta specificare se le fonti contenuto sono costituite da server SharePoint, siti Web, condivisioni di file, cartelle Exchange Public, database Lotus Notes o applicazioni line-of-business. L’esperienza amministrativa complessiva nel campo dell’indicizzazione è stata ottimizzata, consentendo di scegliere liberamente come, quando e cosa indicizzare su fonti di contenuti multipli. Ciò è possibile grazie a delle regole di ricerca che consentono di specificare i percorsi da escludere o da includere. È possibile persino configurare il modo in cui il crawler segue i collegamenti dell’URL. Un registro integrato offre una panoramica completa del numero di siti analizzati e del modo in cui vengono indicizzati.
L’indice è simile alla tecnologia di indicizzazione utilizzata in Windows® Desktop Search. L’indice è composto da due componenti principali: un indice dei contenuti e un archivio di proprietà. Si tratta di una maniera estremamente efficiente di elaborare le informazioni. L’indice dei contenuti include sia il testo contenuto nei file, che un indice inverso delle parole presenti nell'indice dell’azienda. Il database dell’archivio di proprietà è fondamentale per l’elaborazione dei risultati. Il database dell’archivio di proprietà contiene tutte le ulteriori proprietà dei metadati (autore, data di creazione, tipo di documento, ecc.) riguardanti tutti i documenti dell'archivio. Da un punto di vista strutturale, l'archivio di proprietà consiste in una tabella delle proprietà e dei rispettivi valori. Ciascuna riga della tabella corrisponde ad un determinato documento presente nell’indice del testo completo. L’archivio di proprietà gestisce e applica la protezione a livello dei documenti, raccolta nel momento in cui il documento viene indicizzato.
Il processo di indicizzazione e archiviazione comincia con il motore di indicizzazione, incaricato di analizzare la fonte dei contenuti. Il motore comincia ad eseguire l’analisi dopo aver verificato la presenza di un gestore del protocollo adatto a leggere le fonti dei contenuti. Una volta caricato il corretto gestore del protocollo per l'origine contenuti, il gestore del protocollo e i filtri indice (IFilters) necessari estraggono e filtrano gli elementi presenti nell’origine contenuti. Il filtro indice è un componente aggiuntivo che consente al motore di indicizzazione di aprire, leggere e indicizzare i contenuti di nuove tipologie di file che altrimenti non sarebbe in grado di indicizzare completamente. I filtri indice estraggono il testo e i metadati da ciascun documento, per poi inviare nuovamente il flusso al motore di indicizzazione.
Le proprietà del documento vengono archiviate nell’archivio di proprietà e il testo effettivo del documento viene inserito nell’indice dei contenuti. Poco prima che questo avvenga, il motore di indicizzazione elimina i termini “non significativi”. Il motore elabora le informazioni utilizzando anche gli wordbreaker e gli stemmer allo scopo di razionalizzare i dati, consentendo così una migliore esecuzione della query (la funzione di wordbreaking suddivide il testo in parole e frasi, mentre gli stemmer generano le forme flesse di una data parola).
Il motore di indicizzazione utilizza la propagazione continua, consentendo all'indice di costituirsi quasi immediatamente. Grazie alla propagazione continua, l’indice viene costituito anche se il processo di ricerca è eseguito nelle fonti dei contenuti. Tale innovazione consente un notevole miglioramento nei risultati quasi immediati su SharePoint Portal Server 2003, nel quale le ricerche svolte in contenuti di grandi dimensioni potevano richiedere giorni e l’indice veniva propagato solo una volta completata la ricerca.

Come funziona una query?
Quando l’utente inserisce una query o un'applicazione personalizzata richiama l'indice, il motore di query comincia ad elaborare la richiesta. Inizialmente passa la query ad un wordbreaker impostato nella lingua selezionata. Se non è possibile identificare la lingua, viene avviato un wordbreaker neutrale. Dopo aver suddiviso la query, il motore passa le informazioni a uno stemmer (se la funzione è attivata) per l'ulteriore elaborazione. La procedura a due fasi migliora la pertinenza e l’efficacia dei risultati forniti dalla query.
Nel caso la query specifichi delle informazioni inerenti la proprietà, viene controllato innanzitutto l'indice dei contenuti per trovare delle corrispondenze rispetto ai documenti presenti nell’archivio di proprietà; in seguito vengono ricontrollate le proprietà nella query per accertare la corrispondenza individuata. Il motore di query esegue un livello supplementare di filtraggio per eliminare i risultati ai quali l'utente non è autorizzato ad accedere. I risultati corrispondenti vengono restituiti in un elenco, ordinati in base alla pertinenza. La figura 4 mostra come tutti i componenti di indicizzazione e di query siamo compatibili tra loro.
Figura 4. Architettura dell’ambiente di ricerca aziendale MOSS 2007
Figura 4. Architettura dell’ambiente di ricerca aziendale MOSS 2007 (Fare clic sull'immagine per ridurla)
Figura 4. Architettura dell’ambiente di ricerca aziendale MOSS 2007
Figura 4. Architettura dell’ambiente di ricerca aziendale MOSS 2007 (Fare clic sull'immagine per ingrandirla)

Gestione avanzata
Gli amministratori potranno gestire in modo più semplice l’ambiente di ricerca. Un insieme avanzato di strumenti comuni destinato agli utenti finali e agli amministratori consente di ridurre la complessità dovuta ai diversi punti di connessione presenti nella piattaforma. Il motore di ricerca trae enormi vantaggi dal nuovo modello di gestione contenuto in MOSS 2007 (la figura 5 mostra la pagina principale utilizzata per la modifica delle impostazioni di ricerca).
Figura 5 Configurazione delle impostazioni di ricerca
Figura 5 Configurazione delle impostazioni di ricerca (Fare clic sull'immagine per ridurla)
Figura 5 Configurazione delle impostazioni di ricerca
Figura 5 Configurazione delle impostazioni di ricerca (Fare clic sull'immagine per ingrandirla)
Sono stati migliorati anche gli ambiti che consentono di controllare le diverse funzionalità di ricerca. Tali ambiti permettono di eseguire con facilità una ricerca entro una fonte di contenuti, consentendo così di gestire l'indice in parti più piccole. In SharePoint Portal Server 2003, tali ambiti sono connessi alle fonti dei contenuti, rendendole meno flessibili e difficili da gestire. In MOSS 2007, gli ambiti sono separati dalle fonti dei contenuti, il che apporta un grado maggiore di flessibilità. È possibile definire gli ambiti sulla base delle proprietà dei contenuti arbitrari quali URL, tipo o autore. È possibile anche unire degli ambiti per ottenere più regole, ad esempio tutti i documenti tecnici cerati da un determinato autore.
Naturalmente, nel caso in cui un amministratore intenda migliorare le prestazioni del motore di ricerca, sarà fondamentale comprendere l'utilizzo corrente dell'indice. Una delle migliori aggiunte al set di strumenti amministrativo è la funzione di query reporting. Tale funzionalità supplementare consente di reperire in modo rapido informazioni relative all'andamento del volume di query, alle query più frequenti, alle frequenze di clic, alle query con nessun risultato e così via. Il query reporting è in grado di fornire dettagli a livello di sito e a livello dei provider dei servizi principali. La figura 6 mostra un esempio di report. Le informazioni possono essere esportate Microsoft Excel® per ulteriori analisi e per il controllo dei dati.
Figura 6 Query Report in MOSS 2007
Figura 6 Query Report in MOSS 2007 (Fare clic sull'immagine per ridurla)
Figura 6 Query Report in MOSS 2007
Figura 6 Query Report in MOSS 2007 (Fare clic sull'immagine per ingrandirla)

Protezione e privilegi
Come già menzionato, il motore di query filtra i risultati in modo che l'elenco visualizzato dall'utente contenga i documenti ai quali l'utente è autorizzato ad accedere (in SharePoint Portal Server 2003, l'utente ha a disposizione dei collegamenti che potrebbe non essere autorizzato a seguire). Per quanto riguarda i filtri di protezione, è necessario precisare che MOSS 2007 non filtra le ricerche sul Web. Non è possibile filtrare i siti Web perché il protocollo http non è in grado di leggere le informazioni di controllo di accesso. Inoltre MOSS 2007 non consente di filtrare il catalogo dei dati aziendali o le ricerche del personale.
MOSS 2007 rispetta gli elenchi di controllo di accesso (ACL) preesistenti, garantendo la protezione dei documenti presenti nell'indice. È una delle principali differenze rispetto a molti altri strumenti di ricerca. A differenza di alcuni motori di ricerca, che richiedono l'utilizzo di un file config per impostare manualmente le autorizzazioni sui file, MOSS 2007 consente di sincronizzarsi con le autorizzazioni correnti.
L'indice è in grado di riflettere rapidamente le modifiche verificatesi in ACL e relative al singolo documento. Supponiamo ad esempio che sia archiviato nell'indice un foglio di calcolo Excel e che l'ACL relativo al documento sia stato modificato per risultare limitato. L’amministratore può indicizzare e analizzare una seconda volta il singolo documento e il filtro di protezione si avvierà immediatamente (se necessario, il documento potrà essere completamente rimosso dall'indice).
Inoltre, i singoli documenti possono ricevere delle autorizzazioni uniche o essere impostati in modo tale da ereditare le impostazioni di autorizzazione dalla libreria documenti o dalla directory principale. Ciò semplifica notevolmente il processo di selezione del gruppo o dei singoli autorizzati a visualizzare, modificare e salvare i documenti.
Dei miglioramenti si sono avuti anche nell'ambito dell'autenticazione e della gestione delle registrazioni. Da oggi la cache protetta delle credenziali è estensibile, il che consente a MOSS di accettare singoli sistemi di caching delle credenziali di registrazione provenienti da fonti di terze parti o componenti aggiuntivi dotati di codice personalizzato. Inoltre l’autenticazione principale è in grado di accettare sistemi di terze parti. Questi due miglioramenti sono basati sul nuovo modello di provider ASP.NET, che consente l’utilizzo di altri servizi directory.

Personalizzazione
MOSS 2007 offre una serie di opzioni per la modifica dell'interfaccia utente. L'interfaccia utente può essere personalizzata mediante numerosi strumenti già utilizzati per modificare siti Web. Sono presenti inoltre alcuni nuovi strumenti, quali ad esempio Office SharePoint Designer, che consente di creare delle Master Page (un semplice metodo per la creazione di siti sponsorizzati). La figura 7 mostra la modifica di una pagina dei risultati della ricerca.
Figura 7 Personalizzazione dello stile della pagina dei risultati
Figura 7 Personalizzazione dello stile della pagina dei risultati (Fare clic sull'immagine per ridurla)
Figura 7 Personalizzazione dello stile della pagina dei risultati
Figura 7 Personalizzazione dello stile della pagina dei risultati (Fare clic sull'immagine per ingrandirla)
MOSS 2007 fornisce due tabelle supplementari per l’interfaccia del centro di ricerca: Tutti i siti e personale. È possibile inserire semplicemente delle tabelle supplementari che riflettano le diverse tipologie di informazioni consultate più frequentemente dai vostri utenti. Ad esempio puoi fornire un accesso diretto ad una qualsiasi delle applicazioni, dei database o persino dei servizi directory della tua azienda. È persino possibile correlare le tabelle agli ambiti. Questo è utile per creare delle tabelle di ricerca contestualizzate su determinati contenuti. Si tenga presente che le edizioni "search only" non supportano la personalizzazione delle tabelle di ricerca.

Riepilogo
Come si è potuto vedere, MOSS 2007 offre alcuni nuovi miglioramenti interessanti per le funzionalità di ricerca aziendale e consente ai propri utenti di essere più efficienti e produttivi. Per maggiori informazioni, confrontare Microsoft Office SharePoint Server TechCenter.

Matt Hester è presentatore di TechNet per il gruppo Microsoft Across America. Per assistere alle sue presentazioni dal vivo, visita il sito www.technetevents.com/mhester. Consulta il suo blog all'indirizzo blogs.technet.com/matthewms.


 SharePoint: Una potente amministrazione da riga di comando per SharePoint
SharePoint Todd Klindt

Una potente amministrazione da riga di comando per SharePoint
Panoramica:
  • Configurazione di SharePoint con STSADM
  • Attività amministrative di scripting quotidiane
  • Attività STSADM avanzate

Pensa a come la gente utilizza Windows o Microsoft Office. Alcuni utenti sono mouse-dipendenti e utilizzano il puntatore per esplorare menu e barre degli strumenti mentre eseguono normali attività. Altri si trovano a loro agio
con la tastiera ed usano con rapidità tasti noti e tasti di scelta rapida. Ci sono quasi sempre diversi modi di eseguire una stessa attività.
Un'interfaccia grafica è certamente semplice da utilizzare, ma può diventare complicata per attività che richiedono la continua ripetizione di una stessa azione. Alcune cose sono più semplici da fare con la tastiera. Se utilizzi SharePoint® per l'amministrazione, probabilmente hai già sperimentato che cosa significhi essere bloccati dall'interfaccia grafica. Ma SharePoint offre davvero un modo più efficace di svolgere le proprie attività.
L'interfaccia principale per la gestione dei servizi Windows® SharePoint (WSS) e Microsoft® Office SharePoint Server 2007 (MOSS) è l'amministrazione centrale basta su GUI. Ma SharePoint comprende anche uno strumento da riga di comando per un'amministrazione più efficace. Questo strumento, STSADM.exe, fornisce tutte le funzionalità dell'amministrazione centrale SharePoint, ma con la flessibilità che molti amministratori richiedono. Con questo articolo offrirò un corso intensivo sull'utilizzo di STSADM per la gestione di WSS e MOSS. Fornirò inoltre alcuni suggerimenti sulla configurazione del tuo ambiente di lavoro e tratterò di alcuni normali comandi STSADM. Ti mostrerò anche alcuni comandi avanzati STSADM che ti faranno sembrare un asso del computer, se mai si presentasse l'occasione di usarli.

Introduzione
Se non ti è mai capitato di incappare in STSADM, è perchè si trova in qualche modo nascosto. In Windows SharePoint Services 2.0, è preimpostato in c:\program files\common files\microsoft shared\web server extensions\60\bin. Il percorso predefinito nella versione 3.0 è c:\program files\common files\microsoft shared\web server extensions\12\bin.
Per rendere più semplice l'accesso a questo strumento, utilizzo due diversi approcci. Primo, aggiungo semplicemente la directory alla variabile di ambiente di percorso. In questo modo posso utilizzare STSADM dovunque mi trovi nel file system. Ciò, tuttavia, non è sempre possibile. Il mio secondo approccio consiste nella creazione di un collegamento a CMD.EXE e nell'impostazione del percorso STSADM come directory iniziale. Ma perchè non creare un collegamento diretto a STSADM? Questo tentativo non avrebbe successo visto che STSADM non è interattivo. Di conseguenza, con un collegamento diretto a STSADM, sarà presentata una rapida visualizzazione del suo utilizzo e quindi il tutto sparirà.
Quando si esegue STSADM, è necessario essere un membro del gruppo Administrators locale sul server Web ed è necessario eseguire localmente l'applicazione. Ciò significa che non è possibile usare STSADM per amministrare in modalità remota un server SharePoint.
Per capire quali operazioni è possibile eseguire con STSADM, digitare stsadm.exe -help in un prompt di comandi. Assicurarsi di controllare questo elenco dopo avere effettuato update o aggiornamenti rapidi a SharePoint poiché possono essere aggiunte nuove operazioni. Esiste anche una comoda guida alle operazioni stsadm.exe disponibile sul sito go.microsoft.com/fwlink/?LinkId=77516.

Elementi di base di STSADM
Cominciamo a dare un'occhiata ad alcuni dei comandi che è possibile usare per modificare l'installazione di SharePoint esistente. È possibile utilizzare STSADM per aggiungere funzionalità a SharePoint e per modificare le impostazioni di configurazione.
STSADM usa il parametro -o seguito dall'operazione che si intende svolgere. Digitare solo STSADM -operationname, non avrà alcun effetto. Se, per esempio, si desidera aggiungere modelli di sito alla propria installazione, è possibile utilizzare il seguente comando:
Stsadm -o addtemplate -filename <filename of the template>
-title <title of template> -description <description of template>
Oppure, se si vuole aggiungere un Web Part Package, è possibile servirsi di questo comando:
Stsadm -o addwppack -filename <filename of the Web Part Package>
Per i dettagli sullo svolgimento di qualunque operazione, immettere semplicemente l'operazione senza parametri e STSADM visualizzerà l'input a lui necessario. Anche il comando STSADM -help operationname fornirà informazioni sull'utilizzo.
Quando si tratta di gestire i modelli, è possibile utilizzare l'operazione enumtemplates per visualizzare quali modelli sono stati aggiunti e deletetemplate per rimuovere qualsiasi modello installato. Allo stesso modo esistono comandi per lavorare con i pacchetti di Web Part. È possibile usare l'operazione enumwppacks per visualizzare l'elenco dei pacchetti di Web Part installati su ogni server virtuale o applicazione Web, e l'operazione deletewppack per rimuovere qualunque di questi sia stato aggiunto.
STSADM ha anche due operazioni che riguardano le impostazioni SharePoint: setproperty e getproperty. Eseguendo qualunque delle due operazioni si otterrà un elenco delle proprietà che sarà poi possibile visualizzare o modificare. Proprio come STSADM, l'elenco cambia con gli update e gli aggiornamenti rapidi. Tuttavia ci sono alcune proprietà che sono più utili di altre. La figura 1 elenca alcune delle proprietà che si potrebbero voler impostare una volta installato SharePoint, comprese le più comuni proprietà che so essere maggiormente richieste dagli amministratori SharePoint.
Figure 1 Impostazione delle proprietà utili di SharePoint (Close Figure 1)

Proprietà | Funzione
Avvisi attivati | Attiva o disattiva gli avvisi per il proprio server virtuale o per la propria applicazione Web.
Avvisi limitati | Definisce se gli utenti sono limitati ad impostare un certo numero di avvisi sul server virtuale o sull'applicazione Web.
Numero massimo di avvisi | Se sono impostati dei limiti di avvisi, questa funzione definisce il numero massimo di avvisi che un utente può impostare.
Visibilità dell'icona "New" | Stabilisce per quanto tempo l'icona "New" debba apparire accanto ad elementi aggiunti al sito Web, come per esempio gli avvisi.
Avvisi immediati di lavoro | Specifica l'intervallo per il controllo da parte di SharePoint degli avvisi immediati da inviare. L'impostazione predefinita per SharePoint 2.0 è di cinque minuti. Qui è possibile regolare l'intervallo di tempo. Un aumento della frequenza di controllo implica un carico maggiore sul proprio Web e sui server del database; è bene quindi agire con prudenza se si intende modificare questa proprietà.
Avvisi giornalieri di lavoro | Specifica l'ora in cui inviare gli avvisi giornalieri. SharePoint 2.0 è preimpostato per inviarli tra le 22:00 e le 06:00. Se si è in contatto con utenti che non appartengono al medesimo fuso orario, è possibile che si desideri regolare questa proprietà.
Avvisi settimanali di lavoro | Il modello viene probabilmente visualizzato qui. Questa funzione programma l'invio di avvisi settimanali.
Diamo una rapida occhiata all'utilizzo di una di queste proprietà. Il seguente comando farà in modo che SharePoint invii avvisi immediati ogni dieci minuti:
Stsadm -o setproperty -pn job-immediate-alerts -pv "Every 10 minutes"
Ti faccio notare che ho usato -pn e -pv invece di -propertyname e -propertyvalue. Queste sono abbreviazioni accettabili quando non si vuole digitare la parola completa. Tieni inoltre presente che tutti gli esempi esposti finora in questa sezione funzionano sia con la versione 2.0 che con la versione 3.0 di Windows SharePoint Services.

Amministrazione quotidiana
L'amministrazione quotidiana di SharePoint è abbastanza semplice. Per molti amministratori SharePoint, la maggior parte delle attività quotidiane consiste nel lavoro con gli utenti e i siti. STSADM offre diverse funzionalità in grado di snellire queste attività.
Comincerò dai siti e dal Web. Per questioni di coerenza, userò il termine "sito" per riferirmi ad una raccolta di siti e il termine "Web" per riferirmi ai sottositi (noti anche come subweb). Una parte della terminologia è difficile, ma se si è coerenti con ciò che STSADM utilizza, sarà più facile trovare il comando di cui si ha bisogno.
Se si usa un'installazione di grandi dimensioni di SharePoint, è possibile che si perda molto tempo nella creazione di nuovi siti per gli utenti. Lo so perchè mi capita spesso di farlo. La creazione di nuovi siti può essere effettuata abbastanza semplicemente con l'amministrazione centrale di SharePoint. Dal momento che eseguo questa operazione molto spesso, mi sembra più rapido usare STSADM.
Io uso l'operazione createsite. È piuttosto semplice e necessita dei seguenti parametri:
  • url <url>
  • ownerlogin <DOMAIN\name>
  • owneremail <someone@example.com>
  • ownername <display name>
  • lcid <language>
  • sitetemplate <site template>
  • title <site title>
  • description <site description>
  • quota <quota template>
È possibile portarle questi parametri nel prompt dei comandi digitando stsadm -help createsite (vedi figura 2). Di questi nove parametri, gli unici campi obbligatori sono URL, ownerlogin e owneremail.
Figura 2 Parametri per la creazione di siti
Figura 2 Parametri per la creazione di siti (Fare clic sull'immagine per ridurla)
Figura 2 Parametri per la creazione di siti
Figura 2 Parametri per la creazione di siti (Fare clic sull'immagine per ingrandirla)
Se la creazione di siti diventa un'operazione di routine, è possibile fare un passo ulteriore nello snellimento della procedura usando uno script wrapper su STSADM per rendere automatica l'attività. Per esempio, per rendere automatica la creazione di siti personali, è possibile salvare il seguente script in un file di testo denominato createpersonalsite.cmd:
stsadm -o createsite -url http://localhost/users/%1 -ownerlogin contoso\%1
-owneremail %1@contoso.com -sitetemplate usersite.stp
-title "Personal site for %1" -description "Personal site for %1" -quota "500 MB"
A quel punto, per creare un sito ad uso dell'utente jsmith, sarà possibile eseguire semplicemente il seguente comando:
createpersonalsite.cmd jsmith
La creazione di siti tramite script fa risparmiare il tempo normalmente utilizzato per la digitazione e garantisce la coerenza di tutti i nuovi siti creati. L'operazione createweb fornisce la stessa funzionalità a livello Web.
In Windows SharePoint Services 2.0, l'unico metodo semplice di ottenere un elenco completo delle raccolte di siti su uno specifico server virtuale è quello di usare STSADM. Il comando enumsites elenca tutte le raccolte di siti in formato XML contenute su un server virtuale o un'applicazione Web. Questa operazione può essere combinata con un Data View Web Part per una semplice visualizzazione dell'elenco di raccolte di siti (per ulteriori informazioni confrontare l'intestazione laterale "Lavorare con un Data View Web Part").
STSADM offre un'operazione denominata deletesite che, come è facile supporre, è utile per l'eliminazione del sito. L'unica cosa che occorre fare è fornire un URL. Oppure è possibile usare il comando -deleteadaccounts per cancellare gli account nella Active Directory®. Quando si lavora con i Web si utilizzerà l'operazione deleteweb.
È possibile anche aggiungere, cancellare ed enumerare gli utenti di un sito o di un Web. Le operazioni corrispondenti sono adduser, deleteuser e enumusers. Queste operazioni sono comode se gli utenti hanno bisogno di essere aggiunti insieme ad un sito, o se si ha necessità di mantenere un elenco degli utenti che hanno accesso al sito a fini di controllo.
Quando si lavora con i Web si può usufruire di un'operazione aggiuntiva, renameweb, che consente di modificare il nome e l' URL di un Web. Per esempio, per rinominare un Web da "oldname" a "coolnewname", utilizzare il seguente comando:
Stsadm -o renameweb -url http://localhost/oldname -newname coolnewname
Questa può essere un'operazione davvero utile quando cambiano i nomi dei progetti o le unità aziendali vengono riallineate. In Windows SharePoint Services 2.0, questo è un problema complesso, dato che l'unico modo di migrare i Web è con SMIGRATE.exe, che non conserva nessuna impostazione utente come appartenenze o avvisi. Con Windows SharePoint Services 3.0, questo non è più un problema, dal momento che STSADM può fare il back up e il ripristino di Web e siti.

Backup e ripristino
Una delle operazioni più utili svolte da STSADM è il back up e il ripristino di siti e Web. Per piccole e medie installazioni, questa funzionalità può diventare l'elemento fondante di una pianificazione del ripristino d'emergenza. L'operazione di backup si spiega da sé ed è molto semplice da usare. Si tratta di indicare a STSADM soltanto di quale sito si vuole effettuare il back up e dove scrivere il file di back up, in questo modo:
Stsadm -o backup -url http://localhost -filename site.bak
Questa operazione scarica l'intera raccolta del sito nel file site.bak, il quale comprenderà l'intero contenuto del sito, come i Web, le versioni dei documenti, gli elenchi e gli utenti. Questa operazione non effettuerà il back up di nessuna delle definizioni o delle modifiche del sito effettuate a livello del file system dei propri server.
Sebbene l'operazione di back up sia importante, presenta alcuni intoppi sui quali è bene soffermarsi un attimo. Se il sito è abbastanza grande, il database dei contenuti può essere bloccato durante la procedura di backup. Ciò può impedire agli utenti l'accesso ad ognuno dei siti del database fino a quando l'operazione di back up non è stata terminata. Questo problema è stato attenuato con l'introduzione dei service pack, ma rimane comunque un punto da tenere sott'occhio quando il proprio sito aumenta di dimensioni. Durante le operazioni di back up e ripristino STSADM si serve anche di una directory temporanea del server in modo da poter controllare lo spazio su disco.
Lavorare con un Data View Web Part
È possibile abbinare il comando enumsites con un Data View Web Part così da creare un semplice modo di visualizzare un elenco di raccolte di siti. Vediamo come.
Innanzitutto, creare un'operazione pianificata che esegue:
stsadm –o enumsites –url http://localhost
>c:\inetpub\wwwroot\excludedsite\sites.xml
Assicurarsi che il file XML venga immesso in una directory pubblicata con IIS, ma non gestita da SharePoint. Quindi utilizzare Microsoft FrontPage® (o il successore di FrontPage, Microsoft Office SharePoint Designer 2007) per aggiungere un Data View Web Part a una pagina Web Part e inserirlo nell'URL del file XML.
Il Data View Web Part offre funzionalità di ordinamento, filtraggio e raggruppamento. È possibile anche trasformare il campo URL in un link che collega direttamente al sito. Se si desidera invece un elenco dei Web, l'operazione enumsubwebs fornisce un output XML dei sottositi in una raccolta di siti o di Web.

Infine, è bene tenere presente che sebbene i back up realizzati da STSADM funzionano egregiamente per siti di piccole e medie dimensioni, non accade la stessa cosa con i siti di grandi dimensioni. Per siti molto vasti (diversi gigabyte o più), le procedure di backup e ripristino possono subire dei rallentamenti.
Il ripristino di un sito è altrettanto semplice. Il comando STSADM -o restore usa un file creato da STSADM -o backup e lo scrive su un sito in SharePoint. Si tratta di un comando che consente molta flessibilità: È possibile il ripristino di un sito nella sua location originale (nel caso in cui, per esempio, il sito sia stato cancellato per errore); è possibile anche ripristinare il sito come sito differente sullo stesso server virtuale (nel caso in cui, per esempio, si voglia eseguire il test di un processo sul sito senza correre il rischio di cancellare i dati), oppure è possibile ripristinare il sito su un server del tutto diverso o su un server virtuale.
Il ripristino su un sito o un server differente, rende più semplice il ripristino di documenti singoli. Se si è effettuato il back up di un sito ed un utente necessita il ripristino di un documento, non ripristinare l'intero sito. Ciò comporterebbe la perdita di tutte le modifiche eseguite sul sito dal momento del back up. Invece è possibile ripristinare semplicemente il sito su un URL diverso, recuperare i documenti e salvarli nel loro percorso originario.
In Windows SharePoint Services 2.0, STSADM ha una limitazione abbastanza importante. Il back up viene effettuato solo per i siti, non per i Web. Le lamentele degli amministratori si fecero sentire e Microsoft le ascoltò. In Windows SharePoint Services 3.0, le operazioni di back up e ripristino possono essere eseguite anche sui Web. Vengono anche aggiunti due nuovi comandi: l'importazione e l'esportazione.
Per esportare un Web, si utilizza questo semplice comando:
Stsadm -o export -url http://localhost/web -filename backup.dat
La funzionalità di esportazione possiede opzioni utili, compreso il comando -versions switch. Questo comando permette di decidere le dimensioni dei propri file di back up, limitando le versioni dei file per cui effettuare il back up..
Per reimportare un Web sul server, utilizzare il seguente comando:
Stsadm -o import -url http://localhost/web2 -filename backup.dat
Se il sito è di grandi dimensioni, il file di backup potrebbe essere diviso in più parti. In questo caso, usare il comando STSADM -o import per il primo file e STSADM recupererà automaticamente tutti i file successivi.

Operazioni avanzate
Ora che abbiamo preso confidenza con STSADM, intendo mostrare alcune operazioni che è possibile usare per levarsi d'impaccio. La prima è un'operazione aggiunta recentemente e denominata migrateuser. La versione 2.0 non si sincronizzava con la Active Directory. Generalmente se un account viene rinominato, non può più accedere a SharePoint. In precedenza, non esisteva alcun modo di migrare l'accesso di un utente da un dominio all'altro. Prima di Windows SharePoint Services 2.0 Service Pack 2 (SP2), si era costretti a rimuovere l'utente da ogni Web e aggiungere manualmente il nuovo account.
SP2 ha introdotto una nuova API and STSADM sfrutta questa funzione. Se l'account jsmith viene rinominato jjones, è possibile utilizzare il seguente comando:
Stsadm -o migrateuser -oldlogin domain\jsmith -newlogin domain\jjones -ignoresidhistory
Dal momento che non si sta davvero realizzando una migrazione degli account, si può ignorare la cronologia Windows dell'identificatore di protezione (SID). Si noti che questo comando non richiede alcun URL. Apporta la modifica a tutti i database di contenuti, indipendentemente che siano siti o Web.
Un'altra operazione che può risolvere dei problemi è unextendvs. Se non si desidera che SharePoint generi un server virtuale o un'applicazione Web, è possibile disattivare questa funzione. Normalmente, l'operazione sarebbe stata eseguita tramite SharePoint Configuration Analyzer. Tuttavia, in una Web farm, SharePoint Configuration Analyzer necessita che tutti i server siano allo stesso livello di patch. Può capitare che un server non sia sincronizzato con il resto della farm e, per questa ragione, non potrebbe eseguire l'operazione indicata da SharePoint Configuration Analyzer. Utilizzando STSADM, invece, il seguente comando disattiverà il server virtuale:
Stsadm -o unextendvs -url http://localhost
Una volta che il server non è più presente nella Web farm, è possibile eseguire le operazioni di manutenzione.
Per amministrazione più semplice della propria Web farm, è poi possibile che si desideri che tutti i propri server abbiano SharePoint Configuration Analyzer sulla stessa porta. La porta è generata in maniera casuale all'installazione di SharePoint, ma STSADM comprende un'operazione in grado di cambiare la porta in una specificata:
Stsadm -o setadminport -port 1026
Ciò effettua tutte le modifiche del database necessarie, le modifiche IIS e ottimizza il collegamento a SharePoint Configuration Analyzer negli strumenti di amministrazione.

Conclusioni
Windows SharePoint Services è una soluzione efficace e richiede un'efficace amministrazione. STSADM offre un modi di gestire l'amministrazione di SharePoint, comprese l'automatizzazione della configurazione e delle normali attività quotidiane. In effetti, in alcuni casi è anche l'unico modo per ottenere dei risultati.

Todd Klindt è analista di sistemi presso UGS dove si diverte con SharePoint tutto il giorno... e viene pagato per questo. Occupa anche il ruolo di MVP dei servizi di Windows SharePoint Services ed è del segno dell'acquario.


 SharePoint: Wiki al lavoro
SharePoint Mauro Cardarelli

Wiki al lavoro
Panoramica:
  • Cos'è un wiki?
  • Costruire un wiki in SharePoint
  • Modificare e rilevare le modifiche

Il concetto di wiki esiste da oltre un decennio. Nella sua forma più semplice, un wiki (termine hawaiano che significa "rapido") è una destinazione online in cui gli utenti possono creare o modificare liberamente il contenuto di pagine Web
utilizzando unicamente un browser. L'obiettivo è fornire uno spazio dove i membri di una comunità virtuale possano modificare qualsiasi pagina in piena libertà, introducendo, modificando o eliminando contenuto, anche quello creato da autori precedenti. Diversamente dai blog, dedicati a uno scambio di conoscenze più strutturato e alla comunicazione da uno a molti, i wiki consentono un'esperienza di maggiore collaborazione.
Recentemente hanno destato particolare attenzione gli strumenti online di nuova generazione, battezzati Web 2.0. Si premette che si intende ridurre gli ostacoli alla creazione di contenuto: gli utenti potranno essere contemporaneamente produttori e consumatori delle informazioni online. Il fenomeno non si verifica solo in Internet ma interessa anche i firewall aziendali. Deve essere concepito come uno strumento Enterprise 2.0, in grado di favorire la creazione di contenuto da parte di tutti i dipendenti. Le tecnologie come i blog e i wiki contribuiranno parecchio al modo di pensare, archiviare e riciclare le conoscenze da parte delle aziende.
Microsoft agevolerà questa capacità di nuova generazione con l'introduzione di Microsoft® Office SharePoint® Server (MOSS) 2007, la terza versione della famosa tecnologia SharePoint. MOSS 2007 propone un'ampia funzionalità per la collaborazione e la comunicazione, tra cui l'assistenza per la creazione di blog e wiki. In questo articolo ti illustreremo come iniziare a costruire wiki con MOSS 2007.

Introduzione
Se hai lavorato con SharePoint Portal Server 2003, conoscerai bene l'utilizzo dei modelli di siti. I modelli di siti forniscono una struttura di base per la disposizione di un particolare tipo di pagina (ad esempio, un gruppo, una riunione o un evento sociale) che preimposta i segnaposto per contenuti specifici. MOSS 2007 amplia l'uso di modelli di siti introducendo una nuova raccolta di tipi di modello, che comprende anche il wiki.
La figura 1 riporta la nuova pagina di sito SharePoint, usata per creare un sito SharePoint. Nell'elenco dei modelli, puoi notare la presenza anche della voce relativa al sito wiki. Se la selezioni, puoi creare in modo rapido e veloce il tuo primo wiki. Dai un'occhiata alla figura 2, che rappresenta il rendering predefinito del wiki appena creato. La struttura di un wiki prevede che questa pagina predefinita sia la tua home page. Qui tutto è modificabile. Gli utenti con adeguata autorizzazione (la tua comunità virtuale) possono modificare questa pagina o crearne altre.
Figura 1 Selezione del modello wiki per un nuovo sito
Figura 1 Selezione del modello wiki per un nuovo sito
Figura 2 Il tuo nuovo wiki SharePoint in attesa di modifiche
Figura 2 Il tuo nuovo wiki SharePoint in attesa di modifiche (Fare clic sull'immagine per ridurla)
Figura 2 Il tuo nuovo wiki SharePoint in attesa di modifiche
Figura 2 Il tuo nuovo wiki SharePoint in attesa di modifiche (Fare clic sull'immagine per ingrandirla)
Prima di procedere, torniamo un passo indietro e parliamo di come presentare i wiki ai tuoi utenti. Ho già detto che i wiki sono presenti da qualche tempo in Internet o mediante strumenti di terzi. In prevalenza, però, l'uso di wiki è stato molto specializzato e si è diffuso con lentezza, con il passaparola. MOSS 2007 è predisposto per cambiare questa situazione, offrendo la funzionalità wiki a tutti gli utenti di intranet. È una proposta molto potente (e potenzialmente inquietante)! Come spiegare il valore di un wiki a un collega non esperto di tecnica e di Internet? Devi solo dirgli che i wiki hanno lo scopo di favorire gli scambi creativi di opinioni e di idee in un ambiente sufficientemente libero da dare la parola a tutti gli utenti. Consente la collaborazione sul contenuto, ma in effetti è molto di più. Il risultato finale di un wiki non è un documento o un capitolo, ma più precisamente un libro: un libro senza mai la parola fine, che si può modificare quando serve.
OK, torniamo al lavoro. Per gli utenti di wiki principianti, sono disponibili le linee guida online, raggiungibili con il collegamento ipertestuale sulle modalità di uso del sito wiki. Il modello predefinito di wiki è dotato di documentazione sufficiente a mettere a proprio agio i nuovi utenti e permettere loro di contribuire con rapidità.

Come funzionano i wiki
In ogni pagina del wiki, vedrai pulsanti di azione nella parte in alto a destra. Se fai clic su una Modifica con etichetta, sarai indirizzato alla pagina associata con la modifica del contenuto. La figura 3 riporta un esempio. Ogni modifica si realizza nel browser. Non si devono utilizzare strumenti esterni come Microsoft Word. Inoltre, le modifiche avvengono online e in tempo reale (dopo il salvataggio). Oltretutto non è necessario saper costruire o sviluppare siti. L'interfaccia di modifica consente la creazione di testo con tutte le funzioni (grassetto, colori, punti di elenco o immagini), servendosi sempre di pulsanti standard. L'utente apre semplicemente una pagina esistente in modalità modifica e aggiunge o modifica il contenuto. Tutto qui.
Figura 3 Modifica di contenuto wiki interamente nel browser
Figura 3 Modifica di contenuto wiki interamente nel browser (Fare clic sull'immagine per ridurla)
Figura 3 Modifica di contenuto wiki interamente nel browser
Figura 3 Modifica di contenuto wiki interamente nel browser (Fare clic sull'immagine per ingrandirla)
In un ambiente dal contenuto in continua evoluzione, come si gestiscono le modifiche? Non sempre riterrai necessario tenere in ordine tutti i contributi, ma forse vorrai qualche mezzo per rilevare le modifiche e aggiornare la cronologia delle versioni. MOSS 2007 ti consente di farlo. La figura 4 mostra l'aspetto di una pagina standard dopo aver fatto clic sul pulsante Cronologia. Al centro, troverai traccia di tutte le modifiche al testo. A sinistra, puoi vedere la cronologia delle modifiche, rilevata in base al momento della loro effettuazione. La comunità ha completa facoltà di rivedere, rilevare e anche revocare le modifiche. Si tratta di un'idea potente. Mentre costruisci e cambi il tuo wiki, MOSS 2007 segue i vari movimenti.
Figura 4 Rilevamento delle modifiche in una voce wiki nel corso del tempo
Figura 4 Rilevamento delle modifiche in una voce wiki nel corso del tempo (Fare clic sull'immagine per ridurla)
Figura 4 Rilevamento delle modifiche in una voce wiki nel corso del tempo
Figura 4 Rilevamento delle modifiche in una voce wiki nel corso del tempo (Fare clic sull'immagine per ingrandirla)
Come ho accennato, un wiki non è una pagina Web, ma una raccolta di pagine senza limiti. Partecipando a una comunità wiki, puoi decidere di introdurre una nuova idea o un argomento di discussione. Invece di aggiungere il testo su una pagina esistente, magari preferisci fare una deviazione su una nuova pagina. MOSS 2007 supporta la tua decisione consentendo di aggiungere con facilità pagine wiki. Basta fare clic su Nuovo e viene fuori una nuova pagina wiki. Inizia a inserire contenuto per conto tuo!

Conclusioni
Forse MOSS 2007 non ha inventato l'idea di wiki, ma grazie all'ampia disponibilità che offre, lo rende molto più attraente. In un'organizzazione, i wiki possono trasformare il modo di collaborare tra colleghi, che non saranno più legati ai limiti di un documento. I wiki stimolano il pensiero non strutturato e una più ampia collaborazione, valori che si integrano perfettamente nei concetti più vasti associati alla filosofia di Enterprise 2.0. I wiki sono fattori chiave. Consentono la partecipazione di tutti gli utenti, che non sono poi costretti solo a proseguire, ma possono anche deviare verso nuove direzioni.

Mauro Cardarelli è Managing Partner a Jornata, una società di consulenza IT con sede a Boston. Le sue mansioni prevedono tra l'altro l'evangelismo di tecnologie, la progettazione di architetture e lo sviluppo di software. È contattabile all'indirizzo mauro.cardarelli@jornata.com.


 Dal redattore: Talvolta i settori
Dal redattore

Talvolta i settori subiscono cambiamenti rivoluzionari. Questo vale non solo per la tecnologia, ma anche per la politica, la moda e qualunque altra cosa. Stavo pensando proprio a questo qualche settimana fa durante il mio intervento alla conferenza Windows Connection di Las Vegas. Cinque anni fa, nel mese di novembre mi sarei trovato al Comdex, un enorme salone in grado di servire ogni possibile segmento del mercato di compratori e curiosi di tecnologia di tutto il mondo. Ma l'esposizione, cresciuta in maniera costante per quasi vent'anni, è scomparsa quasi dall'oggi al domani. Quindi, invece di visitare un'esposizione immensa e di ampio respiro, mi trovavo a parlare ad una conferenza anch'essa di grande successo, trasmessa in narrowcasting, incentrata su alcuni sviluppatori e prodotti IT. Riuscivo a raggiungere le stesse persone nello stesso luogo, ma il contesto era più gratificante per tutti i partecipanti.
La mia relazione verteva sulla scrittura tecnica: come, dove e perché. I cambiamenti del nostro settore si rispecchiano non solo nella storia del Comdex, ma nel mondo della comunicazione tecnica. Cinque anni fa diedi una lezione simile, completamente incentrata sui periodici. A quell'epoca erano ancora in pochi ad aver sentito parlare di blog. I siti delle community erano soltanto l'ombra di ciò che sono attualmente. Negli ultimi cinque anni abbiamo assistito a un cambiamento definitivo della trasmissione della parola scritta, su una scala mai vista prima.
Questo costituisce solo in parte una fortuna, naturalmente. Forme diverse di comunicazione servono a scopi differenti. Le persone possono mettere online i propri pensieri in modo spontaneo, ma se tali pensieri vengono pubblicati su una rivista, di solito significa che le parole sono state editate e curate tecnicamente. È possibile eliminare il post di un blog, ma non si può andare casa per casa a chiedere di strappare un pezzo di pagina 28.
In ogni caso c'è una ragione se parlo di tutti questi cambiamenti. In risposta ai numerosi lettori che ci hanno fornito un feedback sulla rivista, stiamo aumentando il numero delle nostre rubriche. Con questo numero esce la prima dispensa di The Cable Guy, una popolare rubrica online di TechNet che sta per passare alla versione stampata. Abbiamo dato ascolto anche a tutti voi, amministratori di posta, e sappiamo che Exchange Server 2007 diventerà un argomento importante perciò stiamo per lanciare Exchange Queue & A come rubrica regolare (fatela finita, è un nome simpatico!).
Se desiderate visionare una tecnologia Microsoft presentata nella rivista scriveteci due righe. Il miglior modo di servirvi è darvi ciò che vi serve. £Joshua Trupin

Ringraziamo i seguenti esperti Microsoft: Puneet Arora, Jeff Bienvenu, Nino Bilic, Eric Broberg, Ramesh Chinta, Matt Cohen, Michael Dalton, George Irimescu, Bryan Jeffries, Dave Kong, Vijay Krishna, Rob Lefferts, Lawrence Liu, Bob Ma, Manu Namboodiri, Joel Oleson, Arpan Shah, Troy Starr, James Sturms, Jim Truher e Blaine Young.


 Strumenti: Nuovi prodotti per i professionisti IT
Strumenti
Nuovi prodotti per i professionisti IT
Grog Steen

Amministrazione del server
Strumenti del Resource Kit di Windows Server 2003
go.microsoft.com/fwlink/?LinkId=77796
Il Resource Kit di Microsoft Windows Server 2003 è un prezioso set di oltre 100 utilità che possono aiutarti a snellire ed automatizzare le tue attività amministrative. Contiene tutto, dagli strumenti di Active Directory® alle utilità di risoluzione dei problemi di rete, ai masterizzatori di immagini su CD/DVD.
Custom Reason Editor (custreasonedit.exe) è uno strumento eccezionale per l'organizzazione di Shutdown Event Tracker. Shutdown Event Tracker, un componente di Windows Server® 2003, registra la ragione degli arresti di sistema nel registro eventi. Nel frattempo, lo strumento Custom Reason Editor ti permette di creare una lista personalizzata con parametri configurabili che ignoreranno le ragioni incorporate attivate per impostazione predefinita. Tale strumento può facilitare l'aggregazione e l'individuazione di processi, applicazioni o stati del sistema problematici che determinano un arresto, mantenendo le voci degli eventi ordinate logicamente ed organizzate.
Lo strumento resolver DNS, un'utilità della riga di comando che simula l'esecuzione del servizio SMTP della risoluzione DNS, visualizza messaggi relativi allo stato della query DNS specificati come parametro di comando. Questa utilità verrà eseguita su qualunque sistema operativo host Windows Server 2003 dotato di servizio SMTP installato e restituirà i codici di errore che potranno essere utilizzati nei file di batch. CDBurn.exe e DVDburn.exe sono utilità delle righe di comando che permettono la creazione di CD e DVD da immagini ISO e forniscono un supporto limitato per supporti riscrivibili grazie all'opzione /Erase che pulirà il supporto prima di scrivere la nuova immagine sul disco. È possibile utilizzarle, per esempio, per automatizzare i processi di archiviazione nella propria infrastruttura.
Resource Kit di Windows Server 2003
Resource Kit di Windows Server 2003 (Fare clic sull'immagine per ridurla)
Resource Kit di Windows Server 2003
Resource Kit di Windows Server 2003 (Fare clic sull'immagine per ingrandirla)
Se si desidera controllare che l'accesso ad un account sia effettivamente bloccato, lo strumento Account Lockout Status lo rende più rapido e semplice con una riga comando e con un'opzione GUI. Lo strumento interroga tutti i controller di dominio raggiungibili e controlla lo stato dell'account utente in questione. Forse uno dei migliori strumenti di automatizzazione, la Robust File Copy Utility, Robocopy.exe, offre una varietà di opzioni per spostare o copiare i file. Questo strumento permette di usare caratteri jolly e persino attributi dei file per specificare i candidati da copiare e la copia può essere selettivamente impostata come ricorsiva. È possibile usare lo strumento per la sincronizzazione e impostarlo per eliminare file o directory di destinazione che sono stati rimossi dalla directory di origine.
Un'altra delle utility che preferisco è il semplice strumento Tail (tail.exe) che, come l'utilità Linux/UNIX, permette la visualizzazione dell'ultimo numero N di righe di un file, aggiornando la visualizzazione man mano che vengono aggiunte nuove righe. Questo è un modo fantastico di effettuare il debug o di monitorare qualunque attività che scriva ad un file di registro.
Time It (timeit.exe) ti permette di temporizzare i comandi e archivia i dati nel proprio file di database permettendoti di verificare il tempo effettivamente impiegato dalle tue attività amministrative.
È opportuno osservare che gli strumenti non sono stati localizzati, essendo stati scritti e testati solo in inglese e potrebbero "produrre risultati imprevedibili" all'esecuzione. Prima di usare una delle suddette utility in un ambiente di produzione, assicurarsi di provarle sui propri sistemi se si tratta di sistemi non in lingua inglese.
Prezzo:Download gratuito.

Individuazione dei problemi
ASP.NET Issue Tracker
www.ASP.NET/StarterKits/WhitePapers/Issue%20Tracker%20Whitepaper.htm
Secondo me, ci sono due cose importanti che rendono sempre migliore un'applicazione: quando è gratuita e quando è personalizzabile. ASP.NET Issue Tracker, fornito attraverso la comunità degli sviluppatori ASP.NET online, è entrambe le cose. Progettato come Starter Kit per imparare a programmare applicazioni Web in ASP.NET 1.1 framework, Issue Tracker è un semplice ma utile strumento per l'individuazione di problemi relativi ai progetti.
L'interfaccia è semplice e permette di creare con facilità progetti, utenti e temi. L'applicazione supporta più utenti con autorizzazioni basate sul ruolo, che proteggono i temi da occhi indiscreti. È inoltre possibile creare categorie di argomenti personalizzate per ciascun progetto e campi dati personalizzati di vario tipo. Alle attività può essere assegnato uno stato, una priorità ed un'attività cardine che aiutano ad organizzare i propri progetti.
Un'altra funzionalità interessante è che alla creazione dei progetti è possibile specificare per ciascuno di essi i propri codici di stato, le priorità e le attività cardine ed assegnare un'immagine che lo rappresenti. Tutto il codice è disponibile nell'area download, perciò se hai uno sviluppatore .NET a portata di mano, o sei in grado di cavartela con il codice esistente puoi usare lo starter kit come base per qualunque funzionalità personalizzata di cui avrai bisogno.
Prezzo: Gratuito.

Monitoraggio dei sistemi
NetHealth Sentinel Professional
www.nethealthsys.com
Il monitoraggio delle reti e dei sistemi è fondamentale ed io sono sempre alla ricerca di applicazioni che mi forniscano a distanza informazioni sulla salute dei computer. NetHealth Sentinel Professional, di NetHealth Systems, fa proprio questo.
Una soluzione agent-based, Sentinel Professional fornisce informazioni approfondite sulle macchine host monitorate. L'applicazione è divisa in quattro componenti: Admin Server, Admin Console, Connection Manager e Remote Agent. Admin Server esegue le operazioni pianificate, memorizza le informazioni di configurazione e raccoglie gli avvisi attraverso Connection Manager.
Admin Console è l'interfaccia grafica di Admin Server che permette di visualizzare e configurare i sistemi monitorati nonché di impostare eventuali operazioni o eventi pianificati. Connection Manager raccoglie tutti i dati dagli agenti remoti, agenti host che risiedono sul sistema monitorato. Remote Agent viene eseguito come un servizio di Windows e comunica in modo protetto con Connection Manager attraverso una connessione protetta. Ciascun Remote Agent può essere configurato per l'invio di avvisi ad uno o più Connection Manager.
NetHealth Sentinel Professional
NetHealth Sentinel Professional (Fare clic sull'immagine per ridurla)
NetHealth Sentinel Professional
NetHealth Sentinel Professional (Fare clic sull'immagine per ingrandirla)
Una funzionalità interessante è l'aggregazione di eventi da tutti i computer su un gruppo di monitoraggio specificato. Il semplice GUI, inoltre, permette di trascinare e posizionare colonne di dati dalla visualizzazione eventi al gruppo per elemento.
L'applicazione offre inoltre il pannello Vital Signs che fornisce una rapida panoramica di qualunque statistica si desideri monitorare. Di default è possibile vedere l'utilizzo della CPU, dei dischi e della memoria, ma è possibile aggiungere, attraverso la scheda Monitor, contatori a scelta.
NetHealth Sentinel Professional include inoltre una funzionalità di riferimento che permette di impostare i livelli del "normale" funzionamento di un computer e che fa scattare avvisi se il funzionamento supera uno dei valori di riferimento prefissati.
Prezzo: $495 per un 10 Client Access License pack.

Crittografia dei dati
TrueCrypt
www.truecrypt.org
TrueCrypt, di TrueCrypt Foundation, è uno strumento di crittografia gratuito, a licenza aperta "on the fly" che con la giusta password o chiave di crittografia, è in grado di decrittografare le informazioni che stai cercando di leggere o di crittografare i dati che cerchi di scrivere in memoria, in entrata e in uscita dai tuoi volumi crittografati. Ma non preoccuparti, in nessun punto il tuo volume si troverà decrittografato. Solo se hai un'immagine della memoria mentre l'applicazione sta decrittografando i dati in memoria, è possibile che un intruso trovi le informazioni che stai cercando di proteggere. Ciò può essere facilmente evitato disattivando le immagini della memoria sul tuo sistema, per non menzionare che solo una piccola parte dei tuoi dati si trova decrittografata in memoria in un dato momento.
L'applicazione supporta sia i volumi virtuali sia le partizioni fisiche o i dispositivi. I volumi virtuali, soprannominati "contenitori di file" dagli autori, possono essere creati con una qualunque estensione file o senza di essa, per cui ad occhi indiscreti i tuoi dati sensibili sembreranno composti da dati casuali; non esiste "file signature" di TrueCrypt.
TrueCrypt
TrueCrypt (Fare clic sull'immagine per ridurla)
TrueCrypt
TrueCrypt (Fare clic sull'immagine per ingrandirla)
Inoltre, è possibile eseguire TrueCrypt in "traveler mode" (modalità da viaggio) che significa essenzialmente che è possibile creare un contenitore di file su una chiave USB assieme ai file dell'applicazione e portare con sé i dati crittografati ovunque senza necessità di installare l'applicazione TrueCrypt sul sistema host. Ma, per la natura di lettura/scrittura attraverso la memoria, saranno necessari privilegi amministrativi sul sistema su cui si desidera utilizzare il disco da viaggio.
TrueCrypt dispone di una semplice impostazione guidata anche del disco da viaggio. Sarebbe un modo fantastico per portare con sé le proprie informazioni di amministrazione di sistema e per non doversi preoccupare che occhi indiscreti possano avere accesso a dati aziendali sensibili.
Per un ulteriore livello di sicurezza, TrueCrypt permette anche di creare un volume nascosto all'interno di un contenitore di file, per cui anche se un intruso riesce ad accedere al volume più esterno, non sarà in grado di scoprire l'esistenza di un volume interno nascosto sul disco. Ciascun volume è inizializzato con dati casuali che fanno del volume nascosto che risiede nel volume più esterno uno "spazio libero" molto difficile da rilevare.
TrueCrypt è in grado di utilizzare AES, Blowfish, CAST5, Serpent, Triple DES, Twofish, e alcune combinazioni di tali algoritmi per crittografare i tuoi dati. L'applicazione utilizza la modalità operativa LRW per la crittografia, che diventerà uno standard IEEE per la crittografia di archiviazione basata su settore. Per l'algoritmo di hash dell'intestazione si può scegliere di utilizzare Whirlpool, SHA-1, o RIPEME-160, e l'applicazione non archivierà nessun hash sul sistema come ulteriore livello di protezione. L'applicazione supporta i file system FAT12, FAT16, FAT32, e NTFS ma come con altre utilità di crittografia Windows basate su settore esistenti, non permette di crittografare una partizione di avvio Windows.
Prezzo: Gratuito.

Recensioni
Hacking Web Services
www.charlesriver.com
Hacking Web Services di Shreeraj Shah (Charles River Media, 2006) è una preziosa risorsa per chi opera nello sviluppo, nella distribuzione o nel supporto di servizi Web. Il libro è un riferimento di protezione generale ben organizzato per i servizi Web e le tecnologie dei loro componenti. Compie un buon lavoro nel dettagliare gli elementi interessati nella difesa della tua infrastruttura e attraverso le tue procedure di sviluppo.
Il libro inizia con una presentazione relativamente approfondita dei servizi Web. Un caso intitolato "Le conseguenze della procrastinazione" insegna la forza delle procedure di protezione preventive e delle mancanze dei sistemi reattivi. Il capitolo intitolato "Web Services Scanning and Enumeration" (Scansione ed enumerazione dei servizi Web) discute su come utilizzare wsChess, un kit di strumenti per la protezione dei servizi Web .NET-based di Net-Square (net-square.com/wschess/index.shtml), per stabilire il profilo e l'ingombro dei servizi Web.
Il libro include un CD di utilità contenente il campione di un'applicazione .NET-based denominata SOAPWall. Questa mostra come bloccare i caratteri a iniezione e i sovraccarichi del buffer nei tuoi servizi Web .NET. Inoltre, il CD fornisce demo di diversi tipi di attacchi ai servizi Web.
Prezzo: $49.95.
Hacking Web Services di Shreeraj Shah (Charles River Media, 2006) è una preziosa risorsa per chi opera nello sviluppo, nella distribuzione o nel supporto di servizi Web. Il libro è un riferimento di protezione generale ben organizzato per i servizi Web e le tecnologie dei loro componenti. Compie un buon lavoro nel dettagliare gli elementi interessati nella difesa della tua infrastruttura e attraverso le tue procedure di sviluppo.
Il libro inizia con una presentazione relativamente approfondita dei servizi Web. Un caso intitolato "Le conseguenze della procrastinazione" insegna la forza delle procedure di protezione preventive e delle mancanze dei sistemi reattivi. Il capitolo intitolato "Web Services Scanning and Enumeration" (Scansione ed enumerazione dei servizi Web) discute su come utilizzare wsChess, un kit di strumenti per la protezione dei servizi Web .NET-based di Net-Square (net-square.com/wschess/index.shtml), per stabilire il profilo e l'ingombro dei servizi Web.
Il libro include un CD di utilità contenente il campione di un'applicazione .NET-based denominata SOAPWall. Questa mostra come bloccare i caratteri a iniezione e i sovraccarichi del buffer nei tuoi servizi Web .NET. Inoltre, il CD fornisce demo di diversi tipi di attacchi ai servizi Web.
Prezzo: $49.95.

Scrivi a Toolbox
Se hai uno strumento o una utilità preferiti che vorresti vedere recensiti qui, scrivi all'autore all'indirizzo tntools@microsoft.com.

Le opinioni espresse nella presente rubrica si riferiscono esclusivamente all'autore e non rispecchiano necessariamente le opinioni di Microsoft. Tutti i prezzi indicati si intendono in vigore al momento della pubblicazione e possono essere soggetti a variazioni.

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


 Riflettori sull'utilit&#224;: Internet Explorer Administration Kit
Riflettori sull'utilità
Internet Explorer Administration Kit
Lance Whitney
Scarica il codice per questo articolo: Riflettori sull'utilità: Internet Explorer Administration Kit 7 (KB)

Il responsabile dei servizi informatici ti ha chiesto di installare in tutta l'organizzazione l'ultima versione di Explorer 7. Ti ha concesso poco tempo e un budget limitatissimo, ma con parecchie richieste. Ti serve un pacchetto personalizzato che applichi funzioni e impostazioni identiche a tutti i tuoi utenti. Se servirà, dovrai anche essere in grado di cambiare tali impostazioni.
Inoltre, devi bloccare Internet Explorer® per evitare che gli utenti possano modificare le impostazioni. Come puoi creare e fornire questo tipo di installazione di Internet Explorer in modo facile e veloce?
Arriva in soccorso Microsoft, con l'Internet Explorer Administration Kit, IEAK per gli amici. Si tratta di uno strumento di configurazione gratuito creato per aiutare gli amministratori IT, gli sviluppatori, gli ISP e altri nella creazione di pacchetti di installazione personalizzati di Internet Explorer. In effetti, Yahoo! ha adottato la versione beta di IEAK 7 per creare un pacchetto Internet Explorer 7 personalizzato da scaricare dal sito Web Yahoo!
Nel build di Internet Explorer 7 che creerai con IEAK saranno presenti solo le funzioni e le opzioni che indicherai. Puoi attivare particolari impostazioni di sicurezza e bloccare i controlli a cui gli utenti non devono accedere.
Dopo la distribuzione di Internet Explorer, chi possiede Active Directory® può ovviamente usare Criteri di gruppo per controllare e aggiornare le impostazioni del browser. In alternativa, se desideri, puoi usare IEAK per gestire la serie di impostazioni di Internet Explorer.
IEAK 7 è molto più facile da usare delle versioni precedenti; propone un'interfaccia grafica semplice per la creazione del tuo pacchetto Internet Explorer. Le schermate dettagliate ti guideranno per tutto il percorso di selezione delle funzioni e delle opzioni da inserire nel tuo build.
La nuova versione di IEAK presenta alcune modifiche rispetto alle precedenti, con l'aggiunta di alcune opzioni e l'eliminazione di altre. Ora puoi aggiungere feed RSS Web predefiniti al tuo build Internet Explorer, scegliere più di una home page e di una pagina di ricerca, oltre ad aggiungere assistenza per un filtro anti-phishing. Per l'esecuzione e l'aggiornamento, puoi anche impostare lo strumento di rimozione malware Microsoft® Windows® . Tuttavia con IEAK non puoi personalizzare Outlook® Express o Windows Media® Player, perché si tratta di applicazioni non incluse in Internet Explorer 7.
Puoi creare un pacchetto Internet Explorer per piattaforme a 32 o 64 bit, Windows XP con Service Pack 2 (SP2), Windows Server® 2003 con SP1, o Windows Vista™ basato su x86, basato su x64 o Itanium. Prima di lanciare IEAK 7, devi installare Internet Explorer 7 sul PC che userai per creare il pacchetto. Per compatibilità, devi eseguire IEAK su un computer con lo stesso OS dei computer su cui applicherai il build.
In questo articolo, ti illustrerò come usare IEAK per creare il tuo build di installazione di Internet Explorer 7 e conservare o aggiornare le tue impostazioni di browser.

Come ottenere IEAK 7
Puoi scaricare l'ultima versione di IEAK 7 gratuitamente alla pagina microsoft.com/technet/prodtechnol/ie/ieak7. Inoltre, la pagina fornisce la documentazione e le note sulla versione relative a IEAK; vale la pena leggerle.
Quando installerai IEAK 7 tramite il file ieak.msi scaricato, ti sarà richiesto il tipo di licenza da usare in base al tuo ruolo (ISP, fornitore di contenuto o sviluppatore) oppure tramite una Intranet aziendale. Le schermate che vedi e il tipo di pacchetto che creerai possono variare in base al ruolo che scegli. Pertanto, se stai creando il build per un ambiente aziendale, ricorda di selezionare il ruolo e la licenza relativi alla Intranet aziendale. Dopo l'installazione di IEAK, viene creato nel tuo menu Start un nuovo gruppo di programmi, denominato Microsoft IEAK, che contiene tre elementi: la Guida IEAK, il Gestore di profilo e la Procedura guidata per la personalizzazione di Internet Explorer.
Per costruire il tuo pacchetto di installazione, userai la Procedura guidata per la personalizzazione di Internet Explorer. L'uso della procedura guidata è estremamente semplice: ogni schermata ti accompagna nel processo di progettazione del pacchetto. Allora, dov'è il trabocchetto? Devi sapere che per configurare ogni opzione dovrai aver compreso chiaramente le funzioni e i controlli di Internet Explorer. Per fortuna, IEAK 7 viene in soccorso anche qui. La guida integrata nello strumento è più dettagliata e descrittiva delle versioni precedenti. In ogni schermata della Procedura guidata per la personalizzazione appare un pulsante di Guida, che illustra le impostazioni e le opzioni della schermata stessa. Puoi accedere a tutto il file di guida IEAK tramite il collegamento alla guida IEAK oppure attraverso il file IEAKHelp.chm file in C:\Programmi\Microsoft IEAK 7. Ti consiglio di leggere la documentazione prima di creare il build, per capire ogni componente e pianificare le opzioni che ti servono.
La Procedura guidata per la personalizzazione suddivide il processo di creazione del pacchetto in cinque fasi separate:
  1. Raccolta delle informazioni
  2. Specificazione dei parametri di installazione
  3. Personalizzazione dell'esperienza di installazione
  4. Personalizzazione del browser
  5. Ulteriore personalizzazione
Microsoft ha razionalizzato il numero di schermate con cui devi avere a che fare in IEAK 7, ottenendo un processo più chiaro e lineare rispetto alle versioni precedenti. Tuttavia, la Procedura guidata per la personalizzazione prevede comunque dozzine di schermate in cui scegliere le opzioni del pacchetto. Di conseguenza, in questa sede non mi addentrerò in ogni schermata. Molte sono autoesplicative e ho spiegato come accedere alla Guida nei casi più complessi. Fornirò invece una breve descrizione delle operazioni che si effettuano in ciascuna fase e tratterò alcune delle schermate più importanti.
Fase 1 Raccolta delle informazioni In questa fase decidi dove memorizzare il tuo pacchetto di installazione, su quale OS e piattaforma lo lancerai, come intendi distribuire Internet Explorer e le opzioni da personalizzare. In questa fase, puoi scegliere uno dei tre metodi di distribuzione relativi a Internet Explorer 7, visualizzati nella figura 1: un'installazione di file, che crea una directory bidimensionale con i file che compongono il tuo build; il CD ROM che crea un disco di installazione (che risulta comodo se fornisci assistenza a utenti remoti); un pacchetto di sola configurazione o di solo marchio di fabbrica, che applica le tue impostazioni personalizzate a un'installazione esistente di Internet Explorer 7. Puoi usare la recentissima opzione relativa a Windows Vista, se è già installato Internet Explorer 7 e intendi applicarvi le tue personalizzazioni.
Figura 1 Specificazione di un metodo di distribuzione
Figura 1 Specificazione di un metodo di distribuzione (Fare clic sull'immagine per ridurla)
Figura 1 Specificazione di un metodo di distribuzione
Figura 1 Specificazione di un metodo di distribuzione (Fare clic sull'immagine per ingrandirla)
In questa fase, specificherai anche la lingua da usare per il build. Puoi creare versioni localizzate di Internet Explorer 7 per ogni lingua da supportare.
Fase 2 Specificazione dei parametri di installazione In questa fase scaricherai i componenti e gli aggiornamenti più recenti relativi a Internet Explorer, per costruire il pacchetto.
Fase 3 Personalizzazione dell'esperienza di installazione In questa fase, sceglierai l'installazione che i tuoi utenti riceveranno: interattiva (in cui l'installazione propone delle scelte all'utente); a mani libere (in cui l'utente può vedere il processo di installazione senza però intervenire); completamente muta (in cui l'installazione viene eseguita integralmente in background senza interazione dell'utente). Se stai creando un CD-ROM, in questa fase ti sarà richiesto di creare una pagina iniziale e altri elementi per il CD.
Fase 4 Personalizzazione del browser In questa fase personalizzerai l'aspetto di Internet Explorer; imposterai gli URL per la home page, la pagina di assistenza e i preferiti; configurerai le impostazioni di proxy; stabilirai le impostazioni sulla privacy e sulla sicurezza per il browser. Sempre qui, potrai anche specificare il nome e l'ubicazione di un file di autoconfigurazione oppure un file di impostazioni Internet (INS), con cui potrai gestire le tue impostazioni di browser, se non adotterai un piano per usare Criteri di gruppo.
Il file INS è un semplice file di testo che contiene tutte le impostazioni importanti di browser, dalla home page ai preferiti, alle opzioni di sicurezza e alla configurazione del proxy. Memorizzerai questo file INS in un server Web interno. Quindi ogni PC farà riferimento a questo file per ricavare le impostazioni del browser. Se in futuro dovrai modificare qualche impostazione, basterà modificare il file INS e gli utenti riceveranno automaticamente la modifica. Puoi specificare la frequenza di aggiornamento e di applicazione delle impostazioni.
Inoltre, questa fase ti consente di stabilire i tuoi server proxy, in modo manuale (inserendo i rispettivi indirizzi IP e numeri di porta) oppure creando e specificando il nome di un file JScript® (JS), JavaScript (JVS) di autoconfigurazione proxy (PAC) con le tue informazioni di proxy. La guida di IEAK fornisce esempi di codici utilizzabili per creare tali file.
Inoltre puoi anche attivare la modalità protetta, se stai progettando un pacchetto Internet Explorer 7 all'interno e in relazione a Windows Vista. Basterà attivare la modalità protetta in Internet Explorer 7 sul tuo PC di riferimento e importare tale impostazione in IEAK.
Fase 5 Ulteriore personalizzazione Infine, in questa fase, imposterai i criteri dell'utente e le limitazioni della protezione per il tuo build. Puoi bloccare in modo selettivo singole impostazioni per le quali vuoi impedire la visione e la possibilità di modifica da parte degli utenti. La figura 2 visualizza la schermata Ulteriori impostazioni contenente cinque categorie di controlli che puoi attivare o disattivare. Le impostazioni presenti in queste schermate sono dedotti da cinque modelli ADM per Internet Explorer 7, installati dopo il download dei più recenti componenti del browser, nella fase 2 della procedura guidata. Se usi i Criteri di gruppo, puoi saltare questa fase; altrimenti, puoi configurare le opzioni nelle cinque categorie. Dato che le categorie derivano direttamente dai modelli ADM, puoi anche modificarle agendo su ciascun file ADM in un editor di testo, aggiungendo i tuoi controlli personalizzati. I file ADM si trovano in C:\Programmi\Microsoft IEAK 7\policies in varie sottodirectory per ciascun sistema operativo e piattaforma Windows. La figura 3 riporta le cinque categorie corredate da una breve descrizione.
Figure 3 Categorie nella schermata Ulteriori impostazioni (Close Figure 3)

Categoria | Descrizione
Gestione del controllo | Si tratta di una categoria che consente di disattivare alcuni controlli ActiveX. Le impostazioni presenti in questa categoria non si applicano a Windows Vista, ma solo a Windows XP e Windows Server 2003.
Impostazioni personalizzate | Questa categoria riporta le impostazioni di protezione. Puoi attivare o disattivare determinati controlli e azioni per area (Internet, Intranet, siti attendibili o con restrizioni).
Impostazioni aziendali | In questa categoria, puoi impostare le dimensioni e i parametri della cache del browser.
Restrizioni aziendali | In questa parte puoi bloccare specifici controlli e schermate presenti in Internet Explorer, impedendone la visione ai tuoi utenti. Tali impostazioni non si applicano a Windows Vista, ma solo a Windows XP e Windows Server 2003.
Impostazioni Internet | Questa categoria propone le opzioni per il completamento automatico, le dimensioni di visualizzazione e le impostazioni avanzate riportate nel menu Opzioni Internet di Internet Explorer.
Figura 2 Personalizzazione delle funzioni di Internet Explorer
Figura 2 Personalizzazione delle funzioni di Internet Explorer (Fare clic sull'immagine per ridurla)
Figura 2 Personalizzazione delle funzioni di Internet Explorer
Figura 2 Personalizzazione delle funzioni di Internet Explorer (Fare clic sull'immagine per ingrandirla)

Controllo del build
Dopo aver completato le schermate della Procedura guidata per la personalizzazione, il tuo pacchetto risulterà nell'ubicazione che hai specificato nella fase 1 o, per importazione predefinita, in c:\builds. In questa ubicazione sarà presente la directory di destinazione; per il nome di questa directory, IEAK usa la data corrente, ad esempio 01012007 per il 1° gennaio 2007. La directory conterrà due percorsi di sottodirectory, uno denominato INS e l'altro battezzato secondo il metodo di distribuzione prescelto: FLAT, CD o BrndOnly.
La directory INS funge da area di lavoro o repository; conserva traccia delle tue personalizzazioni nella costruzione del tuo pacchetto. In un file di questa directory, denominato install.ins, sono memorizzate tutte le impostazioni create. Se riavvii la procedura guidata per la personalizzazione, le precedenti selezioni sono tratte automaticamente da questo file.
Le directory FLAT, CD o BrndOnly contengono gli effettivi file di installazione. In una di queste ubicazioni sarà presente una sottodirectory denominata secondo l'OS e la piattaforma, ad esempio WIN32 per Windows XP or Windows Vista a 32 bit. La sottodirectory definitiva trarrà nome dalla lingua utilizzata per il pacchetto (es. EN per l'inglese). Ad esempio, se hai creato un build il 1° gennaio 2007 utilizzando una distribuzione Flat per Windows a 32 bit in inglese, il percorso della directory del tuo build sarà: c:\builds\01012007\FLAT\WIN32\EN.
Per trovare l'installazione creata con un metodo di distribuzione Flat, occorre scendere più in dettaglio nella struttura delle directory FLAT fino a quando comparirà il file IE7Setup.exe nella sottodirectory della lingua. Si tratta un eseguibile autoestraente che contiene tutti i file binari e di configurazione che formano il tuo build. Questo file è tutto quello che ti serve per distribuire il tuo pacchetto Internet Explorer 7 (i file nella directory INS non sono necessari per l'installazione). Puoi copiare quest'unico file nel tuo server di distribuzione per testare il tuo pacchetto e, quando sarà pronto, per distribuirlo ai tuoi utenti.
Se ha scelto una distribuzione con CD ROM, devi copiare integralmente la directory CD nel tuo CD, che includerà un file autorun.inf generato automaticamente e una directory con un file eseguibile che installerà Internet Explorer dal CD.
Se costruisci un pacchetto di sola configurazione o di solo marchio, scendi in dettaglio nella struttura della directory BrndOnly fino a quando vedrai il file Setup.exe nella sottodirectory della lingua. Si tratta di un eseguibile autoestraente che puoi copiare nel tuo server di distribuzione per la distribuzione stessa.

Gestione delle impostazioni
Il tuo pacchetto Internet Explorer 7 contiene tutte le funzioni e le impostazioni che ti servono inizialmente, ma cosa farai quando dovrai cambiare un'opzione? Hai due possibilità. Se disponi di Active Directory, puoi aggiornare le tue impostazioni di browser con i Criteri di gruppo. Altrimenti, IEAK ti offre uno strumento denominato Gestore di profilo che serve a modificare le impostazioni. Innanzitutto, diamo un rapido sguardo ai Criteri di gruppo.
Utilizzo dei Criteri di gruppo L'uso dei Criteri di gruppo è il metodo migliore per gestire Internet Explorer, poiché supporta tutte le impostazioni di browser. Nelle precedenti versioni di IEAK e Internet Explorer, dovevi aggiungere dei file ADM e dei file Manutenzione di Internet Explorer (IEM) alla tua console di Criteri di gruppo per incorporare tutte le impostazioni relative a Internet Explorer. Invece, nel caso di Internet Explorer 7, Windows XP SP2 e Windows Vista prevedono tutte le impostazioni di Criterio di gruppo per la manutenzione e l'aggiornamento del browser.
Se apri l'editor dei Criteri di gruppo (gpedit.msc), troverai tutte le impostazioni richieste per Internet Explorer 7 in Modelli amministrativi | Componenti di Windows | Internet Explorer.
Utilizzo del Gestore di profilo IEAK Grazie al Gestore di profilo IEAK puoi costruire e creare l'autoconfigurazione (o file INS) per memorizzare le impostazioni relative a Internet Explorer 7. Inizialmente il Gestore di profilo ti impone di caricare o creare un nuovo file INS. Puoi riscrivere completamente e creare un nuovo file INS con le stesse impostazioni configurate in Procedura guidata per la personalizzazione, ma perchè fare doppio lavoro? Quando hai costruito il tuo pacchetto, IEAK ha creato il file predefinito install.ins per memorizzare le impostazioni di browser. Invece di creare un nuovo file INS nel Gestore di profilo, utilizza install.ins. Per caricarlo, sfoglia il percorso INS nella tua directory builds, ovvero c:\builds\01012007\INS. Scendi in dettaglio nelle restanti sottodirectory fino a quando vedrai il file.
Il Gestore di profilo suddivide le sue impostazioni in due sezioni, come si evince dalla figura 4. Le impostazioni della Procedura guidata trattano le opzioni del browser quali la home page, le impostazioni di proxy e le aree di protezione. Esse corrispondono alle impostazioni delle fasi 3-5 della Procedura guidata per la personalizzazione. La sezione dei criteri e delle limitazioni controlla le restrizioni per l'utente e corrisponde alle impostazioni delle cinque categorie derivanti dai criteri e dalle limitazioni della fase 5 della Procedura guidata per la personalizzazione.
Figura 4 Configurazione di Internet Explorer con il Gestore di profilo
Figura 4 Configurazione di Internet Explorer con il Gestore di profilo (Fare clic sull'immagine per ridurla)
Figura 4 Configurazione di Internet Explorer con il Gestore di profilo
Figura 4 Configurazione di Internet Explorer con il Gestore di profilo (Fare clic sull'immagine per ingrandirla)
Hai già definito le impostazioni in questione durante la costruzione del pacchetto, pertanto non devi modificare nulla. Tuttavia si tratta di un'ottima occasione per riesaminare le impostazioni scelte per il pacchetto, per verificarne la precisione.
Dopo aver verificato le impostazioni nel Gestore di profilo, salva il file install.ins altrove e copialo in un server Web interno, entrando nel percorso Universal Naming Convention (UNC) del server, che equivale a quello specificato nella schermata di configurazione automatica nella fase 4 della Procedura guidata per l'installazione. Ti sarà richiesto di salvare un file CAB insieme al file INS illustrato nella figura 5. Perché? Quando effettui modifiche alle tue impostazioni di Internet Explorer 7 con il Gestore di profilo, IEAK spesso deve scaricare le voci di registro nei tuoi client Windows. Si tratta di voci memorizzate in file INF, salvate allora in un file CAB. Se, a seguito delle nuove modifiche, il numero di versione del file INS cambia, si genera un nuovo file CAB per il download. Memorizza il file CAB nella stessa ubicazione del server Web dove si trova il file INS.
Figura 5 Salvataggio dei file di autoconfigurazione
Figura 5 Salvataggio dei file di autoconfigurazione (Fare clic sull'immagine per ridurla)
Figura 5 Salvataggio dei file di autoconfigurazione
Figura 5 Salvataggio dei file di autoconfigurazione (Fare clic sull'immagine per ingrandirla)
È consigliabile effettuare poi delle copie del file INS e del file CAB, salvandole in ubicazioni diverse del server Web. Considerale copie di backup e di prova. Se in futuro modificherai le impostazioni di Internet Explorer con il Gestore di profilo, potrai caricare e modificare il tuo file INS di prova per testare le modifiche prima di modificare quello effettivo.
È facile modificare un'impostazione di browser o di un controllo attraverso il Gestore di profilo: basta selezionare la relativa categoria e attivare o disattivare qualsiasi opzione. Dopo aver effettuato le modifiche, salva di nuovo il file INS e copialo un'altra volta nel server.
Ancora una raccomandazione: Il file INS è un semplice file di testo che puoi aprire in Blocco note per vederne le impostazioni. È possibile anche modificarlo in Blocco note? Sì, le impostazioni diventeranno effettive, ma se usi il Gestore di profilo per la modifica, otterrai un paio di vantaggi. Il Gestore di profilo genera automaticamente il file CAB eventualmente necessario, attribuendogli anche un nuovo numero di versione ad ogni modifica. Pertanto, per modificare il file INS dovrai sempre usare il Gestore di profilo.

Riepilogo
IEAK è uno strumento efficace per creare e personalizzare in modo facile ed efficiente il tuo build per Internet Explorer 7. La versione più recente, IEAK 7, vanta diversi miglioramenti rispetto alle precedenti (schermate più chiare, una guida più utile) per aiutarti a progettare il tuo pacchetto di installazione. La padronanza di IEAK ti consentirà di creare per i tuoi utenti un'installazione affidabile di Internet Explorer 7 e, allo stesso tempo, di soddisfare il responsabile dei servizi informatici.
Consegna automatica di Internet Explorer 7
Microsoft ha in programma la distribuzione di Internet Explorer 7 come aggiornamento ad alta priorità attraverso gli Aggiornamenti automatici e i siti Windows Update e Microsoft Update, a pochissima distanza dal lancio della versione definitiva di Internet Explorer 7. Tale scelta ti potrebbe creare un problema, in qualità di amministratore, a seconda del tuo ambiente. Se i tuoi utenti non dispongono di diritti di amministrazione a livello locale, non riceveranno l'aggiornamento. Inoltre, se gestisci il tuo ambiente con Microsoft Systems Management Server (SMS) o Windows Server Update Services (WSUS), già controlli gli aggiornamenti ricevuti dagli utenti. Tuttavia, se alcuni utenti hanno diritti di amministrazione e tu non hai alcun sistema per gestire gli aggiornamenti, forse dovrai bloccare l'aggiornamento di Internet Explorer 7. Microsoft ha predisposto un toolkit per il blocco di Internet Explorer 7, (messo a disposizione dall'Area download Microsoft): comprende un modello di Criteri di gruppo e uno script che imposta la chiave di registro per impedire l'esecuzione di Internet Explorer 7.

Lance Whitney è consulente IT, docente e technical writer. Ha creato e supportato pacchetti di installazione per Internet Explorer fin dalla versione 4.0. Era un giornalista, ma circa 15 anni fa ha fatto un salto nel buio lanciandosi nel mondo dell'IT.


 Domande e risposte su SQL: Archiviazione dati, server collegati, misurazione della larghezza di banda e altro ancora
Domande e risposte su SQL
Archiviazione dati, server collegati, misurazione della larghezza di banda e altro ancora
A cura di Nancy Michell

Archiviazione dati
D: Ho bisogno di una strategia di archiviazione dati completa per il mio gruppo. Attualmente utilizzo un modello standard di backup dei dati ed esecuzione di utility per la cancellazione dei dati storici. Se fosse necessario recuperare i dati cancellati, l'ambiente e il database vengono ripristinati.
Sto cercando una soluzione di archiviazione che possa essere eseguita in fasi. Nella fase uno i dati dovrebbero essere cancellati dal database ma rimanere accessibili in tempo reale. In altre parole, i dati vengono rimossi in modo che la dimensione del database di produzione sia gestibile, ma gli utenti finali sono ancora in grado di accedere ai dati. Nella fase due, i dati vengono completamente rimossi ed è necessario un ripristino per accedervi. Come posso ottenere questo risultato?
R: L'operazione più semplice prevede il ripristino della copia di archivio del database, seguita dalla modifica dell'applicazione per accedere al nuovo o al vecchio database dietro richiesta dell'utente. Di conseguenza, avrai a disposizione una copia del database per ogni periodo di cancellazione.
Se le modifiche ai dati avvengono con frequenza ridotta e la maggior parte dei dati non cambia tra le cancellazioni, potresti occupare inutilmente molto spazio su disco. D'altra parte, vista la limitata frequenza di accesso, puoi collocare questi dati archiviati su numerose unità più lente ed economiche (anziché su poche unità rapide e costose). Se i dati vengono completamente aggiornati in ogni periodo, questa potrebbe essere la soluzione adatta. La procedura è di facile gestione e quasi a prova d'errore.
Valuta inoltre la possibilità di utilizzare gli snapshot di database, che consentono di creare una replica relativa a un punto nel tempo prima di cancellare i dati dal database. Gli snapshot funzionano perfettamente in alcuni scenari ma possono avere numerose implicazioni. Gli snapshot di database sono "copie in scrittura" e mantengono continuamente le modifiche tra il database originale e il punto nel tempo in cui viene acquisito lo snapshot. Se vi sono molte modifiche rispetto all'originale, lo snapshot può assumere una dimensione elevata.
Per certi versi lo snapshot di database è l'opposto della procedura di backup e ripristino. La prima soluzione è sensata quando prevedi di effettuare solo poche modifiche, in quanto vengono memorizzate solo le variazioni, mentre la seconda è più adatta se sono previste numerose modifiche. In questo caso, il vantaggio del risparmio a livello di spazio della tecnica "copia in scrittura" diminuisce, mentre la difficoltà di gestione degli snapshot persiste.
Un'altra possibilità prevede l'uso della partizione delle tabelle. Questa soluzione consente di selezionare determinate tabelle, indicare intervalli di valori chiave appartenenti a diverse partizioni e quindi inserire tali partizioni in diversi gruppi di file. Una volta ottenuto il controllo sui dati da inserire in ciascun gruppo di file all'interno di una tabella, puoi esercitare un migliore controllo sui costi associati. Puoi scegliere quali gruppi di file inserire nelle diverse unità fisiche (vedi la nota precedente su unità economiche e costose), nonché quali gruppi di file sottoporre a backup e con quale frequenza. Se imposti questi gruppi di file come "di sola lettura", puoi utilizzare anche i backup parziali.

Quantità di database
D: La mia azienda vuole implementare e gestire un'applicazione che dovrà servire circa 5.000 dei nostri clienti. Vogliamo implementare un database per cliente per garantire la riservatezza. Vi saranno differenze in merito all'uso efficiente delle risorse sul server (dimensione di dati e indice, numero di connessioni utente e carico di lavoro) se si utilizza un solo database o se ne impiegano 5.000?
R: Indipendentemente dal personale a disposizione, la manutenzione della stessa base di codice tra i database potrebbe essere difficile. Se individui un bug nel codice del database, dovrai implementare la correzione 5.000 volte. Inoltre, i tempi di recupero dal database saranno elevati, così come il tempo richiesto per eseguire operazioni quali il backup e il controllo di coerenza del database. Pensala in questo modo: una banca dispone di un database separato sui suoi host per ogni utente che dispone di un conto corrente?
SQL Server™ consente di creare moltissimi database, ma non sempre questa è la scelta migliore. Pensa ad esempio al lavoro richiesto per eseguire una transazione in ogni database nello stesso periodo di tempo; in effetti, ogni database possiede il suo registro delle transazioni. Come sappiamo, per le prestazioni OLTP (Online Transaction Processing) è necessario mantenere un ambiente in cui il registro delle transazioni tragga vantaggio dalle scritture sequenziali sul disco sottostante. Per eseguire le transazioni in questi database, anziché effettuare soltanto una lettura, non utilizzare questa soluzione.

Query su un server collegato
D: Sto sviluppando un data warehouse su SQL Server 2005 Service Pack 1 (SP1). Il nostro server di origine è sul dominio di un partner, mentre il server di destinazione è nel nostro dominio. Stiamo recuperando i record dall'origine attraverso un server collegato. Quando eseguiamo una query dall'origine con join tra le tabelle di origine, la query viene eseguita molto rapidamente. Tuttavia, se è presente un join semplice tra le tabelle di destinazione, la query impiega un tempo infinito. Perché?
R: Una procedura ottimale consiste nell'evitare i join tra server, specialmente oltre i confini di dominio. Detto questo, in base al risultato indicato, il problema potrebbe verificarsi perché i partner considerano attendibile il tuo dominio, ma tu non consideri attendibile il dominio dei tuoi partner. Prova a rielaborare la query in modo da eseguirla dall'origine, quindi copia i risultati sulla destinazione. In questo modo dovresti ottenere un risultato migliore.

Misurazione della larghezza di banda
D: Esistono procedure ottimali per misurare la larghezza di banda utilizzata per il mirroring dei database? So che esiste un requisito per il quale la larghezza di banda dovrebbe essere il triplo della frequenza di generazione dei registri, ma se la richiesta non è elevata è possibile eseguire il mirroring di database su una connessione a banda larga sul Web?
R: Oltre alla velocità dei dati, devi prendere in considerazione la latenza del messaggio round-trip (più importante se safety=full) e l'affidabilità del collegamento. Il mirroring di database è ottimizzato per una connessione di rete affidabile, in modo che vi sia una quantità minima di operazioni di riconnessione. Se la connessione a banda larga è instabile (con perdite di connessione o lunghi ritardi) potresti non essere in grado di mantenere la connessione. Per ulteriori informazioni, consulta il White paper con le considerazioni sulle prestazioni di mirroring.
Protezione dell'accesso a SQL Server
Se cerchi consigli per la protezione dell'accesso a SQL Server in un ambiente di produzione, Visita Modelli & procedure del Centro sviluppatori Microsoft. Tre modelli sono particolarmente interessanti:
  • Security Engineering Index
  • Security Guidance for Applications Index
  • Threat Modeling Web Applications

Per ulteriori informazioni su come impostare un ambiente operativo completo, puoi consultare questi due riferimenti:
  • Windows Server System Reference Architecture
  • Data Services Implementation Guide

Si ringraziano i seguenti esperti IT di Microsoft per la loro esperienza tecnica: Denis Altudov, Jayashree Anand, Gus Apostol, Bhavana Bartholf, Mike Blaszczak, Dibyendu Chakraverty, Shaun Cox, Laurentiu Cristofor, Ernie DeVore, Michael Epprecht, Nakul Garg, Phil Hummel, Steve Lindell, Kaloian Manassiev, Al Noel, Ward Pond, Paul Randal, Remus Rusanu, Mike Shelton, Christy Sutton, Kevin Tsai, Peter Ty, Val Wittenberg, Steven Wort, Kalyan Yella e Frankie Yuen.


 The Cable Guy: Ottimizzazione automatica della finestra di ricezione del TCP
The Cable Guy
Ottimizzazione automatica della finestra di ricezione del TCP
Joseph Davies

Benvenuti al primo numero di The Cable Guy, su TechNet Magazine. Quelli che seguono questa rubrica sul sito Web di TechNet sanno già che ci occupiamo di tutto quello che riguarda il networking e continueremo anche qui, ogni mese, questa tradizione. Chi invece è nuovo ed è alla ricerca di un archivio dei numeri precedenti può andare sul sito di Cable Guy site.
Cominciamo ora con il primo argomento, la finestra di ricezione del TCP.
Il throughput delle connessioni TCP può essere limitato dalle applicazioni che inviano e ricevono dati, dalle implementazione del TCP e dal percorso di trasmissione fra le due entità TCP. In questo articolo parlerò della finestra di ricezione del TCP e del suo impatto sul throughput del protocollo, di come usare il "windows scaling" per il TCP e della nuova funzionalità di auto configurazione della finestra di ricezione presente in Windows Vista, che ottimizza le prestazioni del TCP in fase di ricezione.

La finestra di ricezione del TCP
Una connessione TCP ha svariate caratteristiche importanti. Prima di tutto si tratta di una connessione punto-a-punto fra due protocolli del livello di Applicazione. Il TCP non fornisce servizi di consegna uno-a-molti, ma solo servizi di tipo uno-a-uno.
In secondo luogo, le connessioni TCP sono orientate alla connessione. Prima che i dati possano essere trasferiti, due processi a livello Applicazione devono negoziare formalmente una connessione, mediante la procedura di apertura della connessione TCP. In modo analogo, una connessione TCP viene formalmente chiusa dopo la negoziazione, mediante la relativa procedura di terminazione.
Terzo, i dati trasmessi in modo affidabile su una connessione TCP sono sequenzializzati e il destinatario è tenuto a inviare la conferma della corretta ricezione. Quando questa conferma non viene ricevuta, il segmento è ritrasmesso. Il destinatario scarta eventuali segmenti duplicati e quelli che arrivano fuori sequenza sono rimessi nell'ordine corretto.
Quarto punto, una connessione TCP è full-duplex. Per ogni entità TCP la connessione TCP consiste di due canali logici: uno in uscita e uno in ingresso. L'intestazione TCP contiene sia un numero di sequenza dei dati in uscita che la conferma (ACK) di quelli in ingresso.
In più, il TCP vede i dati inviati lungo i due canali logici (quello in ingresso e quello in uscita) come un flusso continuo di byte. In ogni intestazione TCP, il numero di sequenza e quello di conferma sono definiti ai confini fra byte. Il TCP non ha alcuna nozione di separazione fra record o messaggi all'interno del flusso di byte. Sarà il protocollo a livello Applicazione a doversi occupare della separazione del flusso di byte in ingresso (parsing).
Per limitare la quantità di dati che possono essere inviati fino a un certo istante e per permettere il controllo di flusso da parte del destinatario, le entità TCP fanno uso di una finestra. La finestra è la quantità di dati che il destinatario permette al mittente di inviare. Il mittente può inviare solo i byte del flusso che sono compresi all'interno della finestra. La finestra scorre sul flusso in uscita del mittente e su quello in ingresso del destinatario.
Per un certo canale logico (una delle due direzioni nella connessione full-duplex del TCP), il mittente gestisce una finestra di trasmissione e il destinatario gestisce una finestra di ricezione. Quando non ci sono segmenti dati o segmenti ACK in transito, le due finestre di uno stesso canale logico, quella di trasmissione e quella di ricezione, coincidono. In altre parole, la quantità di dati del flusso di byte in uscita che il mittente ha il permesso di inviare coincide con la quantità di dati del flusso di byte in ingresso che il destinatario è in grado di ricevere. La Figura 1 illustra questa relazione fra invio e ricezione.
Figura 1 Corrispondenza tra finestra di invio e finestra di ricezione
Figura 1 Corrispondenza tra finestra di invio e finestra di ricezione (Fare clic sull'immagine per ridurla)
Figura 1 Corrispondenza tra finestra di invio e finestra di ricezione
Figura 1 Corrispondenza tra finestra di invio e finestra di ricezione (Fare clic sull'immagine per ingrandirla)
Per indicare la dimensione della finestra di ricezione, l'intestazione del TCP contiene un campo, chiamato Window, di 16 bit. Quando il destinatario riceve dei dati, invia al mittente delle conferme o ACK, indicando i byte che sono stati ricevuti correttamente. In ogni ACK, il campo Windows indica il numero di byte rimanenti nella finestra di ricezione. Quando i dati sono inviati, confermati ed estratti dall'applicazione, sia la finestra di trasmissione che quella di ricezione scorrono verso destra. La finestra di ricezione è quella che controlla quanti dati non confermati possono essere "in volo" fra mittente e destinatario.
Poiché nella finestra di ricezione possono esserci dati non ancora estratti dall'applicazione e dati ricevuti ma non ancora confermati, la finestra di ricezione ha una struttura aggiuntiva come illustrato nella Figura 2.
Figura 2 Tipi di dati nella finestra di ricezione del TCP
Figura 2 Tipi di dati nella finestra di ricezione del TCP (Fare clic sull'immagine per ridurla)
Figura 2 Tipi di dati nella finestra di ricezione del TCP
Figura 2 Tipi di dati nella finestra di ricezione del TCP (Fare clic sull'immagine per ingrandirla)
Osserviamo la differenza fra la finestra massima di ricezione e quella corrente. La finestra massima di ricezione ha una dimensione fissa. La finestra di ricezione corrente ha dimensione variabile e corrisponde alla quantità rimanente di dati che il destinatario autorizza il mittente a inviare. La dimensione della finestra di ricezione corrente coincide con il valore del campo Window degli ACK restituiti al mittente ed è la differenza fra la dimensione massima della finestra di ricezione e la quantità di dati che sono stati ricevuti e confermati ma non ancora estratti dall'applicazione.

Finestra di ricezione e throughput del TCP
Per ottimizzare il throughput del TCP (ipotizzando un canale ragionevolmente privo di errore) il mittente dovrebbe inviare abbastanza pacchetti da saturare il canale logico fra mittente e destinatario. La capacità del canale logico può essere calcolata mediante la seguente formula:
Capacity in bits = path bandwidth in bits per second * round-trip time (RTT) in seconds
La capacità è detta anche prodotto banda-ritardo (BDP: bandwidth-delay product). Il canale può essere largo (grande larghezza di banda) o stretto (piccola larghezza di banda), oppure corto (RTT piccolo) o lungo (RTT elevato). I canali larghi e lunghi sono quelli che hanno la capacità (BDP) maggiore. Esempi di canali a grande capacità sono quelli satellitari o le reti geografiche (WAN: wide area network) che comprendono tratti intercontinentali in fibra ottica.
Come aumentare le prestazioni del mittente per canali ad alta capacità.
La nuova funzionalità di ottimizzazione automatica della finestra di ricezione permette prestazioni migliori nella ricezione su canali a grande capacità, ma cosa si può dire sulle prestazioni in fase di invio?
Gli algoritmi attualmente in uso per impedire a un mittente TCP di "ingolfare" la rete sono lo slow start (partenza lenta) e la prevenzione della congestione. Questi algoritmi incrementano la dimensione della finestra di trasmissione (il numero di segmenti che il mittente può inviare) all'inizio della trasmissione sulla connessione e durante la correzione della perdita di un segmento.
Lo slow start incrementa la dimensione della finestra di trasmissione di un intero segmento TCP per ogni segmento di conferma ricevuto ( in Windows XP e Windows Server 2003) o per ogni segmento confermato (per il TCP in Windows Vista e Windows Server "Longhorn"). La prevenzione della congestione incrementa la dimensione della finestra di trasmissione di un intero segmento TCP per ogni finestra intera di dati di cui viene ricevuta conferma.
Questi algoritmi funzionano bene per piccole capacità di canale e finestre di ricezione di piccole dimensioni. Tuttavia, in caso di connessioni TCP con una larga finestra di ricezione su un canale di grande capacità (come nel caso della replica di dati fra due server su una rete geografica ad alta velocità con un tempo di round-trip di 100 ms) questi algoritmi non incrementano la finestra di trasmissione sufficientemente in fretta per utilizzare al meglio la banda della connessione.
Per sfruttare meglio la banda messa a disposizione da connessioni TCP di questo tipo, lo stack TCP/IP Next Generation implementa il Compound TCP (CTCP). Il CTCP incrementa in modo più aggressivo la dimensione della finestra di trasmissione per connessioni caratterizzate da grandi finestre di ricezione e grande capacità. Il CTCP cerca di massimizzare il throughput su connessioni di questo tipo monitorando le variazioni di ritardo e le perdite di segmenti. Inoltre, il CTCP agisce in modo tale che il suo comportamento non influisce negativamente sulle altre connessioni TCP.
Durante i test eseguiti in Microsoft, è stato possibile ridurre i tempi di backup di file di grandi dimensioni di almeno la metà per connessioni da 1 Gigabit al secondo e un tempo di round-trip di 50 ms. Connessioni con capacità maggiori possono far registrare prestazioni ancora migliori. Il CTCP e l'ottimizzazione automatica della finestra di ricezione agiscono insieme per garantire una maggiore utilizzazione del canale e possono avere come risultato incrementi sostanziali di prestazione su connessioni di grande capacità.
Il CTCP è abilitato in partenza sui sistemi Windows Server "Longhorn" e disabilitato sui sistemi Windows Vista. È possibile abilitare il CTCP con il comando "netsh interface tcp set global congestionprovider=ctcp". È possibile disabilitare il CTCP con il comando "netsh interface tcp set global congestionprovider=none".

La dimensione del campo Window nell'intestazione TCP è di 16 bit, il che permette a una entità TCP di comunicare una dimensione massima della finestra di ricezione pari a 65.535 byte. Data una certa dimensione della finestra TCP è possibile calcolare in modo approssimato il throughput mediante la seguente formula:
Throughput = TCP maximum receive windowsize / RTT
Per esempio, con una finestra di ricezione di 65.535 byte e un canale con un RTT pari a 100 ms è possibile ottenere un throughput massimo di circa 5,24 Mbps, indipendentemente dalla larghezza di banda del canale. Con i canali ad alta capacità disponibili oggi, la dimensione della finestra TCP pensata in origine, anche al suo valore massimo, diventa un collo di bottiglia in termini di throughput.

Il Window Scaling
A proposito di finestre più ampie per sfruttare meglio i canali di trasmissione ad alta velocità, l' RFC 1323 (ietf.org/rfc/rfc1323.txt) definisce il "window scaling" che permette a un destinatario di comunicare dimensioni della finestra maggiori di 65.535 byte. L'opzione Scala Finestra TCP esprime un fattore di scala, che combinato con il campo Window a 16 bit dell'intestazione TCP, può portare la dimensione della finestra di ricezione fino a un massimo di circa 1 GB. L'opzione Scala finestra è presente solo nei segmenti di sincronizzazione (SYN) scambiati durante la procedura di apertura della connessione. Entrambe le entità TCP possono indicare fattori di scala diversi da utilizzare per le loro finestre di ricezione. Permettendo a un mittente di inviare più dati su una connessione, il meccanismo del "window scaling" consente ai nodi TCP di utilizzare meglio alcuni tipi di canali ad alta capacità.
Sebbene la dimensione della finestra di ricezione sia importante per il throughput del TCP, un altro fattore importante per determinare le prestazioni ottimali è la velocità con cui l'applicazione estrae i dati accumulati nella finestra di ricezione (il tasso di estrazione dell'applicazione). Se l'applicazione non estrae i dati, la finestra di ricezione comincerà a riempirsi e il destinatario dovrà comunicare una dimensione della finestra corrente più piccola. In casi estremi l'intera finestra di ricezione finirà per essere riempita e il destinatario comunicherà una dimensione della finestra di 0 byte. In questo caso il mittente sospenderà l'invio di ulteriori dati fino a che riceverà la comunicazione che la finestra di ricezione è stata svuotata. Quindi, per ottimizzare le prestazioni del TCP, la finestra di ricezione di una connessione dovrebbe essere configurata ad un valore tale da riflettere sia la capacità del canale che il tasso di estrazione dell'applicazione.
Anche quando questi due valori possano essere determinati con esattezza, essi possono comunque cambiare nel tempo. La capacità del canale (il BDP) può variare a seguito della congestione di traffico, mentre il tasso di estrazione dell'applicazione può modificarsi in funzione del numero di connessioni attraverso le quali l'applicazione sta ricevendo i dati.

La finestra di ricezione in Windows XP
Per quanto riguarda lo stack TCP/IP di Windows XP (e di Windows Server® 2003), la dimensione massima della finestra di ricezione ha diversi attributi importanti. In primo luogo, il valore di default è basato sulla velocità di linea dell'interfaccia mittente. Il valore effettivo si adatta automaticamente agli incrementi della massima dimensione dei segmenti (MSS: maximum segment size) negoziata durante la fase di apertura della connessione.
In secondo luogo, la dimensione massima della finestra di ricezione può essere configurata manualmente. I valori del registry HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\TCPWindowSize e HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interface\InterfaceGUID\TCPWindowSize possono essere configurati a un massimo di 65.535 byte (senza window scaling) o 1.073.741.823 (con window scaling).
Terzo aspetto, la dimensione massima della finestra di ricezione può utilizzare il window scaling. Per abilitare il window scaling occorre impostare il valore del registry HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Tcp1323Opts su 1 o su 3. Per impostazione predefinita, il window scaling è usato su una connessione solo se il segmento SYN che è stato ricevuto contiene l'opzione Scala finestra.
Infine, la dimensione massima della finestra di ricezione può essere specificata da un'applicazione mediante l'opzione Windows Sockets SO_RCVBUF, nel momento dell'inizializzazione della connessione. Per abilitare il window scaling, l'applicazione deve specificare una dimensione della finestra maggiore di 65.535 byte.
Nonostante il supporto alla scalabilità delle finestre, la dimensione massima della finestra di ricezione in Windows XP può ancora limitare il throughput, in quanto è uguale per tutte le connessioni TCP (se non diversamente impostato dalla singola applicazione). Pertanto, le prestazioni possono migliorare su alcune connessioni e peggiorare su altre. In più, il valore fisso della dimensione massima della finestra di ricezione per una connessione TCP non cambia a fronte di variazioni nel tasso di estrazione dell'applicazione o della congestione del canale di trasmissione

Ottimizzazione automatica della finestra di ricezione in Windows Vista
Per ottimizzare il throughput del TCP, specialmente per i canali di trasmissione ad alta capacità, lo stack TCP/IP Next Generation in Windows Vista (e nella prossima generazione di Windows Server, chiamata in codice "Longhorn") prevede il supporto all'ottimizzazione automatica della finestra di ricezione. Questa funzionalità determina l'ampiezza ottimale della finestra di ricezione misurando la capacità del canale (cioè il BDP) e il tasso di estrazione dell'applicazione e adattando la dimensione della finestra all'andamento nel tempo di questi due parametri.
L'ottimizzazione automatica della finestra di ricezione abilita per default il window scaling, consentendo dimensioni massime della finestra di ricezione fino a 16 MB. Man mano che i dati passano attraverso la connessione, lo stack TCP/IP Next Generation monitora la connessione, misura i valori del BDP e del tasso di estrazione e regola la dimensione della finestra di ricezione per ottimizzare il throughput. Lo stack TCP/IP Next Generation non utilizza più il valore del registry TCPWindowSize.
L'ottimizzazione automatica della finestra di ricezione presenta tutta una serie di vantaggi. Determina automaticamente il valore ottimale della dimensione della finestra, connessione per connessione. In Windows XP, il valore di registry TCPWindowSize vale per tutte le connessioni. Le applicazioni non hanno più bisogno di specificare le dimensioni delle finestre TCP mediante le opzioni Windows Sockets. L'amministratore non deve più configurare manualmente la dimensione della finestra di ricezione TCP nodo per nodo.
Con l'ottimizzazione automatica della finestra di ricezione, un'entità TCP in Windows Vista comunicherà di solito dimensioni della finestra di ricezione molto più grandi di quanto avviene in Windows XP. Questo permette alle altre entità TCP di inviare a un'entità di pari livello su un sistema Windows Vista molti più segmenti dati, senza bisogno di aspettare un ACK (sempre entro i vincoli imposti dal controllo della congestione). Per un tipico traffico di rete basato sui client, come quello relativo a pagine Web o alla posta elettronica, il server Web o il server di posta potranno inviare dati ai client più rapidamente, con il risultato di un miglioramento complessivo del traffico di rete. Maggiori sono i valori del BDP e del tasso di estrazione dell'applicazione e più sensibile sarà il miglioramento delle prestazioni.
L'impatto sulla rete è che un flusso di pacchetti dati TCP che normalmente sarebbero inviati con frequenza più limitata sono immessi in rete molto più velocemente, con un picco di utilizzo più largo durante il trasferimento. Per sistemi basati su Windows XP e Windows Vista che effettuano un trasferimento di dati su un canale lungo e largo, la quantità di dati trasferiti non cambia. Tuttavia, il trasferimento effettuato dal client Windows Vista è più veloce, data la maggiore dimensione della finestra di ricezione e la possibilità per il server di saturare il canale che lo collega al client.
Poiché l'ottimizzazione automatica della finestra di ricezione migliorerà l'utilizzo dei canali di comunicazione a grande capacità, può diventare importante l'impiego di tecniche di qualità del servizio (QoS: quality of service) o di misurazione del tasso di invio delle applicazioni, per quei canali che operano ai limiti della loro capacità. Per rispondere a questa possibile esigenza, Windows Vista supporta le impostazioni del QoS a livello di policy di gruppo. Queste permettono di definire i tassi di trasmissione per ogni singolo indirizzo IP o per ogni porta TCP. Per ulteriori informazioni vedere le risorse sulla QoS basate su policy.
Incremento del throughput del TCP per reti ad alto tasso di perdita.
Le reti ad alto tasso di perdita possono ridurre in modo drastico le prestazioni del TCP, a causa di frequenti timeout e ritrasmissioni. Esempi di reti di questo tipo sono le reti wireless, come quella basate sullo standard IEEE 802.11, quelle GPRS (General Packet Radio Service) o UMTS (Universal Mobile Telecommunications System), che possono registrare forti perdite di pacchetti a causa delle condizioni generali della rete, attenuazione del segnale, interferenza elettromagnetica e spostamenti del computer.
Lo stack TCP/IP di nuova generazione supporta i seguenti quattro RFC, per ottimizzare il throughput in ambienti ad alto tasso di perdita.

RFC 2582: la modifica NewReno all'algoritmo di recupero rapido del TCP
L'algoritmo di recupero rapido, definito nell'RFC 2001, è basato sull'algoritmo di Reno, che aumenta la quantità di dati inviabili da un mittente quando un segmento viene ritrasmesso a causa di evento rapido di ritrasmissione. Sebbene l'algoritmo di Reno si comporti bene nel caso di perdita di singoli segmenti, non funziona altrettanto bene quando vanno persi più segmenti. Con l'algoritmo NewReno si ottengono velocità maggiori grazie alla modifica delle modalità in cui un mittente può aumentare la velocità di invio durante un ripristino veloce quando in una finestra di dati vengono perduti più segmenti e il mittente riceve una conferma parziale (una conferma solo per la parte di dati ricevuta in modo corretto).

RFC 2883: un'estensione dell'opzione di conferma selettiva (SACK: Selective Acknowledgement) per il TCP
La conferma SACK, definita nell'RFC 2018, permette a un destinatario di indicare fino a quattro blocchi non contigui di dati ricevuti, mediante un'opzione SACK TCP. L'RFC 2883 introduce un utilizzo ulteriore dei campi dell'opzione SACK TCP, per confermare pacchetti duplicati. Grazie a ciò, il mittente può determinare quando ha ritrasmesso un segmento senza necessità e regolare il proprio comportamento in modo da evitare in futuro ritrasmissioni non necessarie. Minore è il numero di ritrasmissioni e migliori sono le prestazioni complessive.

RFC 3517: un algoritmo di recupero più prudente basato sulla conferma selettiva per il TCP
Nell'implementazione del TCP/IP in Windows Server 2003 e Windows XP, le informazioni SACK vengono utilizzate unicamente per determinare i segmenti TCP che non sono giunti a destinazione. L'RFC 3517 definisce un metodo per l'utilizzo delle informazioni SACK per il recupero dei dati perduti quando si ricevono conferme duplicate, con la sostituzione dell'algoritmo di recupero rapido nei casi in cui sulla connessione sia attivata l'opzione SACK. Lo stack TCP/IP Next Generation consente di registrare le informazioni SACK in base a ciascuna connessione e di monitorare le conferme in ingresso e quelle duplicate, in modo da effettuare recuperi più rapidi quando più segmenti non vengono ricevuti dal destinatario.

RFC 4138: Forward RTO-Recovery (F-RTO): un algoritmo per il rilevamento di timeout di ritrasmissioni spurie con TCP e SCTP (Stream Control Transmission Protocol)
Ritrasmissioni non necessarie di segmenti TCP possono verificarsi a causa di innalzamenti improvvisi dell'RTT, che fanno scattare il timeout di ritrasmissione (RTO: retransmission timeout) per segmenti inviati in precedenza e la loro conseguente ritrasmissione da parte del TCP. Se l'innalzamento si verifica appena prima dell'invio di una intera finestra di dati, il mittente può ritrasmettere anche l'intera finestra. L'algoritmo F-RTO previene le ritrasmissioni spurie di segmenti TCP nel modo seguente.
Quando scade l'RTO per più segmenti, il TCP ritrasmette solo il primo. Quando viene ricevuta la prima conferma, il TCP inizia a inviare nuovi segmenti (se questo è possibile dalla dimensione della finestra che è stata comunicata). Se la conferma successiva è relativa agli altri segmenti che sono andati in time out ma che non sono stati ritrasmessi, il TCP deduce che il timeout era fittizio e non ritrasmette gli altri segmenti in timeout.
Il risultato è che in ambienti soggetti a improvvisi e temporanei innalzamenti dell'RTT, come quando un client wireless si sposta da un punto di accesso a un altro, l'F-RTO previene ritrasmissioni di segmenti non necessarie, con un ritorno rapido alla normale velocità di trasmissione. L'uso del recupero delle perdite basato su SACK e di F-RTO è particolarmente adatto per connessioni su canali GPRS.

Joseph Daviesè un technical writer 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 su TechNet.


 Windows PowerShell: Costrutti di Windows PowerShell
Windows PowerShell
Costrutti di Windows PowerShell
Don Jones

Il mese scorso vi ho mostrato alcuni modi di immediata utilità di Windows PowerShell nella risoluzione di attività amministrative, senza dover effettivamente scrivere alcuno script. Tuttavia, pur essendo Windows PowerShell una eccellente shell interattiva, si possono sfruttare in modo efficace le sue funzionalità ed automatizzare attività più complesse iniziando ad utilizzare il suo linguaggio di script, efficace ma semplice.
Prima, però, potrete forse chiedervi: Microsoft ha davvero bisogno di un altro linguaggio di script? Dopo tutto, Microsoft ci ha fornito KiXtart, un processore di script di accesso, e Visual Basic® Scripting Edition (VBScript). Nonostante tutto, la risposta è si. Microsoft ha davvero bisogno di un altro linguaggio di script. Vi spiego perché.
Il linguaggio di Windows PowerShell™ doveva essere semplice ed intuitivo, in modo che gli amministratori potessero impararlo con un minimo di formazione. Doveva anche essere piuttosto flessibile in modo da poter gestire tutte le potenti funzionalità che Windows PowerShell era in grado di offrire agli utenti.
Poiché Windows PowerShell si basa su Microsoft® .NET Framework, la sua sintassi di script doveva essere compatibile .NET. Nell'assemblare un linguaggio di script per Windows PowerShell, i progettisti hanno selezionato una sintassi che fondamentalmente è un C# (si pronuncia C-Sharp, uno dei linguaggi forniti con .NET Framework) molto semplificato. Perché non utilizzare una sintassi simile a VBScript? Il linguaggio di script di Windows PowerShell non è tutto sommato così diverso rispetto a VBScript, ma rifacendosi maggiormente alla sintassi C#, PowerShell fornisce una sorta di punto di partenza per l'apprendimento della programmazione .NET Framework. Se doveste decidere di passare a Visual Studio® e di iniziare a scrivere applicazioni C#, gran parte della sintassi di script di Windows PowerShell vi seguirebbe.
Una delle cose più importanti del linguaggio di script di Windows PowerShell, o di qualunque altro linguaggio di script in questo campo, sono i suoi costrutti. Si tratta di speciali elementi di linguaggio che permettono a Windows PowerShell di eseguire confronti logici e intraprendere azioni diverse sulla base dei risultati dei confronti, o che permettono di ripetere indefinitamente una o più istruzioni.

Pensare in modo logico
I confronti logici costituiscono l'essenza di molti costrutti dei linguaggi di script e Windows PowerShell non fa eccezione. Un confronto guarda essenzialmente due valori o oggetti e valuta se il confronto è True o False. Per esempio, ci si può chiedere "La data di scadenza di questa password è uguale alla data di oggi?" Il risultato sarà True se le date sono uguali, o False se sono diverse. Notare che le iniziali di True e False sono in maiuscolo perché si tratta di termini con un significato particolare in Windows PowerShell.
Ecco un esempio di un vero confronto logico che è possibile eseguire in Windows PowerShell:
PS C:\> $a = 1
PS C:\> $b = 2
PS C:\> $a -eq $b
False
Ho creato una variabile denominata $a e le ho assegnato valore 1. In Windows PowerShell, i nomi delle variabili iniziano sempre con il simbolo del dollaro, sono quindi di facile individuazione. Il segno = tecnicamente è indicato come operatore di assegnamento poiché è utilizzato per assegnare un valore. Successivamente ho creato una seconda variabile, $b, assegnandole il valore di 2. Si arriva quindi all'effettivo confronto logico: chiedo a Windows PowerShell di confrontare i contenuti di $a e $b usando l'operatore -eq (uguaglianza). PowerShell effettua il confronto, determina che i due valori non sono uguali e mostra il risultato: False
Gli operatori di Windows PowerShell sono un po' diversi da quelli degli altri linguaggi di script che forse conoscete e sono diversi anche da C#. La maggior parte dei linguaggi usa l'operatore = sia per eseguire verifiche di uguaglianza sia per l'assegnazione dei valori; Windows PowerShell evita confusioni con un operatore dedicato per ciascuna funzione. La Figura 1 mostra gli operatori di confronto di Windows PowerShell con operatori equivalenti di altri linguaggi (come VBScript), che potrebbero esservi già familiari.
Figure 1 Gli operatori di confronto di PowerShell (Close Figure 1)

Operatore | Nome. | Descrizione
-eq | Uguaglianza | Verifica se i valori sono uguali. Altri linguaggi usano = o == per verificare l'uguaglianza.
-ne | Non uguale | Verifica l'ineguaglianza. Altri linguaggi usano <> o != per verificare l'ineguaglianza.
-gt | Maggiore di | Verifica se un valore è maggiore di un altro. Altri linguaggi usano il carattere >.
-lt | Minore di | Verifica se un valore è minore di un altro. Altri linguaggi usano il carattere <.
-ge | Maggiore o uguale a | Verifica se un valore è maggiore o uguale ad un altro. Simile a >= in VBScript e in altri linguaggi.
-le | Minore o uguale a | Verifica se un valore è minore o uguale ad un altro. Simile a <= in VBScript e in altri linguaggi.
Tali operatori di confronto hanno un'altra interessante caratteristica. Date un'occhiata a questo confronto:
PS C:\> $a = "TechNet"
PS C:\> $b = "technet"
PS C:\> $a -eq $b
True
Di default, gli operatori di confronto non riconoscono maiuscole e minuscole, ciò vuol dire che la versione in maiuscolo di TechNet è considerata uguale a "technet". È conveniente, poiché nella maggior parte delle attività amministrative il formato dei caratteri non è importante. Tuttavia a volte potrebbe esserlo ed è possibile chiedere a Windows PowerShell di eseguire un confronto distinguendo tra minuscole e maiuscole anteponendo la lettera c all'operatore di confronto:
PS C:\> $a -ceq $b
False
Allo stesso modo, se vi preoccupa o vi confonde il fatto che Windows PowerShell esegua un confronto senza distinzione tra minuscole e maiuscole, è possibile forzarlo a farlo anteponendo la lettera i:
PS C:\> $a -ieq $b
True
Ricordate solo che i confronti logici danno sempre come risultato uno dei due valori: True o False.

Prendere delle decisioni
Ora che siete in grado di scrivere confronti logici potete iniziare ad utilizzarli nei costrutti. Il primo costrutto che vi mostrerò permette a Windows PowerShell di decidere sulla base di un confronto. È denominato costrutto If e ne esistono alcune variazioni. Ecco la più semplice:
PS C:\> if ($a -eq $b) {
>> Write-Host "They are equal"
>> }
>>
They are equal
Ci sono alcune cose interessanti da notare qui. In primo luogo le variabili $a e $b contengono ancora rispettivamente i valori "TechNet" e "technet". Ho iniziato il costrutto utilizzando la parola chiave If. Successivamente, fra parentesi, ho inserito il confronto logico che desideravo eseguire. Segue quindi una parentesi graffa che segnala l'inizio di quello che chiamerò codice condizionale, il codice che Windows PowerShell eseguirà se il confronto dà come risultato True. Dagli esempi precedenti sapete che questo confronto dà come risultato True, quindi mi aspetto l'esecuzione del codice condizionale. Digito il mio codice condizionale, Write-Host "Sono uguali" e premo Invio. Infine chiudo la sezione del codice condizionale chiudendo la parentesi graffa e premendo Invio due volte (il secondo Invio su una riga vuota comunica al parser che ho terminato di scrivere e sono pronto all'esecuzione del codice).
Notare che questo costrutto non è in esecuzione da un file di script. L'ho semplicemente digitato nella riga di comando di Windows PowerShell. Questo è ciò che rende Windows PowerShell unico nel mondo dello script di Windows: gli script possono essere creati in modo interattivo oppure inseriti in un file per l'archiviazione permanente.
Non appena ho aperto la parentesi graffa e premuto Invio, Windows PowerShell ha visualizzato un prompt >>. È il suo modo di dire "Riconosco che sei in un costrutto e aspetto che inizi a digitare il contenuto del costrutto". Dopo aver chiuso la parentesi graffa e aver premuto Invio due volte Windows PowerShell ha eseguito immediatamente il costrutto, determinando che il confronto logico era True, ed ha eseguito il codice condizionale. È possibile capirlo perché la frase "Sono uguali" è stata visualizzata prima che PowerShell tornasse al suo normale prompt. L'uso di Windows PowerShell per creare script in modo interattivo permette di testare rapidamente segmenti di codice prima di assemblarli in uno script più permanente, cosa che rende più semplici l'apprendimento e il debug.
Vorrei sottolineare che Windows PowerShell non è particolarmente esigente riguardo a cose come premere Invio. Per esempio, questo funzionalmente è un esempio uguale al precedente:
PS C:\> if ($a -eq $b) { Write-Host "They are equal" }
They are equal
Poiché l'ho digitato tutto su un'unica riga, Windows PowerShell non ha avuto bisogno di visualizzare il prompt >> speciale, ha semplicemente eseguito il costrutto quando ho premuto Invio alla fine della riga. Come ha fatto Windows PowerShell a sapere che eseguire il costrutto era OK? Perché a quel punto era completo, la parentesi graffa era stata chiusa.
Ho accennato ad altre variazioni del costrutto If. Ecco un esempio completo, presentato come potrebbe apparire in un file di script PS1 piuttosto che nella shell:
if ($a -eq $b) {
  Write-Host "They are equal"
} elseif ($a -lt $b) {
  Write Host "One is less than the other"
} else {
  Write Host "One is greater than the other"
}
Il costrutto inizia nello stesso modo ma utilizzando la parola chiave If. Tuttavia, nell'eventualità che il confronto sia False, ho fornito un altro confronto utilizzando la parola chiave Elseif. Se anche il secondo confronto risulta False, la mia ultima parola chiave, Else, fornisce un set di codice finale che verrà eseguito.

Ripetersi
Windows PowerShell contiene un paio di costrutti per l'esecuzione continua del codice, finché uno dei confronti risulta True o False. I programmatori lo chiamano costrutto lo op. Meglio ancora, uno dei costrutti loop più utili è in grado di enumerare gli oggetti di una raccolta e di eseguire una o più righe di codice per ciascun oggetto. In modo abbastanza appropriato, il costrutto è definito un costrutto Foreach e ha questo aspetto:
PS C:\> $names = get-content "c:\computers.txt"
PS C:\> foreach ($name in $names) {
>> Write-Host $name
>> }
>>
don-pc
testbed
Ho iniziato chiedendo a Get-Content smdlet di Windows PowerShell di recuperare il contenuto di c:\computers.txt file, un file che io stesso ho creato contenente un nome di computer per ogni riga. Windows PowerShell tratta ogni riga come un oggetto, quindi il file è essenzialmente una raccolta che li contiene. La raccolta si risolve nelle variabili $nomi. Usando la parola chiave Foreach, dico a Windows PowerShell di enumerare la raccolta $nomi, usando la variabile $nome per rappresentare l'oggetto corrente ogni volta che viene eseguito il ciclo. Il codice di ciclo è riportato tra parentesi graffe. Quindi, immetterò ogni nome contenuto nel file nella riga comando. Come potete vedere dall'output risultante dal costrutto, questo è esattamente ciò che Windows PowerShell fa. Potete rendervi conto di come ciò offrirebbe un ovvio vantaggio nell'uso degli script nell'amministrazione del sistema: è possibile costruire facilmente una lista di nomi di server, per esempio, e far sì che Windows PowerShell recuperi informazioni a rotazione da ciascuno di essi.

Costrutti reali
Adesso prendiamo i confronti logici, il costrutto If e il costrutto Foreach e facciamone qualcosa di utile. Poniamo che io voglia verificare rapidamente lo stato del servizio Messenger su un gruppo di server. Mi aspetto che il servizio non sia avviato sulla maggior parte dei server, quindi non voglio che Windows PowerShell elenchi tutti i server nei quali il servizio è nello stato che mi aspetto, voglio solo che elenchi i server in cui Messenger è effettivamente avviato perché quelli sono i server sui quali ho bisogno di fare qualcosa.
So che Get-Service cmdlet di Windows PowerShell può aiutarmi a recuperare le informazioni di cui ho bisogno per il computer locale.. Sfortunatamente, comunque, non può arrivare ad un computer remoto che è il mio obiettivo reale. Fortunatamente posso anche accedere alle stesse informazioni attraverso Windows Management Instrumentation (WMI), usando Get-WMIObject cmdlet, che mi permette di lavorare con un computer remoto. Quindi ecco lo script:
$names = get-content c:\computers.txt
foreach ($name in $names) {
  $svc = get-wmiobject win32_service '
   -computer $name -filter "name='messenger'"
  if ($svc.started -eq $True ) {
    write-host "$name has Messenger running"
  }
}
Notare il carattere ' nella terza riga. Dice a Windows PowerShell che la riga successiva è un seguito. È utile in casi come questo in cui la riga intera non entrerebbe senza andare a capo. Notare inoltre che il mio costrutto If confronta $svc.started con $True. La variabile $True è una variabile speciale che in Windows PowerShell rappresenta il valore booleano True. (Una variabile complementare, $False, rappresenta il valore booleano False.) In realtà, avrei potuto fare un piccolo collegamento lì:
$names = get-content c:\computers.txt
foreach ($name in $names) {
  $svc = get-wmiobject win32_service '
   -computer $name -filter "name='messenger'"
  if ($svc.started) {
    write-host "$name has Messenger running"
  }
}
Ricordate che la condizione del costrutto If deve essere semplicemente True o False. Normalmente si ottiene come risultato True o False nel confronto tra due valori, come ho fatto io nella prima versione dello script. Tuttavia, poiché la proprietà Avviato è True o False, non c'è bisogno di confrontarla realmente a True o False.

Un utile strumento
Quindi eccolo lì, un semplice, utile strumento amministrativo che utilizza i costrutti per svolgere il suo lavoro. Sia che lo digitiate in Windows PowerShell in modo interattivo sia che lo salviate in un file PS1 per poterlo facilmente riutilizzare, è uno strumento semplice per verificare lo stato di un servizio su vari computer e costituisce una grande dimostrazione di come i costrutti possono aiutare ad automatizzare le attività amministrative.

Don Jones è il Responsabile progetti e servizi di SAPIEN Technologies e coautore di Windows PowerShell: TFM (SAPIEN Press, 2006). È possibile contattare Don attraverso il suo sito web ScriptingAnswers.com.


 Salve, Scripting Guy!: Attenzione a quello che dici
Salve, Scripting Guy!
Attenzione a quello che dici
I Microsoft Scripting Guy

DURANTE LA GUERRA CIVILE AMERICANA (per precisione nella battaglia di Spotsylvania), il generale dell'Unione John Sedgwick rimase costernato nello scoprire i suoi uomini rannicchiati di fronte allo sporadico fuoco casuale sparato verso di loro dai cecchini confederati. Secondo la leggenda, Sedgwick disse agli uomini: "Mi vergogno di voi, che cercate di schivare il fuoco in questo modo. A questa distanza, non colpirebbero un elefante". Poco dopo, Sedgwick fu il primo ufficiale di alto rango dell'Unione ad essere ucciso nella guerra. Forse i cecchini confederati non avrebbero potuto colpire un elefante a quella distanza ma, purtroppo per Sedgwick, potevano colpire un generale.
Ovviamente, non c'è bisogno di dire che la morale della storia è, grazie per il suggerimento, "Tieni giù la testa se qualcuno ti sta sparando". Una morale valida, no? Peccato non averci pensato prima. Noi avevamo pensato a un'altra: "Fai attenzione a quello che dici, perché un giorno potrebbe ritorcersi contro di te". È quello che è accaduto al generale John Sedgwick e anche a molte altre persone. Ad esempio, nessuno ricorda tra i maggiori imprenditori della storia americana Thomas Watson, benché abbia guidato a lungo l'IBM. Al contrario, Watson è passato alla storia per le parole "Penso che in tutto il mondo vi sia mercato forse per cinque computer".
È piuttosto interessante il fatto che non vi siano prove che Watson le abbia pronunciate; forse aveva solo citato il parere di qualcun altro sulla questione. Ma a chi importa? Dopo tutto, l'idea che il capo dell'IBM possa aver detto che non esisteva un mercato per i computer costituisce un aneddoto talmente curioso che non possiamo permettere che sia oscurato da stupidaggini come la realtà dei fatti, no?
Per inciso, Watson disse effettivamente "Se vuoi avere successo, raddoppia la percentuale di errori". È un consiglio che gli Scripting Guys sottoscrivono pienamente,
almeno per la parte relativa al raddoppio della percentuale di errori.
Ed ecco un'altra citazione: "Se scrivi script VBScript non hai accesso a .NET Framework." Bisogna riconoscere che dire alla gente che Microsoft® .NET Framework non è accessibile agli autori di script non è memorabile come "A questa distanza non colpirebbero un elefante" o "Penso che in tutto il mondo vi sia mercato forse per cinque computer". Tuttavia, è un'affermazione altrettanto fondamentale. È vero che .NET Framework è stato progettato pensando a sviluppatori C# e Visual Basic® ed è vero che VBScript non può creare istanze di classi .NET Framework native, ma ciò non implica che .NET Framework sia inaccessibile agli autori di script, almeno in parte.
Hai ragione: non possiamo negare che la maggior parte delle classi .NET Framework restino estranee a VBScript. Tuttavia, esiste un numero ragionevolmente grande di classi .NET con wrapper richiamabili con COM, che significa semplicemente tali classi prevedono un'interfaccia COM che consente di accedervi da un linguaggio di script come VBScript. Difficile da credere? Allora dai un'occhiata alla parte HKEY_CLASSES_ROOT del tuo registro, riportata nella Figura 1; dovresti individuare tutti i tipi di classi che iniziano con System.
Figura 1 Classi di sistema nel registro
Figura 1 Classi di sistema nel registro (Fare clic sull'immagine per ridurla)
Figura 1 Classi di sistema nel registro
Figura 1 Classi di sistema nel registro (Fare clic sull'immagine per ingrandirla)
In maggioranza sono classi .NET ed è possibile creare l'istanza di quasi tutte con VBScript.
Te l'avevamo detto!
Ovviamente, come può testimoniare chiunque abbia acquistato un prodotto pubblicizzato di notte in tv, il fatto che puoi fare qualcosa non significa che devi farla (di solito, c'è un motivo per cui quegli articoli non sono presenti nei negozi). È vero che puoi creare un'istanza della classe System.ContextMarshalException in uno script, ma non capiamo proprio perché dovresti farlo e cose te ne faresti.
Non è vero però per tutte le classi .NET Framework. Ad esempio, uno dei più temuti spauracchi del mondo degli script è il fatto che non esiste un modo facile per ordinare un elenco di voci. Per mettere un elenco in ordine alfabetico, occorre usare un set di record non connesso oppure creare da soli una complicatissima funzione Sort, come il seguente codice Sort a bolla (chi ha lo stomaco delicato salti il prossimo paragrafo):
For i = (UBound(arrNames) - 1) to 0 Step -1
    For j= 0 to i
        If UCase(arrNames(j)) >
          UCase(arrNames(j+1)) Then
            strHolder = arrNames(j+1)
            arrNames(j+1) = arrNames(j)
            arrNames(j) = strHolder
        End If
    Next
Next
Non deprimerti: il codice lo abbiamo scritto noi e non siamo neanche tanto sicuri di quello che significa.
Allora come può .NET Framework aiutarci in situazioni simili? Per rispondere, diamo un'occhiata a uno script semplicissimo ed estremamente lineare:
Set DataList = CreateObject _
      ("System.Collections.ArrayList")

DataList.Add "B"
DataList.Add "C"
DataList.Add "E"
DataList.Add "D"
DataList.Add "A"

DataList.Sort()

For Each strItem in DataList
    Wscript.Echo strItem
Next
Come puoi vedere, in questo caso stiamo creando un'istanza della classe .NET Framework System.Collections.ArrayList. Usiamo quindi il metodo Add per aggiungere cinque voci all'elenco. Va tutto a gonfie vele, tranne per un particolare: abbiamo aggiunto le voci in modo abbastanza casuale (B, C, E, D, A), ma dobbiamo visualizzarle in ordine alfabetico (A, B, C, D, E). È il momento di ricorrere al codice Sort a bolla, giusto?
Sbagliato (scusa la schiettezza, ma se è sbagliato, è sbagliato). È evidente che non dobbiamo ricorrere al codice Sort a bolla; ci serve solo richiamare il metodo Sort dell'elenco di matrici:
DataList.Sort()
è tutto. Con quell'unica riga di codice possiamo ordinare tutte le voci del nostro elenco di matrici.
Dimostrarlo? Ehi, non ti accontenti mai! Va bene, ci aspettavamo qualche San Tommaso tra i nostri interlocutori. Dato che lo script comprende un ciclo For Each, esegue il ciclo di tutte le voci presenti nell'elenco, restituendo il valore di ciascuno sullo schermo.
For Each strItem in DataList
    Wscript.Echo strItem
Next
Rispondi ora a questa domanda: cosa otteniamo eseguendo questo script?
Indovinato:
A
B
C
D
E
bello, no?
Hmmm, qualcuno probabilmente non sarà ancora soddisfatto. Tutto è perfetto, ma quello che volevi davvero è ottenere i valori in ordine decrescente, vale a dire un elenco dalla Z alla A e non viceversa. Se non ci riesci, bene. . .
Nessun problema. Dovevi solo chiedere:
Set DataList = CreateObject _
      ("System.Collections.ArrayList")

DataList.Add "B"
DataList.Add "C"
DataList.Add "E"
DataList.Add "D"
DataList.Add "A"

DataList.Sort()
DataList.Reverse()

For Each strItem in DataList
    Wscript.Echo strItem
Next
Hai ragione: sembra un compito tremendo proprio come lo script appena visto, no? Eppure c'è un elemento importante in più. Dai uno sguardo all'unica riga di codice che abbiamo aggiunto e che segue direttamente il metodo dell'ordinamento.
DataList.Reverse()
Vedi? Dopo l'ordinamento crescente dell'elenco, abbiamo battezzato il metodo inverso che, guarda un po', ha invertito l'ordine di tutte le voci della matrice. Cosa ci dà? Un risultato simile a questo:
E
D
C
B
A
difficile non restare colpiti, vero?
Ma un attimo! Si può fare di meglio. Hai provato a eliminare una voce da una matrice VBScript? Non piangere, non te lo chiederemo. Ti mostreremo invece com'è facile eliminare una voce dal nostro elenco di matrici .NET Framework. Non ti piace la lettera D? Toglila. Ecco uno script che crea un elenco di matrici, lo ordina e quindi elimina l'inserimento relativo alla D:
Set DataList = CreateObject _
  ("System.Collections.ArrayList")

DataList.Add "B"
DataList.Add "C"
DataList.Add "E"
DataList.Add "D"
DataList.Add "A"

DataList.Sort()
DataList.Remove("D")

For Each strItem in DataList
    Wscript.Echo strItem
Next
ancora una volta, devi esaminare la piccola riga di codice che segue immediatamente il metodo Sort:
DataList.Remove("D")
Qui abbiamo utilizzato il metodo Remove per eliminare la voce che corrisponde a D ed ecco cosa risulta se eseguiamo lo script:
A
B
C
E
Addio, D!
E non lasciarti sfuggire il meglio: possiamo eliminare una voce senza dover ridimensionare la matrice. È fantastico. Ovviamente, avremmo potuto anche aggiungere voci alla matrice senza dover ridimensionare tutto. Prova a dire che non rende più facile la tua vita da script.
Che tu ci creda o no, abbiamo appena raschiato la superficie delle possibilità offerte dall'elenco di matrici .NET Framework (per ulteriori informazioni, consulta la voce relativa all'elenco di matrici in .NET Framework SDK).
L'elenco di matrici è utile per gli autori di script? Mettiamola così: dopo aver visto l'elenco di matrici .NET Framework, non capiamo perché dovresti usare sempre la matrice VBScript integrata, almeno per elenchi di voci semplici come quelli che abbiamo usato in questo caso.
Bisogna riconoscere che noi Scripting Guy non abbiamo esaminato a sufficienza .NET Framework per individuare le classi che sono (o non sono) eventualmente utili per gli autori di script. Ci stiamo lavorando. Nel frattempo, sei libero di rovistare dappertutto in .NET Framework SDK. Ogni volta che esploriamo SDK troviamo qualcosa di nuovo ed interessante, utile per gli autori di script.
Un esempio? La generazione di numeri casuali. Vuoi generare un numero a caso tra 1 e 100 con il generatore di numeri casuali VBScript? Facile: basta usare un codice di questo genere:
Randomize
Wscript.Echo Int((100 - 1 + 1) * Rnd + 1)
Memorizzato la formula? Altrimenti, non preoccuparti, è molto più facile e intuitivo usare la classe .NET Framework System.Random:
Set objRandom = CreateObject("System.Random")
Wscript.Echo objRandom.Next_2(1,100)
È più probabile che tu possa calcolarlo senza spiegazioni. Inoltre, te ne forniremo una, anche solo perché TechNet Magazine ha l'idea fissa di imporre agli autori di articoli di scrivere qualcosa tutti i mesi (chissà perché, ma è la loro politica non la nostra).
Come vedi, creiamo un'istanza della classe System.Random e quindi richiamiamo il metodo Next_2, trasferendo due parametri di metodo:
  • 1, il primo numero della serie (ricorda che vogliamo generare un numero a caso tra 1 e 100).
  • 100, il numero massimo della serie.
Ecco fatto.
Forse abbiamo tempo per un'ultima domanda. Tu, con la maglia verde. Chi era che diceva che gli autori di script non hanno accesso a .NET Framework? A essere sinceri, siamo stati noi.... Sembra che non ci sia più tempo, dopo tutto. Al prossimo mese!
Un bel periodo davvero.
Sta arrivando febbraio, che vuol dire una sola cosa. No, non San Valentino. Neanche il Giorno del Presidente. Cosa, la Giornata delle marmotte? No, più ci avviciniamo a febbraio e più ci avviciniamo ai Giochi invernali di scripting 2007, la più importante (o forse l'unica) competizione internazionale di scripting. I Giochi di quest'anno si annunciano più magnifici che mai. Questa edizione prevede quattro suddivisioni:
  • VBScript principianti
  • VBScript avanzati
  • Windows PowerShell™ principianti
  • Windows PowerShell avanzati
Consulta l' home page sui Giochi invernali di scripting 2007 per ottenere maggiori informazioni.
Cosa? Oh, grazie. Buona giornata delle marmotte anche a te.

Scarica subito Windows PowerShell
Il download di Windows PowerShell 1.0 è ora disponibile. E poi è gratis! Come puoi perdere questa occasione? Scarica il software e inizia a usarlo subito.

I Microsoft Scripting Guy lavorano o, per meglio dire, sono stipendiati da Microsoft. Quando non si dedicano al baseball (o a varie altre attività) da giocatori, allenatori o semplici spettatori gestiscono il TechNet Script Center. Consultalo alla pagina www.scriptingguys.com.


 Exchange Queue &amp; A: Sappiamo tutte le risposte (perch&#233; abbiamo formulato noi le domande)
Exchange Queue & A
Sappiamo tutte le risposte (perché abbiamo formulato noi le domande)
KC Lemson and Paul Bowden

Salve e benvenuto alla prima puntata di Exchange Queue and A! Inizieremo con una serie di domande che, a essere sinceri, abbiamo formulato noi stessi, pertanto forse non è giusto indicare questo articolo come una vera e propria rubrica di domande e risposte,
ma di D&R simili alla reazione di un'eco. Siamo comunque convinti che si tratta di domande che possono sorgere nei clienti di Microsoft® Exchange Server, per cui chiediamo clemenza per l'espediente usato. Siamo comunque pronti a rispondere a tutte le domande che i nostri lettori vorranno inviare all'indirizzo queuea@microsoft.com.
In questo momento, pensiamo a questa rubrica come un luogo aperto a vari autori (tipo "scaglia gli autori contro un muro e vedi chi resiste appeso"); comunque abbiamo tutti a che fare con Exchange da molti anni. Le risposte (e le domande) di questo mese sono state redatte insieme da KC Lemson e Paul Bowden, due Lead Program Manager del team di produzione Exchange di Microsoft. Siamo entrambi veterani dello sviluppo di Exchange. Abbiamo lavorato in parecchi campi, ma non siamo mai riusciti a sfuggire alla messaggistica.
KC lavora nel gruppo Exchange da sei anni e ha rivestito vari ruoli, tra cui Program Manager in Microsoft Outlook® Web Access (OWA) e Lead Program Manager responsabile del programma clienti della versione preliminare di Exchange. Attualmente è User Experience Manager per Exchange, responsabile della progettazione dei prodotti e delle ricerche clienti. Prima di interessarsi a Exchange, è stata collaudatrice di Outlook per tre anni ed era responsabile del testing degli allegati nel periodo in cui bloccare gli allegati eseguibili nella posta elettronica era considerata un'idea pessima. KC tiene un blog alla pagina blogs.technet.com/kclemson.
Negli ultimi tre anni Paul ha lavorato a quel piccolo gioiello di ingegno rappresentato dallo strumento Exchange Best Practices Analyzer (ExBPA). In effetti, un paio di mesi fa ne ha ricavato anche un premio e una foto insieme a Bill Gates. Tuttavia, con la conclusione del progetto Exchange Server 2007, è arrivato il momento di rimescolare le carte. Paul deve smettere di sognare in XML e tornare al mondo reale. Diventerà il Release Manager della prossima versione di Exchange (quella su cui inizieremo a lavorare appena sarà stato lanciato Exchange Server 2007).
A proposito, hai colto l'ironia del titolo di questa rubrica? Ovviamente non ce ne possiamo assumere il merito, perché è un suggerimento di un lettore del blog di KC. (Ti piace la maglia, Tim?) Tra gli altri suggerimenti arrivati, ricordiamo "Pushing the Envelope" e "When I'm X64"; quest'ultimo è piaciuto così tanto a KC che ha registrato l'URL www.whenimx64.com e l'ha evidenziato nel suo blog solo perché ne aveva la possibilità. Se solo potessimo avere questa facoltà in tutto nella vita!
Nota a margine: KC aveva in un primo momento proposto per questa rubrica il nome di "Monthly Queue and A" (Queue and A mensile), scartato dopo le osservazioni del nostro editor (espresse in modo più gentile e meno brusco, ma sapevamo cosa intendeva) sull'incognita relativa al numero di collaboratori e alla nostra capacità di fornire contributi a scadenza. Analogamente, non abbiamo idea di quale saranno i commenti dei lettori sulla rubrica e se vale la pena continuarla. Ci siamo quindi incontrati a metà strada sul nome e ora devi solo farci sapere cosa ne pensi all'indirizzo queuea@microsoft.com.
Adesso, bando alle ciance e sotto con le domande!

D Perché devo essere entusiasta di Exchange Server 2007?
R Ci rendiamo conto che è rischioso aprire la prima edizione con una domanda essenzialmente di marketing, ma siamo talmente entusiasti di Exchange Server 2007 che vogliamo comunicarlo a tutti i costi. Cercheremo quindi di limitare nella risposta le asserzioni "marketizzanti" e di parlare invece solo di alcune delle molte ragioni tecniche che dovrebbero entusiasmare l'amministratore o l'utente di Exchange nella versione 2007, con un discorso da fanatico a fanatico.

Miglioramenti nella scalabilità e nelle prestazioni
Citiamo prima di tutto il più ovvio: 64 bit. Ti chiederai dov'è l'eccezionalità. Beh, Windows® a 32 bit può supportare complessivamente 4 GB (232 byte) di memoria, di cui 2 GB presi dal kernel per impostazione predefinita; restano solo 2 GB per le applicazioni. La versione attuale di Windows supporta un parametro /3GB in boot.ini che mette a disposizione delle applicazioni fino a 3 GB di spazio in memoria, ma dopo averli usati, il kernel Windows diventa un po' scomodo e non passa molto prima di essere costretti a riavviare quel server per recuperare risorse.
Fortunatamente, il supporto a 64 bit, oltre a notevoli cambiamenti nel motore di database sottostante (JET) in Exchange, risolve questo problema. Dato che i server di Exchange sono per tradizione molto più vincolati all'input/output sul disco rispetto a qualsiasi altra risorsa di sistema (come il CPU), l'aggiunta di memoria al sistema implica che potrai ridurre notevolmente l'input/output sul disco conservando maggiori dati in memoria invece di dover leggere il disco. Di conseguenza, con Exchange 2007 puoi supportare cassette postali molto più grandi per i tuoi utenti su un hardware fisico con dotazione analoga a Exchange 2003. Il mio server di posta in Microsoft, ad esempio, supporta 4000 utenti ciascuno con una cassetta postale da 2 GB, per una cifra complessiva di 6 terabyte (TB) di dati. Per chiarezza, il solo fatto che Exchange 2007 possa avvalersi di maggiore memoria non significa che ne abbia davvero bisogno. Abbiamo infatti sottoposto a test una cassetta con Windows Server® 2003 a 32 bit ed Exchange 2003 con una memoria pari o inferiore a 4 GB, quindi abbiamo installato Windows Server 2003 a 64 bit ed Exchange 2007, rilevando prestazioni simili.
Exchange 2007 prevede anche due nuovi modi per migliorare la disponibilità: Replica continua cluster (CCR) e Replica continua locale (LCR). Si tratta di tecnologie che riducono il rischio di errori di archiviazione, possibile fonte di problemi gravi. LCR conserva nella stessa macchina una copia locale dei tuoi database, comunque trasferibile in supporti di archiviazione diversi. CCR può svolgere la stessa funzione tra due macchine su una rete. CCR, unito ai miglioramenti di input/output sul disco già menzionati in questo articolo, apre nuove possibilità all'hardware di archiviazione; ora l'utilizzo di supporti di archiviazione DAS (ad esempio unità SATA o SCSI) è diventata un'opzione molto più conveniente e capace di migliorare le prestazioni.

Amministrazione
Microsoft ha investito notevoli risorse a favore di una nuova esperienza di amministrazione in Exchange 2007, che comprende l'interfaccia della linea di comando illustrata nella Figura 1. Viene denominata Exchange Management Shell (EMS) e si basa su Windows PowerShell™. Se non sei particolarmente patito per la riga di comando, nessun problema, hai sempre a tua disposizione la GUI, che però ora si chiama Exchange Management Console (EMC) e costituisce un'interfaccia molto più intuitiva del precedente Gestore di sistema (vedere la Figura 2). Se già sei o se vuoi diventare un sostenitore delle interfacce della riga di comando, prova EMS in Exchange 2007.
Figura 1 Stato dei gruppi di archiviazione in Exchange Management Shell
Figura 1 Stato dei gruppi di archiviazione in Exchange Management Shell (Fare clic sull'immagine per ridurla)
Figura 1 Stato dei gruppi di archiviazione in Exchange Management Shell
Figura 1 Stato dei gruppi di archiviazione in Exchange Management Shell (Fare clic sull'immagine per ingrandirla)
Figura 2 Lo stesso stato in Exchange Management Console
Figura 2 Lo stesso stato in Exchange Management Console (Fare clic sull'immagine per ridurla)
Figura 2 Lo stesso stato in Exchange Management Console
Figura 2 Lo stesso stato in Exchange Management Console (Fare clic sull'immagine per ingrandirla)
In Exchange 2003 era possibile che si dovesse ricorrere agli script di Windows Management Instrumentation (WMI) per eseguire alcune attività amministrative particolarmente complesse, ma con EMS tali attività possono essere svolte da chiunque veda "CD C:\TEMP" e sappia che non è il disco di un nuovo gruppo musicale (da-da-umpa). Anche se uno di noi è un ex sysadmin UNIX e quindi in questo caso è possibile dubitare della nostra obiettività, possiamo citarti un'infinità di altre fonti che attesteranno l'incredibile intuitività della shell, anche per chi non ha mai utilizzato prima una riga di comando (altre informazioni in merito saranno presenti sul prossimo articolo di Exchange Queue and A).
Una delle caratteristiche migliori di Windows PowerShell è il fatto che è orientata ad oggetti. Se richiami informazioni dal server (ad esempio un elenco di cassette postali o connettori SMTP), i dati vengono archiviati automaticamente in un oggetto o una variabile e trasmessi a STDOUT in forma di testo, per agevolarne la lettura. Si può quindi trasferire l'oggetto direttamente a un altro comando, utilizzandolo nella pipeline (in questo caso, passa l'oggetto e non il testo, per cui sarà facile modificare i dati o manipolarne una parte). Ecco un semplice esempio:
Get-Mailbox | Set-Mailbox -ProhibitSendQuota 250MB
il comando Get-Mailbox richiama un elenco di cassette postali nel sistema. | (simbolo della barra verticale) indica che l'output del comando a sinistra deve essere trasferito al comando a destra. La parte successiva, "Set-Mailbox-ProhibitSendQuota 250MB" indica che ora tutte quelle cassette postali hanno una quota tale da non poter più inviare posta elettronica dopo aver raggiunto le dimensioni di 250 MB. Potresti anche avere impostato 250000000 o 250000 KB oppure 0,25GB, dato che la shell è estremamente flessibile nella gestione dei dati.
Un altro utile miglioramento amministrativo in Exchange 2007 è la facoltà di creare regole di trasporto mediante una procedura guidata apposita molto simile a quella presente in Outlook per applicare la logica aziendale ai messaggi che passano per il sistema. Vuoi bloccare tutta la posta elettronica che contiene numeri di previdenza sociale nel testo in base a un'espressione regolare? Seleziona. Vuoi impostare una divisione etica in modo che due divisioni della tua organizzazione non possano corrispondere tra loro tramite posta elettronica? Seleziona. Vuoi aggiungere una dichiarazione di non responsabilità a ogni messaggio di posta elettronica che esce dalla tua organizzazione? Seleziona.
Un'ultima funzione amministrativa di cui siamo fieri riguarda i messaggi di sistema personalizzabili: all'esterno della cassetta ora puoi aggiungere un tuo testo personalizzato ai report di mancata consegna e anche (finalmente) ai messaggi visualizzati dagli utenti che superano la propria quota di archiviazione.

Supporta il supporto tecnico
Tra le maggiori spese sostenute da molti clienti compaiono i costi di supporto tecnico correlati alla configurazione di nuovi profili in Outlook. Grazie ad Autodiscover in Outlook 2007, basterà avviare Outlook perché ricerchi automaticamente il tuo indirizzo di posta elettronica e richiami i dati del server Exchange da Active Directory® mediante il punto di connessione del servizio. Se non sei connesso ad Active Directory, dovrai solo inserire il tuo indirizzo di posta elettronica e la relativa password e la ricerca di Autodiscover sarà in grado di scaricare un file XML da un server Web specifico (ad es. http://autodiscover.contoso.com) che contiene i dati base di configurazione, quali il server da usare per il traffico RPC su HTTP (denominato ora Outlook Anywhere).
Il supporto tecnico sostiene anche i costi relativi alla gestione di falsi positivi apparentemente inevitabili dal filtro anti-spam. In Outlook, gli utenti possono conservare elenchi sicuri di mittenti i cui messaggi non devono subire il filtro di contenuto, ma prima di Exchange 2007 tali elenchi consentivano solo il superamento del filtro di Outlook. Tuttavia, dato che il filtro di Exchange opera sui messaggi prima che Outlook li veda, gli utenti potrebbero comunque non ricevere posta elettronica da persone di cui si fidano.
Exchange 2007 è utile anche in questo caso: se usi il filtro anti-spam sul contenuto con i ruoli del server Edge o Hub in Exchange 2007, puoi configurarlo in modo da propagare gli elenchi dei mittenti sicuri degli utenti a tale server, consentendo ai messaggi provenienti da tali mittenti di superare il filtro anti-spam sul contenuto. Ovviamente, i messaggi considerati spam da un utente possono essere notiziari per un altro, per cui i mittenti sicuri vengono aggregati in base a ciascun utente.

La gioia dell'utente finale
Con la Messaggistica unificata (UM) in Exchange 2007 puoi ricevere posta vocale e fax in entrata nella tua Posta in arrivo (se non l'hai mai sperimentato prima, non sai cosa ti perdevi). Puoi anche richiamare il tuo server Exchange e imporgli di avvisare tutti i partecipanti della riunione delle 8.00 che tu arriverai tardi. Anche le organizzazioni di dimensioni minime possono disporre con facilità di un operatore automatico personalizzato con il proprio marchio: quando i clienti chiameranno, il sistema potrà smistarli correttamente. Per poter usare UM, sarà necessario un PBX basato su IP (IP/PBX) oppure collegare il PBX tradizionale a commutazione di circuito a un gateway Voice over IP (VoIP).
Link Access è una nuova funzione di OWA 2007. Che fare se sei in giro senza client VPN installato e devi vedere un documento Microsoft Word in condivisione di file o un sito SharePoint® nella rete aziendale? Non c'è problema: per sfogliare e aprire i file basta caricare OWA 2007, andare sul link Documenti e digitare il nome della condivisione o del sito SharePoint (http://mysharepointsite o \\server\share). Ovviamente, esiste un'infinità di controlli di sicurezza a disposizione degli amministratori per bloccare a piacere questa operazione: tutti i server consentiti tranne un determinato elenco, tutti i server negati tranne un determinato elenco, accesso ai documenti consentito solo se gli utenti accedono a OWA da computer personali, ecc.
OWA include anche la visualizzazione di documenti WebReady ("transcodifica" nel gergo degli appassionati), che prevede la possibilità di imporre a Exchange di generare determinati tipi di file in HTML se localmente non si dispone dell'applicazione adatta. Per impostazione predefinita, Exchange 2007 sarà fornito con il supporto per la transcodifica dei seguenti tipi di file: DOC, DOT, RTF, WBK, WIZ, XLS, XLK, PPT, PPS, POT, PWS e PDF. Il motore di transcodifica ha un'architettura plug-in che consente di aggiungere il supporto di nuovi tipi di file nel service pack. Esistono anche opzioni amministrative che permettono di determinare i tipi di file che gli utenti possono transcodificare o di impedire totalmente la transcodifica.
Se hai dispositivi portatili sincronizzabili con Exchange mediante Exchange ActiveSync®, ti farà piacere sapere che quando rispondi o inoltri un thread di posta elettronica, il messaggio non sarà più convertito in testo semplice. Il tuo testo viene aggiunto in alto, ma il corpo HTML tratto dal resto del messaggio resta inalterato. È una funzione attiva per ogni dispositivo che supporta ActiveSync e non richiede la presenza della funzionalità nel client.

D Ho sentito dire che Exchange 2007 "per la produzione è solo a 64 bit". Cosa significa?
R Exchange 2007 è disponibile nelle due versioni a 32 e 64 bit. La versione a 64 bit è destinata all'utilizzo "reale" di produzione dei ruoli fondamentali del server (Cassetta postale, Trasporto Hub, Trasporto Edge, Accesso client, Messaggistica unificata). La versione a 32 bit è destinata alla valutazione delle nuove funzioni di Exchange 2007. Gli strumenti di gestione possono essere utilizzati in 32 bit in produzione, pertanto è possibile gestire i server di produzione Exchange 2007 a 64 bit dal desktop Windows XP a 32 bit. Ricorda anche che lo schema Exchange 2007 deve essere installato da una macchina nel dominio principale: in sé stesso, Exchange non deve essere installato nel dominio principale, ma richiediamo l'estensione dello schema nel dominio principale per garantire una valida connettività di rete al master schema. Se in tale dominio non disponi di un server a 64 bit, puoi utilizzare setup.exe dalla versione a 32 bit per estendere lo schema.
Cosa c'è che non va nei server a 32 bit di cui parlate? Se ti è capitato di gestire migliaia di utenti su un solo server, saprai che occorre costantemente trovare l'equilibrio tra prestazioni e stabilità a causa dei limiti di memoria che abbiamo già descritto. Se hai acquistato un computer nuovo negli ultimi due anni, è probabile che supporti già le estensioni x64. Di fatto, è piuttosto difficile trovare oggi un computer nuovo che non supporti la modalità a 64 bit. Pertanto, forse la macchina su cui già esegui Exchange nel tuo ambiente supporta 64 bit, pur continuando a lavorare su un sistema operativo a 32 bit. Siamo già a buon punto: hai acquistato un nuovo computer in grado di supportare 64 bit; devi solo installare la versione a 64 bit di Windows Server 2003 SP1.
Allora perché durante la configurazione visualizzi continuamente l'avviso di non usare installazioni a 32 bit in produzione? Anche se è facilissimo compilare Exchange in più versioni, ciascun componente è ottimizzato e messo a punto per 64 bit (alcuni percorsi di codici che abbiamo scelto per ottenere miglioramenti in input/output sul disco su sistemi a 64 bit determina effettivamente una riduzione del livello delle prestazioni in ambienti a 32 bit). Di fatto, quando fai un controllo approfondito per l'acquisto di 32 bit, non pensi anche a farli lavorare sotto carico (simulato o altro); non avrai un quadro realistico delle sue prestazioni in un sistema a 64 bit o sul numero di utenti che potrai far rientrare nel server.
Siamo stati chiari? Puoi usare la versione Exchange a 32 bit per:
  • valutare le nuove funzioni in un server di prova che non contiene cassette postali di utenti reali.
  • saltare dalla gioia per la nuova console amministrativa, la shell o l'interfaccia OWA (però stai attento a non saltare sulla tastiera).
  • gestire i tuoi server Exchange 2007.
  • estendere lo schema nel tuo insieme di strutture Active Directory.
Quando sarai pronto a passare alle cassette postali, ti occorreranno server che eseguono un sistema operativo a 64 bit con Exchange 2007 a 64 bit, altrimenti subirai i reclami sia dall'installazione che da ExBPA (vedere la Figura 3). Paul lo sa con certezza: ha scritto il codice!
Figura 3 Tentativo di installare 32 bit dove sono assolutamente necessari 64 bit
Figura 3 Tentativo di installare 32 bit dove sono assolutamente necessari 64 bit (Fare clic sull'immagine per ridurla)
Figura 3 Tentativo di installare 32 bit dove sono assolutamente necessari 64 bit
Figura 3 Tentativo di installare 32 bit dove sono assolutamente necessari 64 bit (Fare clic sull'immagine per ingrandirla)

D Quanta memoria mi serve per eseguire Exchange 2007?
R Per l'installazione è richiesto almeno 1 GB di RAM fisica. Come ho già detto, alcuni ruoli di server sono particolarmente incidenti. Se intendi installare un server onnicomprensivo (Cassette postali, Accesso client, Trasporto Hub e Messaggistica unificata) forse vorrai partire con 2 GB di RAM e scalarla in base al numero e all'utilizzo di cassette postali. Se intendi installare un ruolo Edge o un cluster, dovrai installarli su macchine separate. Su un cluster si può installare solo un ruolo Cassette postali e nient'altro.
Sarai contento di sapere che ora potrai finalmente installare più di 4 GB di RAM nel tuo server Exchange. Attualmente lo standard di molte macchine è pari a 6 o 8 GB ed è sempre un peccato eliminare questi moduli con doppia velocità dati (DDR) o utilizzare /BurnMemory per ridurre la RAM a 4 GB (purtroppo Exchange 2003 avrà prestazioni inferiori e sarà meno stabile in presenza di più di 4 GB. Per informazioni dettagliate, vedere go.microsoft.com/fwlink/?LinkId=76537).
Per i tuoi server di infrastruttura (Hub, Accesso client e simili) sarai a posto con meno di 4 GB di RAM, anche con i carichi più pesanti. Dovresti investire in particolare nei server di Cassette postali. La cache JET a 64-bit recentemente ottimizzata richiederà tutta la memoria che potrai concederle. È ovvio che, diversamente da Exchange 2003, Exchange 2007 supporta un massimo di 50 gruppi di archiviazione.
Il fatto che ciascun gruppo di archiviazione può supportare più database non ti garantirà in effetti alcun risparmio, in particolare perché LCR e CCR (le due forme di replica di database di cui abbiamo parlato) funzionano esclusivamente con gruppi di archiviazione con un singolo database. Dovrai sicuramente potenziare la RAM se vuoi creare una serie di gruppi di archiviazione o realizzare il sogno di cassette postali di oltre 2 GB per ciascun utente. Nel blog del team Exchange troverai fantastici particolari sulla dimensione della RAM, ma le figure 4 e 5 ti forniscono qualche appunto per iniziare.
Figure 5 RAM e gruppi di archiviazione (Close Figure 5)

RAM fisica | massima consigliata per gruppi di archiviazione
2 GB | 2
4 GB | 8
8 GB | 24
12 GB | 40
+ di 16 GB | 50
Figure 4 RAM secondo il tipo di utente (Close Figure 4)

Tipo di utente | Consigli sulla memoria del ruolo Cassette postali
Ridotta | 2 GB di base + 2 MB per cassetta postale
Media | 2 GB di base + 3,5 MB per cassetta postale
Ingente | 2 GB di base + 5 MB per cassetta postale
Per inciso, Microsoft IT si serve di un numero di gruppi di archiviazione multiplo di 7, a causa della sua pianificazione delle attività di backup a rotazione, che prevede in un determinato giorno il backup di alcuni gruppi soltanto. Noi chiamiamo questo tipo di pianificazione "backup a bastoncino di zucchero" perché il foglio di Excel che descrive la pianificazione di backup nella quale i gruppi di archiviazione sono salvati in un determinato giorno sono colorati in rosso a cascata. Speriamo che il nostro contributo sia stato utile. Per il prossimo numero, invia domande "vere".

KC Lemson è un lead program manager del team Exchange Server. Dedica il suo tempo libero alla protezione del denaro della royalty nigeriana.
Paul Bowden è un lead program manager del team Exchange Server. Dedica il suo tempo libero alla protezione del denaro della royalty nigeriana. Anche Paul Bowden è un lead program manager del team Exchange Server. Dedica gran parte del suo tempo libero a riconfermare i dati del suo conto PayPal su richiesta.


 Controllo della protezione: La protezione avanzata dei servizi in Windows Vista
Controllo della protezione
La protezione avanzata dei servizi in Windows Vista
Wole Moses

Microsoft ha annunciato la Trustworthy Computing Initiative all'inizio del 2002, in conseguenza di numerosi virus e worm ad elevata pericolosità che causarono la devastazione di sistemi Windows, paralizzarono dipartimenti IT e costarono ai consumatori ingenti somme di denaro per rimediare alla situazione. Con questa iniziativa, Microsoft ha affermato
la propria responsabilità in merito al track record di protezione e ha approntato una pronta linea correttiva e un paradigma di cambiamento, sviluppando un software che desse rilievo a numerose funzionalità e al loro grado di utilizzabilità per assegnare le priorità riguardo la protezione del software e la sua integrità. Il worm Blaster colpì nel 2003, dando nuovo slancio all'iniziativa in merito alla sicurezza (per la storia del Blaster, confrontare l'intestazione laterale "Attacco dei cloni).
I cardini dell'iniziativa Trustworthy Computing sono la protezione strutturale, che riguarda le concezioni di programmazione per la protezione; la protezione predefinita, che garantisce ai componenti Windows di default le migliori impostazioni di sicurezza; e la protezione di distribuzione, che riguarda la creazione di strumenti e indicazioni per aiutare aziende e consumatori a proteggere le proprie infrastrutture Windows.
Complessivamente l'iniziativa Trustworthy Computing ha prodotto notevoli miglioramenti della protezione; sfortunatamente Windows XP non ha mai potuto beneficiare pienamente di tali miglioramenti, dal momento che venne distribuito due anni prima che l'iniziativa prendesse il via (nonostante il Service Pack 2, SP2, abbia compiuto molti progressi nel tentativo di incorporare queste concezioni, Windows XP non ha mai potuto inserirsi pienamente in questa iniziativa).
Di conseguenza, Windows Vista™ è il primo sistema operativo Microsoft in totale conformità con gli obiettivi dell'iniziativa Trustworthy Computing. La protezione avanzata dei servizi Windows Vista, una specifica implementazione del principio di protezione predefinita Trustworthy Computing (vedere figura 1), è una nuova importante funzionalità progettata per contrastare gli errori di sistema che la maggior parte dei malware odierni possono procurare. Il servizio di protezione avanzata aiuta Microsoft a fare un grande passo in avanti nella modifica del comportamento predefinito e del profilo di protezione dei servizi Windows.
Figure 1 Protezione predefinita: Servizi Windows (Close Figure 1)

Funzionalità | Descrizione | Risultato
Privilegio minimo | I servizi Windows Vista sono configurati per utilizzare i minimi privilegi necessari al loro funzionamento. | Windows Vista riduce i privilegi di protezione predefiniti dei servizi Windows, diminuendo l'impatto potenziale dei malware.
Isolamento del servizio | I SID del servizio vengono usati per consentire ai servizi di funzionare in account a basso privilegio. | Windows Vista può contrastare i malware limitando l'accesso alle sue fonti mediante SID di servizio.
Accesso di rete limitato | Le limitazioni di rete sono inoltre aumentate per tutti i servizi di Windows Vista. | Windows Vista previene l'utilizzo dei servizi da parte dei malware per svolgere attività di rete illegali.
Session 0 Isolation | Session 0 è riservata ai servizi. | Windows Vista previene la modifica dei servizi ad alto privilegio da parte dei malware che si servono di attacchi basati su messaggi, dal momento che questi non sono più in grado di funzionare nella stessa sessione.

Servizi a rischio
I servizi Windows, precedentemente noti come servizi NT, sono applicazioni long-running che vengono eseguite nelle stesse sessioni Windows. I servizi possono essere avviati automaticamente all'avvio del computer, possono essere messi in pausa e riavviati; solitamente non presentano alcuna interfaccia utente e possono essere eseguiti nell'ambito del contesto di protezione di un account che è diverso sia da quello dell'utente connesso sia dall'account predefinito del computer. In questo modo i servizi Windows sono un ottimo dispositivo per alcuni tipi di applicazioni di sviluppo e per gli utenti finali che necessitano di utilizzare tali applicazioni. Tuttavia, a causa della loro potenzialità e flessibilità, i servizi Windows sono stati tradizionalmente esposti ad attacchi per diverse ragioni.
In primo luogo, un tempo, i servizi Windows venivano generalmente eseguiti in account altamente privilegiati, come l'account sistema locale. Se un servizio eseguito nell'account sistema locale viene compromesso da un malware, il malware ha un'elevata possibilità di fare assolutamente tutto ciò che desidera entro quel sistema. Si valuti, per esempio, il servizio di chiamata di procedura remota (RPC) in Windows XP. Prima di Windows XP SP2, il servizio RPC era eseguito nell'account sistema locale ed è stato appunto questo a permettere a Blaster, Welchia e ad altri worm di eseguire attività di amministrazione una volta che era stata sfruttata la vulnerabilità dell'RPC.
In secondo luogo, molti servizi sono rivolti verso la rete, la quale consente ai malware di sfruttare questi servizi per creare connessioni in entrata o per creare connessioni in uscita a partire dai servizi infetti in modo da poter infettare altri sistemi o eseguire altre attività illecite come il monitoraggio dei tasti premuti. La maggior parte delle attuali infezioni causate da malware e worm si verifica tramite alcuni metodi di connessione alla rete.
Infine, i servizi sono tipicamente long-running, il che significa che essi rimangono attivi dal momento in cui il sistema si avvia fino allo spegnimento del computer. Questa è una caratteristica di grande interesse per i programmatori di malware perché ciò significa che essi possono esaminare il servizio in cerca di difetti per tutto il tempo in cui il sistema è attivo e, in definitiva, consentire al malware molto tempo per eseguire le sue nefande attività.

L'attacco dei cloni
Poteva essere il suo più grande trionfo. Se tutto fosse andato secondo i piani, avrebbe potuto controllare centinaia di migliaia di sistemi Windows in tutto il mondo, essendo in grado di impartire loro potenzialmente qualsiasi ordine, per poi colpire di nuovo ed osservare i sistemi obbedire diligentemente ad ogni suo comando.
Ostinato ma sfuggente nei suoi metodi, cominciò ad esaminare furtivamente molti sistemi, in cerca di un punto d'accesso vulnerabile. Non impiegò molto tempo a trovare esattamente ciò che stava cercando: un sistema non corretto e con una nota vulnerabilità che sapeva esattamente come sfruttare.
Ciò che rendeva questa vulnerabilità tanto pericolosa era il fatto che, potendo sfruttarla con successo, sarebbe stato in grado di ottenere un totale accesso all'amministrazione del sistema. Non stava semplicemente prendendo il controllo di un account: stava manovrando il più potente account di amministrazione presente in Windows. Ciò che avrebbe potuto fare in seguito avrebbe avuto un limite soltanto nella sua immaginazione.
Dopo qualche minuto di riflessione, provò il suo codice non autorizzato sulla macchina vulnerabile e unpatched e il tentativo ebbe successo! In pochi istanti era in possesso di privilegi illimitati sul computer. Utilizzò il suo accesso di amministrazione per costringere il computer a scaricare e installare un codice Trojan, effettuare modifiche del registro di sistema e quindi riavviare, per rendere il sistema infetto un sostituto in grado di obbedire ad ogni suo ordine. La modifica del registro di sistema fece in modo che il malware si attivasse ogni volta che il computer veniva riavviato.
A quel punto le sue intenzioni divennero chiare. Una volta infetto, il computer esaminava le porte di rete specifiche di tutti gli altri computer presenti sulla rete. Se la porta di rete era aperta e il computer vulnerabile, il codice Trojan veniva scaricato e installato sul nuovo computer. Si verificavano le stesse modifiche del registro di sistema. Il ciclo si sarebbe così ripetuto continuamente, creando un potente esercito di cloni. Entro la fine della giornata, migliaia di sistemi Windows in tutto il mondo erano diventati parte del suo pericoloso esercito di cloni, incapaci di obbedire a qualsiasi ordine impartito da altri.
E come se non bastasse, rivolse la sua attenzione al sito Microsoft Windows Update e ordinò ai suoi cloni di eseguire attacchi di tipo Denial of Service, il 15 agosto 2003, nel tentativo di impedire a qualunque computer nel mondo di scaricare i patch necessari che, ironia della sorte, erano disponibili da mesi.
A questo punto avrete intuito che ciò che ho appena descritto è la pandemia causata dal worm MS Blaster che, nell'agosto del 2003, colpì i computer Windows di tutto il mondo. Si può sostenere che Blaster fu uno dei più pericolosi attacchi a Windows di sempre, capace di causare miliardi di dollari di danni. Il fatto più curioso è che nonostante MS Blaster possedesse uno straordinario potere sulle macchine che infettava, era notevolmente semplice in quanto a implementazione.

Come funziona Blaster
Blaster e i suoi derivati si servono di una vulnerabilità nel servizio RPC di Windows per eseguire un buffer overflow. Un intruso in grado di sfruttare con successo tale vulnerabilità potrebbe eseguire codici con i privilegi sistema locale sul sistema infetto, consentendogli poi di operare qualsiasi attività su quel sistema: installare programmi, visualizzare, modificare o cancellare dati e creare nuovi account con pieni privilegi.
Nel caso di Blaster, il worm analizza automaticamente la rete in cerca di computer con porte 135 TCP aperte. Quando trova una vittima, Blaster prova a sfruttare la vulnerabilità RPC. Se il tentativo ha successo, si connette alla porta 4444 di destinazione e costringe il computer vittima ad avviare il Trivial File Transfer Protocol (tfpt) e a scaricare una copia del worm, denominata MSBLAST.EXE, dal sistema infetto (tftp è compreso nel sistema operativo di Windows 2000, Windows XP e Windows Server 2003). In seguito il sistema di attacco impone al computer infettato di avviare MSBLAST.EXE, facendo del computer vittima il nuovo aggressore. Blaster inoltre inserisce il codice nella chiave di registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows\CurrentVersion\Run, consentendo la sua attivazione ogni volta che il computer viene avviato.

Protezione avanzata dei servizi
I servizi di Windows Vista sono stati rafforzati e protetti in quattro modi: esecuzione dei servizi con privilegio minimo, isolamento dei servizi, accesso di rete limitato e Session 0 Isolation. Illustrerò nel dettaglio ognuna di queste modalità.
Esecuzione con privilegio minimo In precedenza, numerosi servizi Windows funzionavano nel contesto dell'account del sistema locale, ovvero l'account più potente di Windows. L'account del sistema locale è dotato di diritti e privilegi per l'utente quali ad esempio la possibilità di accedere a quasi tutti gli oggetti del sistema o a un profilo utente differente, di spacciarsi per altri utenti, di aprire chiavi di registro riservate come: HKLM\SECURITY e di inviare le credenziali del computer a server remoti. Dato che gli autori del malware ambiscono a godere di un tale livello di accesso e di controllo di Windows, qualsiasi servizio in esecuzione nella protezione del sistema locale risulta senz'altro un bersaglio appetitoso.
Ne consegue che sebbene un buon numero di servizi Windows sia stato configurato in modo da funzionare nell'account del sistema locale, molti di questi necessitano solo di un sottoinsieme ridotto dei privilegi propri dell'account del sistema locale. Purtroppo Windows XP e le precedenti versioni di Windows non accettano mezze misure, vale a dire che non forniscono alcun meccanismo in grado di selezionare i privilegi necessari. Di conseguenza, è inevitabile che molti servizi Windows finiscano per funzionare senza alcuna ragione con privilegi di sicurezza eccessivi.
I servizi di protezione avanzata di Windows Vista affrontano la questione introducendo il concetto di privilegio minimo nella configurazione dei servizi. Il privilegio minimo permette ai servizi di funzionare con i minimi privilegi necessari, invece di costringerli ad utilizzare ognuno dei privilegi di default assegnati all'account che usano all'accesso.
Per esempio, un servizio può avere la necessità di operare come parte del sistema operativo, ma non di creare un token di protezione. Con il privilegio minimo, è possibile rimuovere il privilegio di creare token di protezione. Di conseguenza si diminuisce il danno potenziale che un intruso può causare nel caso in cui quel servizio diventasse vulnerabile ad uno sfruttamento nel futuro. Gli sviluppatori possono utilizzare strumenti da riga di comando come SC.exe (vedi figura 2) o adottare metodi programmatici per definire e specificare i privilegi di cui necessita il loro servizio. Inoltre, Microsoft ha applicato il privilegio minimo per ridurre i privilegi predefiniti su tutti i servizi integrati di Windows Vista.
Figura 2 Le opzioni di comando SC definiscono i privilegi dei servizi Windows Vista
Figura 2 Le opzioni di comando SC definiscono i privilegi dei servizi Windows Vista (Fare clic sull'immagine per ridurla)
Figura 2 Le opzioni di comando SC definiscono i privilegi dei servizi Windows Vista
Figura 2 Le opzioni di comando SC definiscono i privilegi dei servizi Windows Vista (Fare clic sull'immagine per ingrandirla)
Isolamento del servizio Nelle versioni di Windows precedenti a Windows Vista, quando un servizio necessitava l'accesso ad un oggetto privilegiato (come una chiave di registro o un file riservato), lo otteneva mediante uno di questi tre metodi: utilizzando l'account del sistema locale per accedere all'oggetto; diminuendo la protezione sulle chiavi di registro o sui file per consentire ad un servizio a basso privilegio di ottenere l'accesso; oppure creando un account specifico per quel servizio e consentendo l'accesso agli oggetti solo tramite quell'account.
Sebbene ognuno di questi approcci funzioni, ci sono alcuni problemi fondamentali. I primi due sono intrinsecamente pericolosi e il terzo presenta la complicazione di avere da gestire manualmente delle password sui nuovi account.
Supponiamo, per esempio, che un programma antivirus installi un servizio che necessita di accedere a diversi oggetti di sistema riservati, come file di firma virus e voci di registro relative al software antivirus. Se il servizio antivirus era configurato, per accedere ai suoi oggetti, a utilizzare l'account del sistema locale o, allo stesso modo, qualunque altro account di protezione integrato, ciò significava che se qualsiasi altro servizio Windows che utilizzava quell'account veniva infettato dal malware, quello stesso malware era potenzialmente in grado di modificare la modalità di funzionamento del software antivirus, o semplicemente di interrompere completamente il servizio antivirus. In effetti i malware attuali usano proprio alcune di queste tecniche per nascondersi ed essere attivi.
Windows Vista offre delle soluzioni a queste problemi in merito alla protezione e alla gestibilità con l'isolamento del servizio, che consente ad un servizio di riservarsi l'uso esclusivo di un oggetto proteggendo la fonte, come un file o una chiave di registro, con una voce di controllo dell'accesso che contiene un ID di sicurezza per il servizio (SID). In questo modo, il servizio antivirus descritto nell'esempio precedente può funzionare entro un account a basso privilegio pur mantenendo l'accesso ai file delle firme riservati o alle chiavi di registro. Per ottenere l'accesso, il servizio antivirus (che funziona in tale account a basso privilegio) ha un proprio SID assegnatogli da Windows Vista. Una volta che il SID è assegnato, il programma antivirus può quindi modificare gli elenchi di controllo di accesso (ACL) dei file di sistema e degli oggetti del registro per garantire l'accesso esclusivamente al servizio antivirus.
Ecco un altro esempio. Nel 2003 l'worm Welchia sfruttò una vulnerabilità RPC per copiarsi in %System%\Wins\Dllhost.exe. Aggiunse anche chiavi di registro a HKLM\SYSTEM\CurrentControlSet\Services per installare i suoi servizi sui sistemi Windows infetti. Oggi, tuttavia, Windows Vista può contrastare Welchia limitando l'accesso a entrambi i percorsi per i servizi specifici appropriati e utilizzando account a basso privilegio per garantire l'accesso a quei servizi.
Accesso di rete limitato Windows Vista comprende un nuovo firewall che si basa sulle funzionalità introdotte con il firewall di Windows XP SP2. Le nuove funzionalità più importanti includono il filtraggio in uscita e l'integrazione con IPsec. Il nuovo firewall si integra anche con la protezione avanzata dei servizi di Windows Vista al fine di rendere più difficile che un malware possa sfruttare la vulnerabilità di un servizio Windows per eseguire attività di rete scorrette.
Nel firewall di Windows Vista, i criteri di protezione del firewall assegnati ai servizi Windows provvedono a determinare limitazioni e restrizioni al comportamento del servizio. Per esempio, ad un servizio come il Plug and Play, che non può mai avere bisogno di comunicare con una porta di rete, verrà assegnata la restrizione "accesso alla rete negato". Con questa protezione attivata, un exploit progettato per colpire quel servizio specifico non potrà mai raggiungere il servizio tramite un approccio basato sulla rete. Qualunque tentativo di comunicazione, in entrata o in uscita, da parte di quel servizio con restrizione, verrebbe bloccato dal firewall. Altri servizi che hanno una legittima necessità di accedere alla rete, possono essere configurati per utilizzare solo determinate porte. Gli sviluppatori possono sfruttare la possibilità di limitare l'accesso alla rete del loro servizio.
Le limitazioni di rete si combinano con il servizio di protezione avanzata per fornire una solida difesa contro potenziali attacchi basati sui servizi e questo è certamente un notevole passo in avanti rispetto alle precedenti versioni di Windows. In precedenza non c'era alcun modo per Windows di decidere come, dove e a quali servizi permettere di comunicare mediante la rete. Al contrario, usando le limitazioni di rete del firewall Windows Vista nei confronti del servizio RPC, è possibile impedire a virus come Blaster, Sasser, o Welchia di servirsi dei servizi infetti per comunicare con altri computer.
Session 0 Isolation Il rapido passaggio da un utente all'altro in Windows XP permette l'accesso contemporaneo a più utenti, ponendo ognuno di loro in differenti sessioni di Windows. la Session 0 viene creata all'avvio, con sessioni aggiunte successivamente a seconda della necessità. I servizi hanno sempre funzionato in Session 0 e, prima di Windows Vista, anche le applicazioni dell'utente erano in grado di funzionare in Session 0. Tuttavia, ci sono delle pericolose conseguenze di protezione nel permettere il funzionamento delle applicazioni utente e dei servizi Windows nella stessa sessione poiché i servizi funzionano con elevato privilegio e sono perciò bersagli per malware in cerca di mezzi per aumentare il loro livello di privilegio.
Windows Vista si concentra su questi rischi di protezione e limita l'uso della Session 0 esclusivamente ai servizi, eseguendo le applicazioni in altre sessioni e rendendo la Session 0 non interattiva (ciò significa che un servizio non può creare un interfaccia utente, una finestra di dialogo o un prompt di comandi, ai quali possa accedere un utente finale). A causa di queste modifiche, la Session 0 Isolation avrà un impatto sulla compatibilità delle applicazioni per chiunque sviluppi driver o servizi Windows.

Riepilogo
Windows Vista è il primo completo sistema operativo in conformità con l'iniziativa Trustworthy Computing prodotto da Microsoft e comprende notevoli miglioramenti che incrementano in maniera determinante la protezione degli utenti Windows. La protezione dei computer è, ovviamente, una disciplina in evoluzione e non c'è alcun dubbio che i programmatori di malware ricerchino, analizzino e sperimentino nuovi modi di sfruttare le vulnerabilità di Windows. Tuttavia, le funzionalità del nuovo servizio di protezione avanzata di Windows Vista aumentano gli ostacoli che è possibile opporre loro, rafforzando le impostazioni di protezione predefinite e riducendo l'area potenzialmente sensibile agli attacchi. Per maggiori informazioni in merito a questi essenziali miglioramenti, visitare il sito microsoft.com/whdc/system/vista/Vista_Services.mspx.

Wole Moses è una guida di Microsoft Regional Windows e un collaboratore Windows da otto anni. Attualmente residente a Istanbul, in Turchia, Wole lavora con i più importanti clienti dei mercati emergenti del Medio Oriente e dell'Africa per supportarli nell'ideazione e nella progettazione di soluzioni Microsoft in grado di ottimizzare le loro infrastrutture IT ed aumentarne contemporaneamente la sicurezza.


 I file del desktop: Kit di installazione automatica di Windows
I file del desktop
Kit di installazione automatica di Windows
Wes Miller

Nel corso del tempo, Microsoft ha proposto due versioni degli strumenti di distribuzione prodotti dal team di distribuzione Windows. La prima versione si è concretizzata nel file deploy.cab presente per anni nel CD di Windows. Comprendeva documentazione e strumenti come Gestione guidata installazione (per la creazione di file di installazione automatica) e
lo strumento Sysprep (utilizzato per preparare i desktop per la distribuzione). L'altra versione degli strumenti di distribuzione consisteva nel Kit di preinstallazione OEM (OPK), progettato espressamente per soddisfare le necessità dei produttori di sistemi OEM e disponibile solo per loro. Windows® PE, in origine, è stato distribuito così. Esiste una nuova versione di OPK per Windows Vista™, che comunque continuerà ad essere riservata solo a OEM.
Per la maggior parte degli altri clienti Microsoft (alcuni dei quali non hanno potuto acquisire Windows PE durante il periodo di tempo di Windows XP) sarà comunque disponibile un prodotto quasi analogo a OPK, denominato Kit di installazione automatica di Windows (WAIK). WAIK sarà scaricabile gratuitamente dalla pagina microsoft.com/downloads dopo il lancio di Windows Vista e includerà i seguenti componenti: Windows PE 2.0, Servizi di distribuzione Windows, ImageX e Windows System Image Manager; quest'ultimo, che prima non ho citato, consente la creazione di file unattend.xml per automatizzare l'installazione. Viene fornita anche la documentazione completa di tutti gli strumenti.
Ricorda che è meglio acquisire WAIK mediante download del Business Desktop Deployment Solution Accelerator (BDD) dalla pagina microsoft.com/desktopdeployment, che offre non solo WAIK, ma anche l'Utilità di migrazione stato utente (USMT) e Application Compatibility Toolkit (ACT). BDD comprende anche altri strumenti e le linee guida per ottenere una corretta distribuzione di Windows Vista.

Windows PE 2.0
Ho trattato a fondo Windows PE 2.0 nel numero di novembre 2006 di TechNet Magazine, quindi non mi addentrerò molto nell'argomento in questa sede; basti dire che WAIK metterà sul mercato la versione ufficiale del nuovo Windows PE per Windows Vista. È importante comprendere Windows PE, dato che tutti gli altri strumenti presenti in WAIK utilizzano o lavorano in qualche modo con Windows PE. Leggi qui il mio articolo su Windows PE 2.0. .

ImageX
Nel mio ultimo articolo, ho dedicato molto spazio al formato di file Windows Imaging o WIM (vedi microsoft.com/technet/technetmag/issues/2006/12/desktopfiles). Prendiamo ora in considerazione ImageX, uno strumento piccolo ma potente di riga di comando, che rende possibile la gestione integrata di immagini di Windows Vista. Quando progettavamo ImageX, avevamo pensato di creare uno strumento basato su GUI, ma poi abbiamo deciso di concentrarci sulla riga di comando, dato che l'elemento critico era l'automazione del processo di gestione delle immagini. Per conoscere le opzioni della riga di comando di ImageX, guarda la Figura 1.
Figura 1 Strumento riga di comando Image X in funzione
Figura 1 Strumento riga di comando Image X in funzione (Fare clic sull'immagine per ridurla)
Figura 1 Strumento riga di comando Image X in funzione
Figura 1 Strumento riga di comando Image X in funzione (Fare clic sull'immagine per ingrandirla)
Servizi di distribuzione Windows (WDS), che illustrerò più avanti, fornisce uno strumento GUI leggero che consente di acquisire facilmente le immagini, senza offrire la completa funzionalità di ImageX. Inoltre, è importante osservare che ImageX è stato progettato e collaudato per acquisire immagini da distribuire in Windows PE. Non è stato concepito per eseguire acquisizioni "effettive" di sistemi Windows in funzione.
Se conosci bene qualche altro strumento di immagini di sistema, in qualche misura ImageX ti risulterà familiare. È stato progettato in modo che sia facile e consenta di acquisire e applicare immagini; deve inoltre fornire una funzionalità cruciale, spesso inesistente o incompleta nei precedenti strumenti di distribuzione di uso comune. Un esempio di tale affermazione che approfondirò tra breve è la capacità di installare in modo facile e trasparente un'immagine nell'ambito del file system locale, consentendo di vedere, modificare o cancellare file dall'interno di un'immagine esistente.
ImageX fornisce le opzioni di manipolazione delle immagini illustrate nella Figura 2. Ricorderò un paio di comandi specifici per descriverli più approfonditamente.
Figure 2 Opzioni di manipolazione delle immagini (Close Figure 2)

Opzione | Descrizione
IMAGEX /APPEND | Accoda una nuova immagine di volume in un file WIM che contiene già un'immagine di volume.
IMAGEX /APPLY | Applica un'immagine di volume a un volume già partizionato e formattato.
IMAGEX /CAPTURE | Acquisisce un'immagine di volume iniziale in un file WIM.
IMAGEX /DELETE | Cancella definitivamente i riferimenti in un'immagine volume di un file WIM. Ricorda che questa operazione cancella i metadati. Non esegue l'eliminazione di dati di file compressi, effettuabile utilizzando l'opzione /export per creare un WIM completamente nuovo.
IMAGEX /DIR | Visualizza la struttura della directory di un'immagine di volume specificata in un file WIM.
IMAGEX /EXPORT | Esporta un'immagine di volume in un file WIM o vari file WIM suddivisi.
IMAGEX /INFO | Visualizza i dettagli di una determinata immagine di volume o di un file WIM; può anche impostare l'opzione /boot in relazione a una determinata immagine di volume contenente Windows PE. Solo Windows PE è avviabile da un file WIM.
IMAGEX /SPLIT | Suddivide un file WIM in uno o più file SWM di dimensioni minori, perché possa essere contenuto in più CD o DVD.
Il comando Acquisisci dovrebbe essere relativamente chiaro: essenzialmente, occorre ricordare che si usa una sola volta per WIM. Dato che un file WIM è solo un file di acquisizione, è possibile acquisire un volume intero (C:) o anche solo una directory (C:\Test). L'applicazione è la stessa: si può applicare un'immagine a una directory (anche dopo aver acquisito un intero volume) oppure, come è più probabile che accada, una delle directory principali di un volume. Se in un WIM esiste già una singola immagine di volume, si userà il comando di accodamento per fare aggiunte. Anche Applica è relativamente autoesplicativo e diventa complicato solo se si applica a più file WIM. Il comando Cancella è utile se si desidera eliminare il riferimento a una specifica immagine di volume. Per eliminare totalmente i dati da un'immagine si deve invece utilizzare Importa, che crea un nuovo WIN completamente privo di dati (in pratica, se si desidera ridurre la dimensione dell'immagine eliminando i dati residui, si deve utilizzare Esporta). Occorre considerare Esporta come uno strumento che può agire come unità di deframmentazione o di consolidamento, consentendo di inserire l'immagine di un volume in uno o più file WIM o di esportarla nel proprio file WIM completamente autonomo. ImageX fornisce anche le seguenti opzioni di modifica delle immagini: IMAGEX /MOUNT, IMAGEX /MOUNTRW e IMAGEX /UNMOUNT.
Ho già accennato che il team di prodotto ha inserito fin dall'inizio capacità di modifica negli strumenti e nel formato di gestione delle immagini. Rendendo possibili le modifiche, il formato e gli strumenti consentono ai clienti di copiare i file all'interno o all'esterno, di applicare service pack, di aggiungere/eliminare file o applicazioni autonome oppure di aggiungere/eliminare altri dati dall'immagine secondo le necessità (perfino di installare e modificare il registro). Il servizio sull'immagine è sempre stato un obiettivo fondamentale.
Puoi pensare di installare l'immagine durante il caricamento del file WIM come directory virtuale. Se conosci a fondo l'argomento, l'analogia che si avvicina forse di più fa riferimento a un punto di montaggio del volume, che consente di installare un intero volume in una directory esistente in un altro (rendendo F: visibile come C:\DriveF, ad esempio). Analogamente, è possibile che tu abbia utilizzato lo strumento Microsoft® Virtual CD o altri strumenti di montaggio ISO che consentono di installare immagini ISO (CD) come unità locali. Allo stesso modo, ImageX consente di installare un file WIM come overlay sopra una directory. Crei una directory e poi utilizzi il comando Installa per sovrapporre in memoria l'immagine di volume specificata sopra la directory stessa, in modo molto simile all'applicazione.
Diversamente dallo strumento Virtual CD, però, puoi installare un'immagine WIM ubicata anche in una condivisione di rete o su un supporto rimovibile. Ovviamente, questa operazione può limitare la sua capacità di modifica: un WIM su un supporto ottico (CD o DVD) in genere è modificabile solo in modalità solo lettura. Inoltre in un WIM puoi modificare solo un'immagine di volume alla volta, se effettui la modifica in modalità lettura/scrittura; in questo modo, consenti il blocco corretto e l'aggiornamento sicuro del file disinstallato.
Puoi installare l'immagine in sola lettura (/mount) o lettura/scrittura (/mountrw). Se utilizzi lettura/scrittura, ogni modifica apportata all'immagine viene temporaneamente memorizzata nella cache (senza avere effetto immediato) e quando esegui il comando /unmount con l'opzione /commit, le modifiche vengono inserite in modo permanente nel WIM. Se hai effettuato delle modifiche e poi hai deciso che non desideri che siano permanenti, potresti anche scartarle invece di eseguire il commit quando disinstalli l'immagine. Devi scegliere tra tutto o niente: tutte le modifiche effettuate durante il periodo in cui il file WIM era installato subiscono il commit o lo scarto.
In questo caso, devi ricordare che, esattamente come nel caso del comando Cancella, quando usi la funzionalità lettura/scrittura per modificare il WIM, i dati del file presenti nel WIM stesso non sono eliminati totalmente: i file sono accodati alla fine del file WIM e il riferimento precedente nell'immagine del volume viene rimpiazzato dai dati aggiornati. Ciò significa che se hai aggiunto un nuovo file da 5 MB, sostituendo un file esistente di pari grandezza, la tua immagine crescerà delle dimensioni del file di 5 MB dopo la sua compressione (cioè di un valore pari o inferiore a 5 MB, a seconda del tipo di compressione utilizzata). Per eliminare i dati vecchi dal WIM (se volevi compattare l'immagine) dovresti usare /export per esportare l'immagine di volume in un file WIM completamente nuovo.
Se hai letto le mie argomentazioni su Windows PE 2.0 sul numero di novembre 2006 di TechNet Magazine, ricorderai che supporta l'avvio da un WIM. Per ottenerlo, il file WIM viene letto con un driver, in modo simile a ImageX. Tuttavia il supporto ImageX è stato progettato per essere utilizzato al momento del progetto e la funzione di avvio WIM era stata concepita espressamente per essere in sola lettura e lavorare solo per Windows PE. Pertanto, per quanto simili, i driver e l'implementazione sono diversi.
Oltre allo strumento ImageX, Microsoft fornisce un'API formalmente documentata, WIMGAPI, che consente una compatibilità totale per ogni strumento di gestione delle immagini diretto ad acquisire, applicare o modificare file WIM. Di conseguenza, qualsiasi terza parte che desideri aggiungere un supporto alla gestione di immagine o sostituire un'infrastruttura di gestione di immagini esistente, può farlo con WIMGAPI. Questa API fa parte di WAIK, con il quale viene distribuita.

Installazione di Windows basata su immagine
Avendo a disposizione il formato di gestione di immagini, è stato progettato il nuovo motore per l'installazione. È essenzialmente molto simile al vecchio Mini-Setup o Windows Welcome: pone le domande fondamentali necessarie ad ottenere unicamente l'installazione e la configurazione del sistema gestendo anche la configurazione del disco, prima di installare l'immagine da install.wim sul DVD di installazione di Windows. Il nuovo motore di installazione mira innanzitutto a consentire le installazioni manuali di Windows. Abbiamo pensato ai molti clienti OEM e aziendali che avrebbero usato ImageX per effettuare le proprie distribuzioni effettive.

Servizi di distribuzione remota
A questo punto forse ti chiederai perché non ho parlato di Servizi di distribuzione remota (RIS). RIS costituisce un'altra eredità che ho ricevuto unendomi al team di distribuzione Windows. RIS, lanciato per la prima volta con Windows 2000 e poi di nuovo in Windows Server® 2003, utilizza un Pre-boot Execution Environment (PXE) per avviare in rete un computer al punto che è possibile completare una rudimentale procedura guidata ed effettuare un'installazione di Windows sempre in rete.
L'unico grosso problema di RIS era la sua lacerante fragilità. La versione Windows Server 2003 di RIS, supportata all'inizio solo da Windows 2000 Professional, ha esteso il supporto alle versioni di server Windows. Dato l'incipiente entusiasmo per i controller di archiviazione Serial ATA (SATA), GB o NIC più veloci, mantenere aggiornati i driver in RIS continuava a essere pericoloso. Inoltre, RIS non è compatibile con molte versioni locali di Windows, vale a dire che l'installazione di versioni localizzate di Windows con tastiere localizzate può essere difficile se non impossibile. Servizi di distribuzione Windows è stato progettato con funzioni di amalgama per l'installazione di Windows e l'avvio con RIS-a PXE di Windows PE, che consente la distribuzione di un file WIM in rete.
WDS è stato concepito non solo per essere disponibile nella prossima versione del server Windows denominato in codice "Longhorn", ma anche come aggiornamento installabile su Windows Server 2003. In pratica WDS sarà in grado di distribuire Windows Vista da versioni precedenti del server Windows e sarà in grado di distribuire anche versioni precedenti di Windows. Di fatto WDS non funziona solo con RIS, ma richiede un'installazione di RIS per poter funzionare, dal momento che funziona aggiornando l'infrastruttura RIS per renderla compatibile con WDS, mentre fornisce anche la nuova infrastruttura WDS.
Oltre alla funzione di aggiornamento da RIS (proponendo di conseguenza un valido percorso di migrazione per i clienti che continuano a usare versioni precedenti di Windows all'inizio della distribuzione di Windows Vista), WDS fornisce anche strumenti di gestione migliori rispetto alla prestazioni precedenti RIS, rendendo più facile l'aggiunta di nuove immagini al server. Fornisce anche un'infrastruttura PXE, vale a dire che un server PXE di terzi può integrare e precisare che risponderà a una specifica richiesta PXE del cliente al posto di WDS. Si trattava di una richiesta che con RIS si riceveva spesso, ma che allora non avevamo potuto soddisfare.
All'inizio WDS sarà disponibile come componente installabile su Windows Server 2003 per l'aggiornamento di RIS; sarà inoltre commercializzato come componente integrato dei prodotti Windows Server "Longhorn". Microsoft attualmente ha in programma l'inserimento della funzionalità WDS nelle versioni future di SMS (che sarà denominato System Center Configuration Manager).
WDS lavora fornendo una versione con avvio PXE di Windows PE 2.0. Questa immagine è contenuta in un WIM (vale a dire, ci sono dati ridotti trasmessi in rete) ed è avviata in rete in un disco RAM. Quindi l'installazione si svolge in Windows PE, mediante una nuova applicazione client che fornisce la funzionalità offerta in passato da un'applicazione rudimentale di RIS, OSChooser.
Anche se WDS non supporta direttamente le immagini RIS di Windows XP, Windows 2000 o Windows Server 2003, ha la capacità di distribuire loro immagini Sysprep. WDS si integra anche nell'Active Directory®, come faceva RIS ma, se occorre, il server PXE può anche essere eseguito senza Active Directory. La funzione WDS può essere lanciata anche da Windows PE avviata da qualcosa di diverso da PXE, ad esempio CD, DVD o unità flash USB (UFD). Si tratta di una funzionalità utile che RIS non era in grado di fornire.
Esistono in pratica tre modalità di funzionamento possibili di WDS, in funzione dell'attuale uso di RIS:
Sono installati file binari di retaggio WDS, ma il meccanismo di avvio è OSChooser. RISetup e RIPrep, gli strumenti di installazione con script e di installazione basata sull'immagine per RIS continuano a funzionare.
Modalità mista Entrambi i meccanismi sono disponibili, entrambi i set di strumenti di gestione di immagini funzionano ed entrambi i set di strumenti di gestione funzionano.
Nativa Non esiste funzionalità RIS, ma sono disponibili solo la funzionalità WIM, l'avvio Windows PE e nuovi strumenti di gestione. Ricorda che si tratta dell'unica modalità disponibile prevista per Windows Server "Longhorn" e che non includerà alcuna funzionalità RIS.
WDS implementa anche un protocollo di comunicazione client-server personalizzato e, di conseguenza, gli OEM e i clienti aziendali possono in teoria costruire anche una propria applicazione di distribuzione.
Il processo di acquisizione di un'immagine WIM in un server WDS è quasi identico allo scenario Sysprep che ho illustrato, con una differenza: l'ultima fase comprenderà un avvio in WDS Capture Image, un'immagine Windows PE presente per favorire l'acquisizione di un sistema di cliente nel server WDS.
I componenti fondamentali di WDS sono: Servizio server WDS, server PXE, archiviazione immagini, protocollo di comunicazione, condivisione di file con immagini Windows PE (da avviare), immagini WIM (da installare) e altri file correlati alla gestione.
WDS è stato progettato per risultare relativamente leggero e per fornire un'esperienza quasi identica (anche se spesso più veloce) rispetto a un'installazione ottica tradizionale di Windows basata su supporti. L'implementazione di WDS come aggiornamento di RIS consente di sostituirlo con calma e gradualità, facilitando al tempo stesso la distribuzione di Windows Vista nell'organizzazione, con una modalità facile da usare e più veloce di quanto abbia mai potuto fare RIS con le versioni precedenti di Windows.

Windows System Image Manager
Il componente finale di WAIK è Windows System Image Manager (SIM). Se conosci a fondo le precedenti versioni Windows di Gestione guidata installazione, il concetto di Windows SIM dovrebbe risultare familiare. Questo strumento consente di completare varie attività con file di installazione automatica. Puoi creare con facilità un nuovo file di installazione automatica, modificarne uno esistente o verificare le impostazioni di un file esistente rispetto a un'immagine specifica di Windows Vista. Lo strumento può inoltre visualizzare tutte le potenziali opzioni di configurazione, dato uno specifico WIM contenente Windows Vista: pensa alle tradizionali opzioni di installazione automatica, documentate nel tempo nei file che accompagnano deploy.cab. Infine, Windows SIM può essere utile nella creazione di condivisioni di distribuzione e set di configurazione, utilizzati per aggiungere driver, applicazioni e aggiornamenti alle installazioni Windows Vista tramite un file di installazione automatica.
Windows SIM richiede che tu sia un amministratore locale del sistema sul quale lo stai eseguendo. Aprendo Windows SIM, vedrai i cinque riquadri riportati nella Figura 3.
Figura 3 Windows System Image Manager
Figura 3 Windows System Image Manager (Fare clic sull'immagine per ridurla)
Figura 3 Windows System Image Manager
Figura 3 Windows System Image Manager (Fare clic sull'immagine per ingrandirla)
Condivisione distribuzione, in alto a sinistra, è un riquadro che riporta i driver e altri pacchetti installati tramite SIM. Condivisione distribuzione non è installata per impostazione predefinita, ma è facile aprirne o crearne una.
Il riquadro Immagine di Windows visualizza le opzioni di configurazione (componenti e pacchetti) presenti in una data Immagine di volume Windows in un WIM. Ricorda che puoi installare un'unica immagine di volume Windows (una SKU sul DVD di Windows Vista) alla volta.
Il riquadro al centro, File di risposta, visualizza le opzioni di configurazione in un file di installazione automatica di Windows Vista nuovo o esistente, oltre alle impostazioni predefinite determinate dai cataloghi (le impostazioni e la configurazione potenziali) dall'immagine di volume WIM installata.
Proprietà, che si trova in alto a sinistra della finestra, è un riquadro che consente di modificare le singole proprietà di un componente dal riquadro File di risposta.
L'ultimo riquadro riguarda i messaggi, si trova in fondo e mostra commenti più approfonditi, tra cui una vista dell'XML non elaborato in un file di installazione automatica di Windows Vista (sempre in formato XML), un output di convalida e tutti i messaggi correlati a ogni set di configurazione utilizzato correntemente (la scheda relativa al set di configurazione contiene dati solo se è aperto un set di configurazione).
Hai potuto renderti conto che WAIK fornisce un set di strumenti molto potente per aiutarti a distribuire Windows Vista. Il team di distribuzione Windows ha svolto un lavoro magnifico nella creazione di una serie di strumenti che, come scoprirai, rendono la distribuzione di Windows Vista più facile rispetto a qualsiasi versione precedente di Windows.

Wes Miller è un development manager di Pluck (pluck.com) ad Austin (Texas). In precedenza ha lavorato a Winternals Software e a Microsoft in qualità di program manager e product manager per Windows. Wes ringrazia Scott Dickens e John Macintyre di Microsoft per l'assistenza fornitagli per la redazione di questo articolo. Wes è contattabile all'indirizzo technet@getwired.com.


 Taccuino: Supporto tecnico per affini
Taccuino
Supporto tecnico per affini
James Snell

MI SONO SPOSATO l'anno scorso e, in cambio della mia bella moglie, mi sembra di aver firmato un contratto di supporto tecnico con tutta la sua famiglia. Ultimamente ho ricevuto da mia suocera la tanto temuta chiamata "Tu ne sai qualcosa di computer, vero?" così sono andato da lei e ho trovato il suo computer Windows® XP sofferente per una tonnellata dei soliti spyware, adware, barre degli strumenti e così via.
Se siete professionisti IT con molta probabilità sarete abituati a risolvere i problemi dei computer. Ma farlo per un parente non è così semplice. Il modo più veloce per occuparsi di una macchina infetta è di formattare l'hard disk e reinstallare Windows. Sfortunatamente la maggior parte delle persone rifiutano questa opzione perché non vogliono perdere tutti i loro dati. Ciò significa di solito avere davanti a sé un lavoro di pulizia estremamente lungo. Ma che succede se non si riesce neanche ad accendere il computer o ad accedere a Internet?
Ciò che serve è realizzare un toolkit su una chiave USB 512MB che includa antivirus, antispyware e software di firewall personale. È consigliabile tenere il toolkit aggiornato e a portata di mano
e mettere anche Windows XP Service Pack 2 (SP2) sul drive USB. Sebbene Windows XP venga ora fornito con SP2 nella scatola, la versione di mia suocera è precedente a tale edizione. È possibile scaricare l'installazione di Windows XP SP2 da microsoft.com/technet/prodtechnol/winxppro/maintain/winxpsp2.mspx (c'è la versione per più computer, quella per un singolo computer usa Windows Update.) A 266MB difficilmente si può definire un download rapido, ma dopotutto è da fare solo una volta.
Quindi, diciamo che abbiamo trascorso il pomeriggio formattando e installando l'OS o impegnati a rimuovere virus e spyware con, in ogni caso, la successiva installazione dei necessari aggiornamenti del software a Windows, oltre al firewall, l'aggiornamento delle definizioni antivirus e così via. E poi? Certamente non vogliamo trascorrere tutti i fine settimana a rifarlo. È possibile adottare varie misure per rendere la prospettiva meno probabile.

Bandire il junkware
Il sistema di mia suocera era pieno di software, installati principalmente da amici, che andavano dal quasi utile alla vera spazzatura. Per impedire che si verificasse nuovamente, ho bloccato l'account di amministratore con una potente password e ho impostato mia suocera come utente standard, poiché non ha bisogno di usare l'account di amministratore molto spesso. La prossima volta che qualcuno prova a installarle qualcosa dovrà effettuare il login come amministratore per proseguire e di solito questo è un deterrente sufficiente. Questo, oltre a un po' di consapevolezza dell'utente, dovrebbe tenere lontano la spazzatura (Get Safe Online, getsafeonline.org, ha alcuni grandi suggerimenti per gli utenti su come mantenere sicuro il PC).
Le esigenze di protezione di mia suocera sono diverse riguardo alle password. Ho disattivato la password dell'account utente per incoraggiarla a usarlo. Oltretutto, immagino che chiunque provi e riesca ad accedere fisicamente al computer riesca più probabilmente a rimuovere la macchina dalla casa che i dati dalla macchina.
Potrebbe sembrare sciocco che io abbia messo una nota su un foglietto adesivo all'interno della porta della parte frontale del computer. Ma non mi preoccupa che trovi la password di amministratore senza che io lo sappia, dopo tutto è il suo computer. Sebbene questa non sarebbe una procedura consigliata accettata in un'impresa, mia suocera non memorizza alcun dato sensibile e non la preoccupa il fatto che altre persone usino il suo computer. L'obiettivo qui è quello di rendere più semplice la sua vita di utente e, cosa più importante, anche la mia vita di tecnico di supporto!

Rifuggire i Boarder!
La fase successiva è stata fornirle un po' di protezione extra. Mi piace il fatto che in Windows sia integrato un firewall e che esistano firewall di terzi. Tuttavia non mi fido di un solo firewall. Per una maggiore sicurezza, mia suocera ora ha un router ADSL dotato di firewall integrato. Sì, è una spesa extra e un dispositivo extra da configurare e far funzionare, ma in una certa misura fornisce una protezione aggiuntiva. Inoltre è una scatola con luci lampeggianti, bella no?
Ma non presumete che la configurazione iniziale del router sia sicura. Ne ho trovati un paio che, di default, avevano le interfacce Web e telnet abilitate al pubblico. Concedetevi un minuto per controllare le opzioni avanzate.
I firewall dei software non possono essere caricati prima che i componenti della rete siano attivi. Il firewall incorporato di Windows è l'unica protezione di cui si dispone durante le prime fasi di avvio (un'altra ragione per installare Windows SP2 prima di connettere il computer a Internet). Quando si disabilita il firewall, si è ancora protetti fino a che il firewall selezionato ha una possibilità di avviarsi. Inoltre, con il firewall del router attivato non devo più preoccuparmi che qualcosa possa spegnerlo perché è un dispositivo separato: se non è acceso lei non è collegata. La vedo allo stesso modo come per i dati double keying. Affinché un attacco abbia successo, sia il router sia il firewall del software devono fallire contemporaneamente. Non è impossibile ma è meno probabile.

Annoiare e proteggere
Pensate a quanto l'intera procedura sarebbe stata più semplice se ci fosse stato un buon backup. Non tollero le persone che dicono che non possono effettuare il backup almeno delle loro informazioni più importanti I masterizzatori di DVD e i media non costano poi molto e Windows viene fornito con il software di backup incluso Il problema è che moltissime persone non lo usano. Per mia suocera la mia soluzione era di effettuare il solito back-up della cartella Documenti su una scheda e salvare il file direttamente nella cartella del masterizzatore CD (%userprofile%\Local Settings\Application Data\Microsoft\CD Burning). Affinché ciò funzioni è necessario modificare l'attività pianificata in modo che venga eseguita solo quando l'utente ha effettuato il login. Così la masterizzazione guidata di CD fornisce ora regolari (ed irritanti) prompt finché mia suocera non inserisce un disco vuoto ed è proprio ciò che voglio.

Manteniamoci in contatto
Configurando Windows Live™ Messenger, è possibile configurare la condivisione del desktop. Ciò vuol dire che una volta arrivati a casa, se c'è qualcos'altro che ha bisogno di essere configurato, è possibile vedere cosa sta succedendo senza fare un'altra visita (che è sempre una buona cosa). Per inciso, posso anche confermare che assumere il controllo di un computer remoto (cosa che richiede autorizzazione, naturalmente) ed essere osservati mentre si controlla il mouse è persino più impressionante delle luci lampeggianti del router!

James Snell è un ex specialista del supporto di Microsoft residente nel Regno Unito. Ha lavorato con utenti privati e con alcuni dei più grandi account globali di Microsoft. Attualmente James svolge una nuova professione: quella di padre. È possibile contattarlo all'indirizzo James.Snell@lineone.net.


 Windows Confidential: Fuga dall'inferno delle DLL
Windows Confidential
Fuga dall'inferno delle DLL
Raymond Chen

L'inferno delle DLL. Un problema così insidioso da meritarsi un peggiorativo specifico. Un giorno, dopo aver installato un programma, improvvisamente un secondo programma, che apparentemente non ha nulla a che fare con il primo, smette di funzionare. Questo succede perché, all'insaputa dell'utente, i due programmi sono collegati da un file DLL condiviso. I due programmi potrebbero avere idee diverse sulla versione del file MSVCRT.DLL che dovrebbe esserci nella cartella di sistema. Oppure il primo programma può aver aggiornato un controllo ActiveX® che viene usato anche dal secondo programma. Un aggiornamento con cui il secondo programma non è completamente compatibile.
Se tutti e due i programmi sono indispensabili per l'attività quotidiana di un'azienda, non importa poi molto sapere di quale dei due è la colpa. L'importante è che devono funzionare entrambi. Non c'è molta differenza tra dire "Stiamo perdendo soldi" e "Stiamo perdendo soldi per colpa di Marco". Si stanno comunque perdendo dei soldi ed è necessario risolvere il problema prima possibile.
In passato, l'unica soluzione era scegliere il programma da sopprimere. A partire da Windows® 2000, però, è possibile mettere in qualche modo delle pezze a situazioni di questo tipo. In questo modo, il sistema torna a stare in piedi, consentendo all'utente di cercare con più calma soluzioni più definitive.
Windows 2000 aveva una versione rudimentale di quello che ora si chiama in modo più sofisticato reindirizzamento delle librerie dinamiche. Per abilitare il reindirizzamento delle DLL occorre creare un file con lo stesso nome del programma le cui DLL si desidera reindirizzare, ma con estensione .local. Ad esempio, per applicare il reindirizzamento al programma C:\Program Files\Litware Inc\Invoice.exe, si dovrà creare il file C:\Program Files\Litware Inc\Invoice.exe.local. Non è importa cosa ci sia dentro il file: l'importante è che esista.
Una volta attivato il reindirizzamento per un programma, tutti i tentativi che quel programma farà per caricare una DLL andranno a cercare nella cartella che contiene il programma prima che nelle solite posizioni. Quindi, in caso di conflitto sul file MSVCRT.DLL, potete attivare il reindirizzamento in ogni programma e mettere una copia privata di MSVCRT.DLL nella cartella di ciascuno di essi. Ciascun programma userà allora la sua versione privata di MSVCRT.DLL, quella con cui è stato testato.
La magia di questa tecnica è che funziona anche se il programma usa il percorso completo per caricare la DLL. Per esempio, supponiamo che il programma tenti di caricare C:\Program Files\Common Files\Proseware Inc\taxplugin.dll. Dopo l'aggiornamento a Proseware 2.0, vi accorgete che il suo plug-in per il calcolo delle tasse è incompatibile con il programma di fatturazione. Quello che potete fare è copiare una vecchia versione del plug-in come C:\Program Files\Litware Inc\taxplugin.dll. Anche se il programma usa il percorso completo per caricare il plug-in, il reindirizzamento delle DLL farà sì che la ricerca venga fatta nella cartella corrente e verrà quindi usata la copia locale invece di quella contenuta nella cartella di Proseware Inc.
In Windows XP e Windows Vista™, le regole per il reindirizzamento delle DLL sono un po' diverse, ma il principio generale rimane lo stesso. Oltre che creare un file .local, potete anche creare una cartella .local. In questo caso la ricerca viene fatta nella cartella .local invece che in quella che contiene il programma. Questo permette di applicare il reindirizzamento a più programmi nella stessa cartella senza conflitti.
Tuttavia, non è possibile applicare il reindirizzamento ai programmi che contengono un manifesto dell'applicazione. Anche le cosiddette DLL note sfuggono al reindirizzamento. (Per ulteriori informazioni vedere "Dynamic-Link Library Redirection".)
Il reindirizzamento non offre una via d'uscita completa dall'inferno delle DLL, ma mette comunque a disposizione qualche tecnica di pronto soccorso per curare le ferite prima di iniziare a risolvere davvero il problema.
Figura 1
Figura 1

Raymond Chen scrive sulla storia di Windows e sulla programmazione Win32 sul suo sito Web, The Old New Thing, e nel suo nuovo libro omonimo The Old New Thing (Addison-Wesley, 2007). Gli mancava soltanto un gatto di nome The Old New Thing...