Sunday, July 18, 2010
Quando si configura in Outlook un account Exchange abilitando la modalità cache viene creato un file .ost (simile al file .pst) in cui verranno memorizzati in locale i messaggi di posta elettronica in modo da poterne fruire in modalità offline. Inoltre questa funzionalità riduce il carico sul server Exchange e l’occupazione di banda è comunque possibile scegliere se scaricare tutti i messaggi o solo le intestazioni.
Un problema che si può riscontrare abilitando la cache è quello di non avere le modifiche eseguite sulla Rublica globale (GAL=Global Address List)in tempo reale in quanto in cached mode viene scaricata per default una copia della GAL una volta al giorno. E possibile forzare lo scaricamento della GAL tramite Invia/Ricevi oppure tramite una modifica al registro, a riguardo si veda il seguente How to configure how the Offline Address Book is downloaded when you use Outlook in Cached Exchange Mode.
Per ulteriori informazioni si vedano:
La cache utilizzata dall’autocompletamento degli indirizzi di posta elettronica si trova in:
%APPDATA%\Microsoft\Outlook\Outlook.NK2. E’ possibile eliminare tale file per cancellare la cache di autocompletamento oppure utilizzare l’utility NK2View per visualizzarne il contenuto ed esportarlo oppure NK2Edit per modificare le voci.
Per ulteriori informazioni si vedano:
Monday, July 12, 2010
Il notebook Acer Travelmate 5730 può gestire via BIOS il controller SATA del disco in modalità IDE o AHCI, i driver SATA AHCI non sono però disponibili nel CD di installazione di XP quindi la procedura più corretta è quella di scaricare i driver SATA dal sito di Intel al seguente link Intel® Matrix Storage Manager.
Dopo avere scaricato il file IATA89CD.exe è possibile scompattarlo tramite il comando:
IATA89CD.exe -a -a -p C:\IATA89CD
Quindi installare XP premendo F6 all’avvio dell’installazione per specificare il driver del controller (ICH9M-E/M SATA AHCI per il Travelmate 5730).
Oppure costruire tramite nLite un CD di installazione con i driver del controller integrati.
[Nota]
Io ho scaricato i driver da Intel in quanto tramite quelli disponibili al sito Acer ho avuto dei problemi.
Per ulteriori informazioni si veda Error message when you start a Windows 7 or Windows Vista-based computer after you change the SATA mode of the boot drive: "STOP 0x0000007B INACCESSABLE_BOOT_DEVICE".
Thursday, July 01, 2010
A volte capita di dover creare PC che verranno utilizzati in luoghi pubblici allo scopo di sola visualizzazione per chioschi, videosorveglianza o sinottici industriali.
In questi casi visto che molto spesso le risorse elaborative in termini di CPU, RAM e velocità HD sono decisamente basse dal momento che molto spesso l’unica applicazione necessaria è il browser ha senso recuperare vecchi PC magari con la licenza OEM a corredo.
Una soluzione può essere utilizzare Windows SteadyState disponibile per Windows XP e Windows Vista a riguardo si vedano anche i seguenti link:
Se invece si desidera configurare manualmente il PC è possibile seguire la seguente procedura:
- Installare il sistema operativo XP PRO
- Specificare una password per l’utente Administrator
- Disabilitazi0ne dei servizi non necessari
- Acquisizione di immagini di Windows (WIA)
- Audio Windows
- Guida in linea e supporto tecnico
- Servizio di segnalazione errori
- Servizio Ripristino configurazione di sistema
- Spooler di stampa
- Temi
- Utilità di pianificazione (se non utilizzata)
- WebClient
- Zero configuration reti senza fili
- Configurare il sistema
- Disabilitare il Ripristino configurazione di sistema (mediante l’applet Sistema)
- Disabilitare gli aggiornamenti automatici (gli aggiornamenti in computer dedicati a queste finalità è meglio che vengano eseguiti manualmente per evitare riavvi indesiderati o comunque possibili incompatibilità con le hotfix che determinerebbero disservizi)
- Configurare le Opzioni risparmio energia sulla combinazione Sempre attivo disabilitando l’opzione per spegnere il monitor e impostando se possibile compatibilmente con l’attività la disattivazione dei dischi
- Messa in sicurezza il sistema
- Eseguire gli aggiornamenti critici e di sicurezza
- Abilitare il firewall senza consentire eccezioni
- Disabilitare l’autoplay per tutte le unità (CD, DVD, periferiche USB) tramite il criterio di gruppo locale a livello computer Modelli amministrativi \ Sistema \Disattiva riproduzione automatica
- Disabilitare il task manager tramite il criterio di gruppo locale a livello utente Modelli amministrativi \ Sistema \ Opzioni CTRL+ALT+CANC \ Rimuovi Task Manager
- Disabilitare l’utilizzo di periferiche USB (se possibile) negando i diritti di controllo completo per il gruppo Users ai file %SystemRoot%\Inf\Usbstor.pnf e %SystemRoot%\Inf\Usbstor.inf. A riguardo si veda How can I prevent users from connecting to a USB storage device?
- Installare un antivirus nel caso i requisiti Hardware lo consentano in caso contrario dal momento che si opererà con privilegi di solo utente, autoplay disabilitato, periferiche USB disabilitate, firewall attivo senza eccezioni e shell ridotta alla sola applicazione necessaria è anche possibile eseguire lo strumento antimalware di Microsoft quando si esegue Windows Update.
- Configurazione degli utenti
- Configurare il sistema per avere l’account Administrator (creato durante l’installazione) con password che verrà utilizzato per l’amministrazione del sistema e un account limitato Pubblico senza password
- Aggiungere l’account Administrator al Welcome Screen aggiungendo alla chiave di registro HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList un valore DWORD Administrator di valore 1
- Configurazione dell’utente pubblico per esempio per avviare Interne Explorer in modalità Kiosk (a riguardo si veda How to use Kiosk Mode in Microsoft Internet Explorer)
- Creare una directory C:\Scripts
- Creare un file batch StartIEKioskMode.cmd in C:\Scripts con le seguenti istruzioni:
@echo off
start /wait iexplore –k “path html file”
logoff - Creare un file Shell.vbs in C:\Scripts con le seguenti istruzioni:
Dim shell
Set shell = CreateObject(“WScript.Shell”)
shell.run “C:\Scripts\StartIEKioskMode.cmd”, vbHide, True
Set shell = Nothing - Connettersi con l’account Pubblico ed eseguire le seguenti impostazioni:
- Disabilitare lo screen saver
- Impostare come shell lo script Shell.vbs creando nella chiave HKCU\Software\Microsoft\Windows NT\Current
Version\Winlogon un valore Shell di tipo REG_Sz impostato al valore WScript C:\Scripts\Shell.vbs
Per rimettere temporaneamente la shell explorer all’utente pubblico basterà connetersi come Administrator e modificare come segue il file StartIEKioskMode.cmd:
explorer.exe
rem @echo off
rem start /wait iexplore –k “path html file”
rem logoff
Si noti che a causa del fatto che la shell è stata sostituita con uno script l’evento ShellReady non viene generato quindi l’accesso con l’account Pubblico avverrà allo scadere del timeout di circa 30 secondi.
Varie possono essere le motivazioni per cui si rende necessaria l’operazione del dominio di Active Directory come ad esempio una fusione societaria o il fatto che il dominio è un Single-label DNS names.
Nel caso dei Single-label DNS names (SLD) infatti in Exchange 2007 non erano supportati, ma nel febbraio 2008 la policy di supporto è stata rivista ed Exchange 2007 SP1 e Exchange 2010 supportano i SLD sebbene non sia uno scenario consigliato, per info si vedano i seguenti:
Il rename del dominio è possibile in Windows Server 2008 R2, Windows Server 2008 e Windows Server 2003 in una foresta con livello funzionale Windows Server 2003 o superiore. Il processo coinvolge l’aggiornamento del Domain Name System (DNS) delle infrastrutture in trust, le Group Policy e i service principal names (SPNs).
Per quanto riguarda il rename del dominio in un’infrastruttura in cui è presente Exchange si tenga presente che è supportato sono con Exchange 2003 SP1, mentre non è supportato con Exchange Server 2007 o Exchange Server 2010. A riguardo si veda The Microsoft Exchange System Attendant service does not start on a computer that is running Exchange Server 2007 after you rename a Windows Server 2003 domain.
Vari sono le applicazioni i cui il rename dl dominio non è supportato come ad esempio:
- Microsoft Exchange 2000 Server
- Microsoft Exchange Server 2007
- Microsoft Internet Security and Acceleration (ISA) Server 2004
- Microsoft Live Communications Server 2005
- Microsoft Operations Manager 2005
- Microsoft SharePoint Portal Server 2003
- Microsoft Systems Management Server (SMS) 2003
- Microsoft Office Communications Server 2007
Per quanto riguarda la procedura di rename del dominio da seguire in un’infrastruttura con Exchange 2003 SP1 si vedano i seguenti:
Per le situazioni in cui il rename non è supportato la cosa migliore è creare il nuovo dominio col nome corretto ed utilizzare Active Directory Migration Tool (ADMT) per eseguire la migrazione.
Per ulteriori informazioni si vedano:
Monday, June 28, 2010
Nel caso in cui il desktop si presenti senza alcuna icona controllare che sia selezionata l’impostazione Mostra icone del desktop sulle proprietà del desktop:

Windows 7 come indicato nella seguente Desktop shortcuts disappear in Windows 7 implementa un processo automatico di manutenzione del sistema che elimina le icone relative a path non disponibili (per esempio device USB non connessi o percorsi di rete non disponibili). Tale processo quando rileva più di 4 collegamenti non validi elimina automaticamente quelli relativi a path non disponibili.
Al momento se ci trova in una situazione in cui saltuariamente si possono avere più di 4 icone non valide l’unico workaroud proposto è quello di disabilitare il System Maintenance troubleshooter tramite la seguente procedura:
- Start
- Pannello di controllo
- Sistema e sicurezza / Trova e risolvi problemi
- Cambia impostazioni
- Impostare Manutenzione computer su Disattivata
In questo modo però vengono disattivate anche tutte le atre manutenzioni e ottimizzazioni del sistema.
Inoltre si tenga conto che una procedura di manutenzione viene eseguita in modo schedulato per impostazione predefinita ogni domenica mattina all’una di mattina quindi nel caso in cui il computer si attivo in questa fascia oraria conviene disabilitare anche questa operazione pianificata
Gli script eseguiti dalla funzionalità di manutenzione sono memorizzati in %windir%\diagnostics\scheduled\Maintenance e in particolare quello relativi alla gestione delle icone sul desktop è TS_BrokenShortcuts.ps1
Ovviamente si può pensare di modificare tele script anche se va tenuto presente un aggiornamento del sistema potrebbe sostituire lo script.
Al TechNet and Community Tour - Dynamic IT del 23 Giugno a Torino era stata fatta una domanda in merito alla personalizzazione del profilo utente predefinito (default user). La risposta sta nella seguente KB How to customize default user profiles in Windows 7 and in Windows Server 2008 R2, tra l’altro come indicato questo è l’unico metodo supportato.
Sunday, June 27, 2010
Un grazie a tutti i partecipanti e a Mario Serra e Adriano Arrigo per il loro impegno nel preparare due sessioni davvero interessanti.
Un grazie anche a Renato Giorgini (Microsoft Evangelist) per essere intervenuto all’evento.
Le slide proiettate saranno presto disponibili su Sysadmin.it, per quanto riguarda le mie sono, per chi le desidera, disponibili al seguente link Slide RDS su SkyDrive.
Monday, June 21, 2010
Tramite Windows Server 2008 R2 e l’introduzione del ruolo Remote Desktop Virtualization Host è possibile realizzare un’infrastruttura VDI

Per essere implementata l’infrastruttura VDI richiede i seguenti prerequisiti:
- Il livello di Active Directory deve essere almeno Windows 2000 Server native mode (i livelli Windows 2000 mixed mode e Windows 2003 interim mode non sono supportati)
- Il ruolo Virtualization Host deve essere installato insieme al ruolo Hyper-V
- Gli account utente e le VM devono essere membri di un dominio Active Directory
- I Personal Virtual Desktop e i Virtual Desktop Pool possono essere implementati solo tramite sistemi operativi Windows client e non tramite sistemi operativi server.
- Le VM vanno configute come segue per essere utilizzate in ambiente VDI:
- Abilitare Desktop Remoto
- Abilitare Remote Procedure Call (RPC)
- Aggiungere gli utenti che devono connetersi all VM al gruppo locale Utenti Desktop Remoto
- Aggiungere le permissioni necessarie all’RDP-TCP listener per il server RD Virtualization Host
- Aggiungere l’eccezione al Windows Firewall per Desktop Remoto
- Aggiungere l’eccezione al Windows Firewall per Gestione remota servizi
- Riavviare il servizio Desktop Remoto
- Esiste uno script per configurare le VM in modo che siano utilizzabili in ambiente VDI disponibile al seguente Configure Guest OS for Microsoft VDI (Windows PowerShell Script)
- Probabilmente lo script è stato testato su sistemi operativi il lingua inglese per OS in italiano occorre modificare le seguenti:
- netsh advfirewall firewall set rule group="remote desktop" …
in
netsh advfirewall firewall set rule group="desktop remoto" … - netsh advfirewall firewall set rule group="remote service management" …
in
netsh advfirewall firewall set rule group="gestione remota servizi" …
- Quando un server RD Session Host viene configurato in modalità di redirezione per desktop virtuali non può essere utilizzato per esporre RemoteApp e sessioni Desktop Remoto. Nel caso si desideri gestire nella propria infrastruttura VDI, RDS e RemoteApp occorreranno due server RD Session Host. E’ comunque possibile connettersi al RD Sessioni Host in modalità amministrativa tramite lo switch /admin.
- Alle VM Personal Desktop o in Pool sarà possibile connettersi tramite il server RD Web Access, tramite un collegamento nel menù start di un client Windows 7, tramite il sever RD Gateway o tramite l’indirizzo IP del server RD Session Host
Per ulteriori informazioni si vedano i seguenti:
Thursday, June 17, 2010
Per eseguire il backup di macchine virtuali in Hyper-V su Windows server 2008 R2 senza ricorrere a soluzioni a pagamento quali come ad esempio Microsoft System Center Data Protection Manager è possibile utilizzare due approcci.
Approccio 1: Utilizzo di Windows Backup
E’ possibile utilizzare Windows backup dalla parent partition per eseguire il backup delle VM in Hyper-V. Perchè Windows Backup possa eseguire il backup delle VM è necessario registrare il writer VSS HYPER-V Microsoft con Windows Server Backup impostando una chiave di registry come indicato in KB 958662: How to back up Hyper-V virtual machines from the parent partition on a Windows Server 2008-based computer by using Windows Server Backup.
L’utilizzo di questa metodologia di backup comporta le seguenti:
- Le macchine virtuali che non hanno gli Integration Services installati rimarranno in stato salvato mentre viene creato lo snapshot VSS.
- Le macchine virtuali che eseguono sistemi operativi che non supportano VSS, ad esempio Microsoft Windows 2000 o Windows XP, rimarranno in stato mentre viene creato lo snapshot VSS.
- Le macchine virtuali che contengono i dischi dinamici devono essere sottoposti a backup in modalità non in linea.
- Windows Server Backup non supporta il backup di macchine virtuali HYPER-V su volumi di cluster condiviso (volumi CSV).
- Non è possibile ripristinare la singola VM con Windows Backup ma solo.
- Le VM con due o più snapshot non verranno ripristinate (esiste comunque un workaround descritto nella KB 958662.
Approccio 2: Utilizzo di script Powershell
E’ possibile utilizzare la PowerShell management Library for Hyper-V gli script sviluppati da James O'Neill per realizzare uno script Powershell che arresti la VM, compatti i VHD, esporti la VM e avvii nuovamente la VM.
Di seguito riporto uno script che fa esattamente quanto descritto con la possibilità di mantenere un certo numero di backup e di gestire i log.
Per poter eseguire gli script PowerShell locali occorre impostare l’execution policy ad esempio su RemoteSigned con il seguente comando:
Set-ExecutionPolicy RemoteSigned
Di seguito lo script, nella sezione iniziale è possibile impostare le seguenti configurazioni:
- Nome macchina virtuale
($vmName = "VMTest") - Path backup
($bkpPath = "F:\HyperV-Export") - Numero di backup da mantenere
($bkpCopiesRetained = 2) - Compressione VHD della VM prima dell’esportazione
($compressVHDs = $TRUE) - Avvio della VM al termine del backup
($startVM = $FALSE) - Path dei file log
($logFilePath = $bkpPath) - Suffisso del nome dei file log
($logFileNameSuffix = "LogBackup") - Numero di file di log da mantenere
($logFilesRetained = 3) - Path del modulo powershell di Hyper-V della PowerShell management Library for Hyper-V
($pathPSModuleHyperv = "C:\Scripts\PSHyperv\HyperV" )
Per avviare lo script è possibile utilizzare il comando:
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\BackupVMTest.ps1
Sorgente script BackupVMTest.ps1:
# *** Impostazioni ***
$vmName = "VMTest"
$bkpPath = "F:\HyperV-Export"
$bkpCopiesRetained = 2
$compressVHDs = $TRUE
$startVM = $FALSE
$logFilePath = $bkpPath
$logFileNameSuffix = "LogBackup"
$logFilesRetained = 3
$pathPSModuleHyperv = "C:\Scripts\PSHyperv\HyperV"
# ************************
# *** Import modulo Hyper-V
Import-Module $pathPSModuleHyperv
# *** Inizializzazioni ***
$now = Get-Date
$expPathVM = $bkpPath + "\" + $vmName
$bkpPathVM = $expPathVM + "-" + $now.ToString("yyyy-MM-dd-HH-mm-ss")
$logFileNameBase = $logFilePath + "\" + $logFileNameSuffix + "-" + $vmName
$logFile = $logFileNameBase + "-" + $now.ToString("yyyy-MM-dd-HH-mm-ss") + ".txt"
# ************************
# *** Creazione Backup Path
if (!(Test-Path $bkpPath)){
New-Item $bkpPath -type directory
}
# *** Creazione Log Path
if (!(Test-Path $logFilePath)){
New-Item $logFilePath -type directory
}
# *** Avvio backup
(Get-Date).ToString("yyyy-MM-dd HH:mm:ss") + " Avvio Backup" | Out-File $logFile
# **** Shutdown virtual machines
if ((Test-VmHeartbeat $vmName -HeartBeatTimeOut 5).Status -eq "OK"){
(Get-Date).ToString("yyyy-MM-dd HH:mm:ss") + " Arresto VM " + $vmName | Out-File $logFile -append
Invoke-VMShutdown $vmName -force wait | Out-File $logFile -append
}
else{
(Get-Date).ToString("yyyy-MM-dd HH:mm:ss") + " VM " + $vmName + " non attiva"| Out-File $logFile -append
}
# *** Compattamento VHD
if ($compressVHDs){
Get-VMDisk $vmName | foreach {
if ($_.DiskPath -ne $NULL){
(Get-Date).ToString("yyyy-MM-dd HH:mm:ss") + " Compressione VHD " + $_.DiskPath | Out-File $logFile -append
Compress-VHD $_.DiskPath -wait | Out-File $logFile -append
}
}
}
# *** Export virtual machines
(Get-Date).ToString("yyyy-MM-dd HH:mm:ss") + " Esportazione VM " + $vmName | Out-File $logFile -append
Export-vm $vmName $bkpPath -Wait –copystate | Out-File $logFile –append
# *** Avvio VM
if ($startVM){
(Get-Date).ToString("yyyy-MM-dd HH:mm:ss") + " Avvio VM " + $vmName | Out-File $logFile -append
Start-Vm $vmName -wait -HeartBeatTimeOut 300 | Out-File $logFile -append
}
# *** Rename directory esportazione
if (Test-Path ($expPathVM)){
(Get-Date).ToString("yyyy-MM-dd HH:mm:ss") + " Rename directory esportazione" | Out-File $logFile -append
Move-Item $expPathVM $bkpPathVM | Out-File $logFile -append
}
# *** Eliminazione backup obsoleti
$bkpFolders = Get-ChildItem $bkpPath | Where {$_.psIsContainer -eq $true -and $_.FullName -like ($expPathVM + "*")} | Sort $_.FullName
if ($bkpFolders.Count -gt $bkpCopiesRetained){
for ($i = 1; $i -le $bkpFolders.Count - $bkpCopiesRetained; $i++) {
(Get-Date).ToString("yyyy-MM-dd HH:mm:ss") + " Eliminazione backup directory " + $bkpFolders[$i-1].FullName | Out-File $logFile -append
Remove-Item $bkpFolders[$i-1].FullName -recurse | Out-File $logFile -append
}
}
Friday, June 11, 2010
Molto spesso nelle infrastrutture aziendali vi sono apparecchiature quali Stampanti multifunzione, UPS etc.. che sono in grado di inviare via mail rapporti o allarmi (xes toner in esaurimento, batterie in stato non ottimale etc..).
A volte può essere utile che queste mail vengano inviate non solo al personale del reparto IT, ma anche a indirizzi esterni appartenenti alla società che si occupa della manutenzione di queste apparecchiature.
Nel caso in cui l’infrastruttura adotti come mail server Exchange 2007 o 2010 per impostazione predefinita non sarebbe possibile all’apparecchiatura inviare mail a indirizzi esterni tramite il servizio SMTP di Exchange perché di fatto significherebbe utilizzare il mail server come un relay server.
In Exchange 2007/2010 è però possibile gestire questa situazione nel seguente modo:
- Configurare sull’apparecchiatura un indirizzo mail con cui verranno inviate le mail (per esempio richomp2500.vendite@azienda-esterna.it)
- Configurare sull’apparecchiatura l’indirizzo mail interno su cui inviare rapporti/allarmi.
- Creare un contatto in Active Directory per la mail dell’apparecchiatura
- Creare un contatto in Active Directory per la mail esterna a cui inviare le mail di rapporto/allarme dell’apparecchiatura (per esempio supporto@azienda-esterna.it)
- Creare una regole di trasporto che copi in messaggi provenienti dal contatto della mail dell’apparecchiatura (per esempio richomp2500.vendite@azienda-esterna.it) sul contatto mail esterna (per esempio supporto@azienda-esterna.it)
In questo modo si evita di modificare le impostazioni di sicurezza di Exchange o di modificare le policy del firewall per consentire all’apparecchiatura di inviare mail tramite un server smtp esterno.
In assenza di mail server interni all’organizzazione per evitare di di modificare le policy del firewall per consentire all’apparecchiatura di inviare mail tramite un server smtp esterno è possibile gestire la situazione nel seguente modo:
- Configurare sull’apparecchiatura un indirizzo mail con cui verranno inviate le mail (per esempio richomp2500.vendite@azienda-esterna.it)
- Configurare sull’apparecchiatura l’indirizzo mail interno su cui inviare rapporti/allarmi.
- Creare in Outlook una regola di inoltro per inviare le mail ricevute dall’apparecchiatura (per esempio richomp2500.vendite@azienda-esterna.it) sulla mail esterna (per esempio supporto@azienda-esterna.it)
Ovviamente questa seconda soluzione per funzionare necessita che Outlook sia in esecuzione.
Per maggiori informazioni si vedano: