Deployment di Windows 7 e join automatico al dominio
Il deployment di Windows 7 richiede l’unicità di alcuni elementi (computer name, security identifier – SID, driver cache) per la preparazione dell’installazione del sistema tramite il processo di disk imaging.
Per effettuare la distribuzione del sistema sui client della rete si utilizza normalmente il tool sysprep.exe, incluso in Windows 7 nella directory C:\Windows\System32\Sysprep. Tuttavia l’automatizzazione di alcuni processi, come ad esempio il join al dominio assegnando un computername “custom”, non è immune da problemi.
Prerequisiti
Per effettuare questa procedura, sono richiesti i seguenti prerequisiti:
- DVD o ISO di installazione di Windows 7
- Windows Automated Installation Kit, comunemente detto Windows AIK
- Il tool mysysprep2
- Client o virtual machine per creare il file unattend.xml
- Client o virtual machine su cui creare l’immagine master
Installazione di Windows AIK
Installare Windows AIK sul computer non utilizzato per creare l’immagine cliccando sulla voce Windows AIK Setup.
Installato il software, inserire il DVD di installazione di Windows 7 e avviare da Windows AIK il tool Windows System Image Manager.
Avviato il programma, cliccare sul menu Tools e selezionare la voce Create Catalog.
Dal DVD di installazione di Windows 7, selezionare il file \sources\install.wim e cliccare sul bottone Open.
Selezionare il tipo di immagine che si intende utilizzare e cliccare su OK.
Il sistema inizia la generazione del catalog che richiede qualche minuto di tempo per la sua esecuzione.
Creato il catalog, è possibile procedere con la configurazione dell’answer file necessario ad automatizzare il processo di installazione del sistema.
Creazione del file unattend.xml
Da Windows System Image Manager -> pannello Windows Image, cliccare su Components per visualizzare le componenti disponibili.
Tramite il tasto destro del mouse selezionare il componente da aggiungere all’answer file e aggiungerlo al processo richiesto (es. Add Setting to Pass 3 generalize) della propria configurazione. I componenti preceduti dalla voce amd64 devono essere utilizzati per sistemi a 64bit, mentre x86 per sistemi a 32bit.
A seconda delle esigenze di configurazione, la struttura dell’answer file utilizzato nei test è stato configurato come segue:
1 windowsPE
amd64_Microsoft-Windows-Setup_6.1.7600.16385_neutral
<UserData> AcceptEula: true FullName: NOLABNOPARTY Organization: NOLABNOPARTY </UserData>
2 offlineServicing
3 generalize
amd64_Microsoft-Windows-PnpSysprep_6.1.7600.16385_neutral
PersistAllDeviceInstalls: true
amd64_Microsoft-Windows-Security-SPP_6.1.7600.16385_neutral
SkipRearm: 1
4 specialize
amd64_Microsoft-Windows-International-Core_6.1.7600.16385_neutral
InputLocale: it-IT SystemLocale: it-IT UILanguage: it-IT UserLocale: it-IT
amd64_Microsoft-Windows-Security-SPP-UX_6.1.7600.16385_neutral
SkipAutoActivation: true
amd64_Microsoft-Windows-Shell-Setup_6.1.7600.16385_neutral
<Display> ColorDepth: 32 DPI: 96 HorizontalResolution: 1024 RefreshRate: 60 VerticalResolution: 768 </Display> TimeZone: W. Europe Standard Time RegisteredOrganization: NOLABNOPARTY RegisteredOwner: NOLABNOPARTY ShowWindowsLive: false BluetoothTaskbarIconEnabled: false CopyProfile: true DisableAutoDaylightTimeSet: false DoNotCleanTaskBar: false
amd64_Microsoft-Windows-UnattendedJoine_6.1.7600.16385_neutral
<Identification> <Credentials> Domain: domain Password: password Username: username </Credentials> JoinDomain: domain MachineObjectOU: OU=Computer,OU=TestOU,DC=domain,DC=com </Identification>
5 auditSystem
6 auditUser
7 oobeSystem
amd64_Microsoft-Windows-International-Core_6.1.7600.16385_neutral
InputLocale: it-IT SystemLocale: it-IT UILanguage: it-IT UserLocale: it-IT
amd64_Microsoft-Windows-Shell-Setup_6.1.7600.16385_neutral
<OOBE> HideEULAPage: true HideWirelessSetupInOOBE: true NetworkLocation: Work ProtectYourPC: 1 </OOBE> <UserAccounts> <AdministratorPassword> Value: password PlainText: false </AdministratorPassword> <LocalAccounts> <LocalAccount wcm:action="add"> <Password> Value: password PlainText: false </Password> Description: Temp user DisplayName: TempUser Group: Users Name: TempUser </LocalAccount> </LocalAccounts> </UserAccounts> BluetoothTaskbarIconEnabled: false DisableAutoDaylightTimeSet: false DoNotCleanTaskBar: false ShowWindowsLive: false TimeZone: W. Europe Standard Time RegisteredOrganization: NOLABNOPARTY RegisteredOwner: NOLABNOPARTY
Terminata la configurazione dell’answer file, salvarlo con nome unattend.xml.
Per impostare un profilo comune per tutti gli utenti (Default Profile), la copia dei settaggi del profilo configurato avviene tramite l’istruzione:
<CopyProfile>true</CopyProfile>
Per effettuare il corretto join al dominio, è necessario assegnare un computer name alla macchina da configurare ed effettuare successivamente il join.
Per fare in modo che venga richiesto l’inserimento del computer name durante il processo di sysprep, come riportato dalla documentazione, bisogna rimuovere dall’answer file la sezione:
<ComputerName></ComputerName>
Purtroppo questo metodo non funziona correttamente poichè il sistema effettua il join al dominio assegnando un computer name random alla machina e non quello digitato precedentemente.
Per risolvere il problema è disponibile una versione “custom” di sysprep chiamata mysysprep2. Questo tool permette di nominare il computer ed effettuare il join al dominio dopo che il file unattend.xml è stato processato. Il tool MySysprep.exe deve essere copiato nella directory C:\Windows\System32\Sysprep\ senza cancellare il file già presente sysprep.exe.
Il tool prevede alcune customizzazioni che facilitano il processo di configurazione.
Per richiedere l’inserimento del computer name limitando il nome a 15 caratteri, aggiungere la riga:
<ComputerName>%computer name(0,15)%</ComputerName>
Per visualizzare automaticamente il dominio su cui effettuare il join:
<JoinDomain>%domain to join{DOMAIN_NAME}%</JoinDomain>
Nel caso fossero presenti più domini, è possibile visualizzare la lista da selezionare modificando l’istruzione come segue:
<JoinDomain>%domain to join{DOMAIN1;DOMAIN2;DOMAIN3}%</JoinDomain>
Nel sito del tool MySysprep2 sono disponibili ulteriori esempi di configurazione.
Poichè nel file unattend.xml risiede la password per effettuare il join a dominio, anche se criptata, è consigliabile rimuovere i file di configurazione come misura di sicurezza. Anche l’utente temporaneo terminata la procedura non è più necessario e quindi può essere rimosso. Per fare il tutto in modo automatico, creare un file SetupComplete.bat da copiare successivamente nella cartella C:\Windows\Setup\Scripts contenente le seguenti istruzioni:
net user TempUser /delete del "C:\Windows\System32\sysprep\unattend.xml" /q del "C:\Windows\Panther\unattend.xml" /q
Creazione immagine Windows 7
Installare nel computer master il sistema Windows 7 e configurarlo con le specifiche richieste dalla propria rete.
Installare le applicazioni e le configurazioni richieste che vanno a completare l’immagine standard del computer.
Per disabilitare la notifica del backup dall’Action Center, creare il file DisableMonitoring.reg da eseguire sul computer master impostando la chiave di registro come segue:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsBackup] "DisableMonitoring"=dword:00000001
E’ consigliabile a questo punto effettuare una snapshot del computer master tramite il software preferito (ghost, true image, etc.) utilizzato per creare l’immagine del disco in modo da avere la possibilità di aggiornare l’immagine master successivamente.
A questo punto tutto è pronto per eseguire il sysprep della macchina.
Sysprep
Prima di procedere, copiare i tre file principali nelle corrette directory del sistema.
Copiare il file unattend.xml e mysysprep.exe in C:\Windows\System32\Sysprep\.
Creare la cartella Scripts in C:\Windows\Setup e copiare il file SetupComplete.bat. Lo script viene eseguito al termine della fase di sysprep.
Per eseguire mysysprep, aprire il Command Prompt del PC master con privilegi di Administrator ed eseguire l’istruzione:
c:\windows\system32\sysprep\mysysprep.exe /generalize /oobe /shutdown /unattend:c:\windows\system32\sysprep\unattend.xml
Inizia la procedura di sysprep applicando le impostazioni impostate nel comando:
- unattend.xml
- generalize
- shutdown
Quando il computer si spegne, la fase di sysprep è terminata e il computer è pronto.
Senza accenderlo, tramite il software preferito creare l’immagine master del PC che sarà poi installata sui client della rete.
Installazione del client master
Tramite il software di disk imaging utilizzato, copiare l’immagine master su un client di rete.
Avviando il computer, il sistema inizia il processo di post-sysprep.
Viene presentata la finestra di MySysprep con la richiesta di inserimento del computer name. Digitare il nome da assegnare con massimo 15 caratteri e cliccare su OK.
Selezionare successivamente il dominio corretto dalla lista e cliccare su OK.
Si susseguono le varie fasi della procedura.
Al riavvio del computer è già possibile notare che l’applicazione delle impostazioni configurate nell’answer file, la lingua (it-IT) e la risoluzione video in questo esempio, vengono correttamente applicate.
Se non si dispone della licenza corporate o se nel file unattend.xml non è stato specificato, viene visualizzata la richiesta di inserimento del Product Key di Windows. E’ possibile ignorare questo passaggio ed impostare il valore successivamente. Cliccare su Avanti.
Le impostazioni del sistema vengono finalizzate.
Terminata la procedura si presenta la tipica schermata di login alla rete. Premendo i tasti CTRL+ALT+CANC si accede alla finestra classica di accesso al dominio.
Tramite il tool Active Directory Users and Computers si può verificare se il computer è stato correttamente configurato nel dominio.
Prima di procedere con il deployment dei client, effettuare alcuni test per verificare che la procedura funzioni correttamente.