mercoledì 21 maggio 2008

Bloccare la distribuzione del Service Pack per Windows (XP e Vista)

Se per qualche motivo è necessario evitare che i client (XP e Vista) installino l'ultimo Service Pack rilasciato, è sufficiente distribuire una semplice chiave di registry. Con questa impostazione, non solo non sarà possibile installare il Service Pack distribuito via WSUS, ma impedirà che venga proposto l'aggiornamento visitando manualmente Microsoft Update. L'impostazione è valida per un anno dalla data di rilascio del Service Pack.

Si può scaricare dalla Microsoft il Windows Service Pack Blocker Toolkit, che contiene un eseguibile, uno script e un Administrative Template per le Group Policy, per attivare e disattivare il blocco.

Ovviamente caricare l'Administrative Template in una Policy è il metodo più semplice ed efficace, ma si può usare il tool SPBlockingTool.exe in uno script di logon con un comando del genere:


SPBlockingTool.exe /B >nul

oppure lo script SPReg.cmd per gestire da remoto lo stato dei client della rete, ad esempio:

SPReg.cmd PC-Segreteria /B

per bloccare il service pack sul computer della rete chiamato PC-Segreteria (sul quale ovviamente avrete diritti d'amministrazione).

Problemi con WSUS e la Service Pack 3 di Windows XP

Distribuire il Service Pack di Windows XP attraverso WSUS, secondo alcuni, non è una buona idea. Le ragioni sono diverse, ma quella più convincente è che la Service Pack del sistema operativo è generalmente un installazione onerosa, che comporta la sostituzione di parecchi file di sistema. L'antivirus ed altri servizi che normalmente girano potrebbero interferire con il processo di aggiornamento e quindi è meglio un approccio che consenta un maggiora controllo.

Tuttavia, nell'ambiente in cui lavoro, è stato deciso di distribuire rapidamente il Service Pack tramite WSUS. Nel primo gruppo di test, gia assai numeroso, non abbiamo per fortuna riscontrato problemi significativi lato client, tuttavia pare che WSUS, ovvero il componente Automatic Update di Windows XP, non sia in grado di riportare correttamente lo stato di aggiornamento al server WSUS. Abbiamo infatti notato, dopo un paio di giorni dal rilascio, che secondo la console, solo su pochissimi computer del gruppo di test il Service Pack appare Installato. Per la stragrande maggioranza di essi lo stato è e resta "Non applicabile". Il risultato è che manca il feedback sull'esito della distribuzione. D'altra parte abbiamo altre fonti d'informazione che ci dicono che sull'80% di quelle macchine il Service Pack è stato installato con successo.

Per ora sembra resta aperto e se ne parla su questo Forum. Non siamo i soli dunque.

Scrivere senza distrazioni


Scrivere senza distrazioni. Spegnere tutte fonti di segnali esterni che ci possano distrarre. Eliminare tutto il superfluo. Soli di fronte al foglio e alle idee.

Scrivere in queste condizioni è possibile anche nell'era di Internet, dei social network, di twitter, instant messaging, delle email ogni 20 secondi e delle applicazioni superaccessoriate di milioni di features che ciascuno di noi usa al 3%.

Ho scoperto oggi via Write To Done, un semplicissimo ma eccellente programma di videoscrittura, che ritorna alla semplicità dei Word Processor d'antan, ma senza la complicazione dei text editor per smanettoni linux tipo Vi o Emacs. Una volta lanciato, va di default in Fullscreen mode: l'intero schermo diventa nero e una colonna centrale (di larghezza regolabile) è il foglio di scrittura. Niente menu e niente icone. Una decina di comandi essenziali per le operazioni di base (salvare, chiudere, aprire un nuovo file, copiare, incollare, ecc) con i consueti Ctrl+.

Un programma di una semplicità assurda, ma lo sto provando mentre scrivo queste righe ed effettivamente questo approccio minimalista aiuta molto ad evitare le distrazioni e mantenere il focus sul testo da scrivere.

Provare per credere:
Dark Room (Windows)
Write Room (Mac)

domenica 27 aprile 2008

Una promessa: stackoverflow.com

Il mercato dei libri di programmazione, dice Joel Spolsky, è praticamente morto. I programmatori si documentano on line e raramente leggono un libro di programmazione. E giustamente, aggiungo io. I libri sono estremamente cari, incomprensibilmente prolissi e pretendono di essere così generici da soddisfare dal 14 enne che affronta la programmazione per la prima volta all'esperto programmatore che ha bisogno di una reference su una nuova tecnologia che deve apprendere.
I libri di programmazione tendono ad adattarsi ad una curva di apprendimento che è una sorta d'interpolazione di tutte le possibili curve d'apprendimento della fascia di mercato che l'editore vuole raggiungere. Il risultato è che non servono assolutamente a nulla, se non alcune rare eccezioni.

D'altra parte questo ha favorito un meccanismo di apprendimento della programmazione per tentativi ed errori, dove l'errore si corregge cercando su google il codice restituito e si tentano le varie soluzioni proposte da altri programmatori, della cui esperienza e capacità tecnica non si sa nulla. A volte dice bene alla prima botta, altre volte bisogna provare diverse soluzioni delle quali si capisce ben poco. Affinché tutto questi processi di correzioni producano qualcosa che sedimenti e si possa chiamare conoscenza, ci vuole molto tempo e molta costanza. Alla fine, pur avendo all'attivo una serie di progetti andati a buon fine perché bene o male i prodotti funzionano, molti programmatori non sanno cosa hanno fatto veramente. Per questo ci sono in giro milioni di programmatori mediocri o scarsi e pochissimi (ma veramente rari) bravi programmatori.

Un po' meglio va con le comunità semichiuse, tipo The Code Project, fonte alla quale anche io attingo spesso, perché almeno si può valutare lo spessore di chi fornisce soluzioni ed ha un taglio più didattico, cercando di insegnare una tecnica, invece di fornire una semplice ricetta risolutiva di un dato bug. Ma sono comunità che crescono in modo enorme e disordinato e non scalano bene. Rischiano spesso di diventare molto dispersive.

StackOverflow.com è una promessa che viene da Joel Spolsky e Jeff Atwood. Un sito per programmatori, per fare domande ed avere risposte. Semplice e funzionale e senza scopi di lucro nascosti. Così descritto da Joel:


We're starting to build a programming Q&A site that's free. Free to ask questions, free to answer questions, free to read, free to index, built with plain old HTML, no fake rot13 text on the home page, no scammy google-cloaking tactics, no salespeople, no JavaScript windows dropping down in front of the answer asking for $12.95 to go away. You can register if you want to collect karma and win valuable flair that will appear next to your name, but otherwise, it's just free.


Non vedo l'ora che sia on line per vedere se mantiene la promessa. Nel frattempo è possibile seguirne il blog e ascoltare i pdocast delle conversazioni telefoniche tra Joel e Jeff.

venerdì 25 aprile 2008

Server Virtuale WSUS 3.0 - parte 1

Nella rete dell’organizzazione di cui mi occupo di patch managment c’è la necessità di installare dei server WSUS in vari uffici decentralizzati per prendere finalmente il controllo dello stato delle patch dei client. Sebbene gli uffici siano piccoli, vogliamo minimizzare il traffico lungo la WAN e per questo si è scelto di installare un server di patch managment direttamente in ogni ufficio.

L’idea è di avere dei server WSUS configurati come replica server, in modo da ereditare gruppi e stato di approvazione delle patch dal server centrale, ma scaricare la patch direttamente da Microsoft Update, in modo da non occupare la WAN per questo genere di traffico. Così avremmo il controllo centralizzato, ma la distribuzione decentralizzata.

Tuttavia in molti di questi piccoli uffici c’è scarsa disponibilità di mezzi, quindi capita spesso che un’unica macchina debba ospitare diversi servizi: nel nostro caso, ad esempio, un unico desktop deve fare sia da server Antivirus che da server WSUS. Qui nasce il problema: fare coesistere il nuovo Symantec Endopoint Protection Server e WSUS non è cosa banale. Entrambi usano IIS e uno dei due va configurato per utilizzare una porta diversa dalla 80. Ma non basta. Entrambi usano una cartella virtual Content e l’ultimo installato sovrascrive l’altra. La soluzione suggerita da Symantec è di installare WSUS in un sito diverso, seguendo la procedura indicata nella guida di Microsoft: Step-by-Step Guide to Getting Started with Microsoft Windows Server Update Services 3.0 a pagina 12. Tuttavia abbiamo preferito tentare la via del server virtuale, per un completo isolamento del servizio WSUS da ogni altro potenziale conflitto.

Poiché una tale situazione si ripeterà in più di un ufficio, cerchiamo di standardizzare la procedura e creare una sorta di Kit per il deployment di un Server WSUS Virtuale.

Windows 2003 Server Sysprep VHD

Per prima cosa prepariamo un hard disk virtuale con un sistema operativo server gia predisposto per l’installazione di WSUS, vale a dire con IIS e gli altri prerequisiti installati. Soprattutto è importante preinstallare tutte le patch di sicurezza disponibili al momento della creazione, in modo da ridurre il più possibile il tempo necessario al deployment.

Nel nostro caso abbiamo creato una macchina virtuale in Virtual Server 2005 SP1, con 256Mb di RAM (se ha come unico scopo quello di fare da server WSUS per poche macchine, dovrebbe bastare poca memoria, in ogni caso sottoporremo a verifica questo parametro), un hard disk SCSI espandibile dinamicamente a 127Gb e collegato alla scheda di rete fisica.

A questo punto avviamo la macchina virtuale facendo leggere dal CD direttamente il CD di setup di Windows 2003 Server (meglio se con SP2 incluso) e installiamo il sistema operativo come normale member server in Workgroup. Finita l’installazione, installiamo IIS e poi aggiorniamo il sistema operativo tramite Microsoft Update. Una volta aggiornato il sistema operativo all’ultima patch installiamo anche l’antivirus e poi colleghiamo i prerequisiti per WSUS, che al momento in cui scrivo sono solamente due:

in quanto MMC 3.0 è gia incluso nel Service Pack 2 di WIndows 2003 Server.

Poiché preferisco mantenere l’immagine del sistema operativo abbastanza piccola, ma allo stesso tempo minimizzare il lavoro d’installazione nei successivi deployment, mi fermo qui e non scarico o installo né SQL Server 2005 Express né tantomeno WSUS stesso. Preferisco farlo direttamente da internet una volta che il server virtuale è stato consegnato e installato a destinazione.

A questo punto bisogna preparare l’immagine del disco virtuale in modo da generalizzarla tramite sysprep e compattarla per ridurne le dimensioni e rendere il trasporto presso gli uffici decentralizzati più agevole. Per fare questo i passi sono:

  1. Copiare Sysprep sul server virtuale e lanciare la generalizzazione
  2. Deframmentare il disco virtuale con un deframmentatore potente (capace cioè di deframmentare anche lo spazio vuoto)
  3. Pre-compattare il disco virtuale con l’utility Precompact di Virtual Server 2005
  4. Compattare il disco virtuale
  5. (Opzionale) Catturare l’immagine con un software di Imaging (Ghost o ImageX)