Opzioni internazionali e Microsoft Access
Vi è mai capitato di disporre di un database access corredato di maschere ed affini che, ad ogni evento, se ne esce con un errore simile a:
“Error communicating with the OLE server or ActiveX Control”
o, nella versione italiana:
“Errore di comunicazione con il server OLE o con il controllo ActiveX” ?
E, ovviamente, lo stesso database funziona perfettamente su altri 10 pc?
[more]
Bene! Prima di perdere 2 ore in trucchi e barbatrucchi controllate quale è la lingua impostata nelle Opzioni internazionali del pc e avete risolto il vostro problema
Nel mio caso, in un pc con Vista, ha trovato questo……..
Resta da capire, a questo punto, chi ha deciso di imparare l’ucraino……..
Windows 2008 backup script
Con l’avvento di Vista/Windows2008/Seven tutti noi abbiamo dovuto abbandonare le vecchie abitudini relative al backup per abbracciare una nuova filosofia.
Abbandonato il sempre odiato ma spesso utilizzato NTBackup, ci si è dovuti adattare al Windows Backup di nuova generazione che ci ha riservato, come sgradita sorpresa, la caratteristica di funzionare al pieno delle proprie possibilità solo su dischi collegati direttamente alla macchina da backuppare (!), snobbando completamente le storiche unità nastro e limitando l’utilizzo di share di rete e/o NAS.
Detto che per le unità DAT et simila c’è poco da fare, per i backup su share di rete si può organizzare qualcosa di interessante utilizzando powershell e i cmdlet di WSB.
[more]
Ingredienti
– Un sistema operativo supportante WSB;
– powershell 2.0, preinstallato sulle ultimissime versioni, scaricabile da qui per quelle più vecchie;
Preparazione
Per partire è necessario autorizzare l’esecuzione degli script powershell sulla macchina da backuppare digitando, ad esempio in un prompt dei comandi:
powershell "Set-ExecutionPolicy Unrestricted"
Quindi si procede con l’installazione del servizio per i backup con i relativi cmdlet:
ServerManagerCmd.exe -install Backup –allSubFeatures
Infine lo script powershell che si occupa del backup
####################################################
# WBBackup.ps1
# Backup Windows 2008 with WindowsBackup
# Version 1.0
# modified: 19/02/2010
# Autore: Gianluca Ferri
####################################################
# Mapping network share
#(New-Object -ComObject Wscript.Network.MapNetworkDrive)("X:", "\\nas01\Backup", $false, "BackupUser","BackupPassword")
# Var
$Customer="Customer"
$DestFolder="\\Nas01\Backup\" # Backup destination
$LogFile="C:\Dati\Logs\Backup\" # Logfile
$LogsFolder="C:\Dati\Logs\Backup\" # Logs archive folder
[Array] $Services="" #"Virtual Machine Management Hyper-V" # Array of services to stop/start
$SMTPServer="SMTP server"
$SMTPServerUser="SMTPUser"
$SMTPServerPass=ConvertTo-SecureString "SMTPPassword" -AsPlainText -Force
$MailFrom=$Customer + " Backup <indirizzo mittente>"
$MailTo="indirizzo destinatario"
$MailBcc="indirizzo destinatario"
$Emailsubject="[" + $Customer + "] Report backup " + (get-wmiobject win32_computersystem).name
$DaysOld=15 # Logs retain days
$Culture= New-Object Globalization.CultureInfo "it-IT"
$today=Get-Date
$DestFolder=$DestFolder + $today.dayofweek.tostring($Culture)
if (!(Test-Path $DestFolder))
{
# Make folder
New-Item $DestFolder -type directory
}
# Stop services
if ($Service.count>0) {foreach ($serv in $Services) {stop-service $serv}}
# Start backup
$commandline="wbadmin.exe"
$params={start backup `-backuptarget:$DestFolder `-include:"C:" `-VSSFull -allcritical -quiet}
$LogFile=$LogFile + $Customer + (Get-Date -f yyyyMMdd) + ".log"
$exec = "$commandline $params >$LogFile"
Invoke-Expression $exec
# Restart services
if ($Service.count>0) {foreach ($serv in $Services) {start-service $serv}}
# Send email report
$Credential=New-Object System.Management.Automation.PSCredential ($SMTPServerUser, $SMTPServerPass)
send-mailmessage -to $MailTo -bcc $MailBcc -from $MailFrom -subject $Emailsubject -Attachments $LogFile -smtpServer $SMTPServer -Credential $Credential
# Delete older logs
dir $LogsFolder -recurse | where {!$_.PsIsContainer -AND $_.lastWriteTime -lt (Get-Date).AddDays(-$DaysOld) } | select LastWriteTime,@{n="Path";e={convert-path $_.PSPath}} | Remove-Item -force
Questi i passaggi fondamentali eseguiti dallo script:
-
ferma i servizi riportati nella variabile $Services;
-
crea una cartella con il nome del giorno della settimana nel percorso indicato in $DestFolder;
-
esegue un backup completo (con creazione dell’immagine) del disco C: salvandolo nella cartella $DestFolder\giornodellasettimana;
-
riavvia i servizi precedentemente arrestati;
-
invia una mail con allegato il log del backup agli indirizzi indicati in $MailTo e $MailBcc utilizzando il server $SMTPServer;
-
cancella i file di log più vecchi di $DaysOld.
Per schedularlo è sufficiente riportare, come riga di comando,
powershell.exe -command "& 'percorsodelloscript\WBBackup.ps1'"
Quel che otterrò sarà un backup completo per ogni giorno della settimana, regolarmente sovrascritto la settimana successiva; non è il backup incrementale possibile su un disco collegato direttamente, ma è comunque il massimo ottenibile da WSB.
Conclusioni
Secondo Murphy, il backup è un’operazione che non viene mai eseguita in tempo; compito di ogni amministratore di sistema è convincere Mr. Murphy a prendere una lunghissima vacanza.
Windows 7 e i collegamenti scomparsi
Pc con Windows 7 in rete aziendale con una miriade di collegamenti a share di rete sul desktop.
Problema
Saltuariamente spariscono alcuni/tutti i collegamenti.
Soluzione
Acquistare una bambolina vudu fatta a sembianza di quel disgraziato di uno sviluppatore Microsoft (ditemi il nome !!!) che si è inventato questa brillante funzionalità ed infilzarla ripetutamente per sfogare la rabbia repressa.
[more]
Riflessione
In pratica è stata introdotta all’interno di Windows 7 una procedura automatica che periodicamente effettua un po’ di pulizia, compresa di eliminazione dal desktop dei collegamenti inattivi qualora siano in numero superiore a 4 (?). Peccato che siano considerati inattivi anche i collegamenti a chiavette USB momentaneamente disconnesse o share di rete non utilizzate da un po’……….
Per eliminare questa deliziosa feature sono possibili due strade:
1) disattivare la manutenzione periodica del sistema operativo; nel pannello di controllo selezionare ‘Trova e risolvi problemi’
e disattivare ‘Manutenzione computer’
Unica controindicazione è la disattivazione di tutte le altre attività manutentive.
2) Modificare il file
C:\Windows\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1
sostituendo nella riga 44 il –gt 4 con un bel –gt 999; così potremo permetterci di avere fino a 999 collegamenti non funzionanti .
Da ricordare che, essendo un file di sistema, per modificarlo sarà necessario diventarne proprietari e modificare opportunamente le permission.
Note finali
Potrei suggerire a taluni programmatori Microsoft di cambiare pusher?
(Via ghacks.net)
Windows 7, Run as administrator e le network shares
Mi sono trovato nella necessità di far funzionare un software non proprio recentissimo (Autocad LT 2005) su Windows 7; mi direte, aggiorna ad una versione compatibile con il nuovo sistema operativo! In realtà l’utilizzatore possiede anche una nuova e fiammante licenza della versione 2010, che ho puntualmente installato, ma preferisce utilizzare la 2005 !
Comunque installo con qualche forzatura la versione preistorica, ma, come prevedibile, non si avvia neppure…….
Ok, abilitiamo il compatibility mode XP SP3 e riproviamo…..il dinosauro si avvia e sembra anche funzionare correttamente ma c’è un problema: per funzionare richiede l’avvio come amministratore e non vede le share di rete.
Il problema è che in modalità ‘run as administrator’ ci si presenta al sistema con una sessione ed un utente diverso da quello loggato, un diverso access token, e quindi no party.
Mamma Microsoft, ovviamente, ha pensato al workaround del caso, anche se ha deciso di non supportarlo (?). Il tutto si riduce ad attivare sul client un chiave di registry che indica al sistema operativo di condividere l’access token tra l’utente loggato e il super administrator che viene scatenato con ‘run as administrator’, consentendo l’accesso di quest’ultimo alle risorse riservate allo user triste.
[more]
Il ‘miracolo’ viene attivato con questa chiave:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLinkedConnections"=dword:00000001
e la storia è raccontata qui; l’articolo riporta come sistemi operativi quelli della serie Vista ma sembra funzionare egregiamente anche nella serie 7.
Il coltellino svizzero per amministratori di sistema…il ritorno
Dopo aver visto come creare una chiavetta USB contenente un po’ di tools, vediamo come aggiungere qualche cosa di più ostico come il Dart 5.0 (ex ERD Commander) o il BartPE.
Questi tool si presentano sotto forma di CD bootabile che utilizzano, per l’avvio, un ambiente simil Windows XP basato sugli schizzinosi SETUPLDR.BIN e NTDETECT.COM.
La ricetta
[more]
In primis procediamo alla compressione dell’ISO per guadagnare un po’ di spazio sulla chiavetta con
makecab BartPE.iso
Scaricare l’eccellente tool MKIMG descritto qui.
Estrarre il contenuto in una cartella e lanciare la creazione del disco virtuale
mkimg BartPe.dsk
Questi i parametri che ho utilizzato; naturalmente le dimensioni andranno tarate sulla effettiva dimensione dell’immagine compressa da inserire (il file BartPE.is_ ottenuto con il primo comando).
Alla pressione dell’invio il disco virtuale vuoto appena creato verrà mappato con la prima lettera libera (E: nel nostro caso), formattato consentendoci di copiare al suo interno i nostri file.
Attenzione: lasciare aperto il prompt dei comandi fino al termine delle operazioni seguenti; in caso contrario il disco virtuale verrà ‘smontato’ e non sarà possibile l’inserimento dei file.
I files da inserire sono:
– ntdetect.com recuperato dal service pack 1 di Windows 2003;
– setupldr.bin recuperato pure lui dall’SP1 di Windows 2003 e rinominato in upldr
– l’immagine compressa BartPE.is_
– un file di testo winnt.sif contenente le seguenti linee:
[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\I386\SYSTEM32\"
OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.is_"
Il risultato finale sarà più o meno questo
Recuperare un disk editor per la modifica del bootsector del disco virtuale; io utilizzo HxD.
Caricare il disco virtuale
e modificare nel bootsector il riferimento a NTLDR in UPLDR.
Salvare il tutto.
Tornare al prompt dei comandi e premere un tasto; il file immagine verrà chiuso e ‘smontato’
Copiare il file immagine BartPE.dsk nella root della chiavetta e aggiungere al menu.lst la sezione per l’avvio del PE
title BartPE
map --mem /BartPE.dsk (hd0)
map --hook
root (hd0,0)
chainloader (hd0,0)+1
Incrociare le dita e provare .
Note conclusive
Ho utilizzato questo metodo con successo con BartPE e con Dart 5.0 (sempre ex ERD Commander 5.00) ma ritengo che possa tranquillamente funzionare con qualsiasi ISO ‘simil XP’.
Per le caratteristiche del tool di creazione del disco virtuale, ho utilizzato, nella preparazione della ricetta, XP Pro a 32bit. Con qualche accorgimento potrebbe funzionare anche con Vista o 7; se qualcuno vuol provare………..
Credits
Il tutto è liberamente tratto dall’ottimo lavoro di mister online. L’idea di incapsulare una ISO in un finto hard disk è semplicemente geniale!
Prossimamente
Prossima tappa la conversione della chiavetta USB multiboot in un DVD multiboot senza snaturare la struttura.
Il coltellino svizzero per amministratori di sistema
Nel tentativo di migliorare la mia cassetta degli attrezzi informatici ho pensato di creare una chiavetta USB bootabile che mi consentisse di lanciare vari tools per la manutenzione dei pc senza ricorrere al vecchio e lento CD. Per farlo mi sono basato sul lavoro proposto da www.pendrivelinux.com opportunamente modificato per adattarlo alle mie esigenze.
Ingredienti
– Chiavetta USB di capacità opportuna formattata in FAT32;
– Un pc con installato XP/Vista/7 su cui preparare il polpettone;
– le varie ISO o img dei tool da includere;
– il tool MultibootISOs per preparare la chiavetta.
Preparazione
[more]
Scaricare e lanciare il tool MultibootISOs selezionando la lettera associata alla USB key e selezionandone la formattazione
Completata l’operazione otterremo una USB key avviabile con un menu predefinito già pronto.
A questo punto si procede con la copia delle varie ISO e img nella chiavetta. Un elenco dei tools liberamente scaricabili con i relativi link di riferimento sono disponibili sul sito www.pendrivelinux.com
Modificare opportunamente il file menu.lst per avviare i tools.
Aggiunta di software commerciali
Oltre ai vari software freeware/open source indicati nel sito pendrivelinux.com ho aggiunto in maniera semplice anche alcuni programmi commerciali che possono aiutare il quotidiano lavoro di un povero sysadmin.
Symantec Ghost 8.2
E’ sufficiente recuperare il dischetto di boot creato con una qualsiasi distribuzione di Symantec Ghost Enterprise, trasformarlo in un file immagine con, ad esempio, Winimage, copiarla nella root della chiavetta ed aggiungere in menu.lst una sezione simile a:
title Symantec Ghost 8.2
map (hd0,0)/ghost82.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
Microsoft DaRT 6.0
(http://www.microsoft.com/windows/enterprise/products/mdop/dart.aspx)
Creare l’ISO con l’apposito tool compreso nel prodotto, copiarla nella chiavetta ed aggiungere questa sezione:
title Microsoft Dart 6.0
find --set-root --ignore-floppies /ERD60.iso
map /ERD60.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)
In maniera analoga si possono aggiungere tutti quei prodotti che si presentano sotto forma di floppy o CD/DVD bootabile ad eccezione di quelli che utilizzano, per avviarsi, un ambiente simil XP (BartPE, Console di ripristino di XP, Dart 5.0 ex ERD Commander,ecc.) . Per quest’ultimi è necessario applicare un trucco che vedremo in una prossima puntata 🙂
Ultimi ritocchi
Per concludere è possibile ritoccare all’interno del file menu.lst i parametri per la visualizzazione del menu, come i colori o lo sfondo.
Windows 7, XP mode e le CPU tristi
Come noto una delle mosse più decise implementate da Microsoft in Windows 7 per convincere i propri clienti ad abbandonare finalmente XP ed abbracciare una nuova tecnologia client è stato il varo dell’XP mode. Tramite una macchina virtuale contenente un XP Pro è possibile così far funzionare anche il gestionale obsoleto del ventesimo secolo dentro seven in maniera trasparente e indolore. Pubblicità a fiumi su questa funzionalità, il marketing Microsoft che la spaccia quale panacea di tutti i mali; unico requisito l’utilizzo di una macchina con processore che supportasse nativamente la virtualizzazione con tecnologia AMD-V oppure Intel VT.
Sì dirà, che problema c’è, acquisto una nuovo pc e sicuramente avrò un processore adatto allo scopo……… Errore! A verifica più attenta ci si accorge ben presto che molte delle macchine in commercio non hanno un processore che supporta il set di istruzioni richieste e iniziano i problemi 🙁
Finalmente Microsoft si è accorta del problema e ha rilasciato un update che consente l’utilizzo dell’ultima versione di Virtual Pc e quindi dell’XP Mode anche su macchine senza il supporto nativo della virtualizzazione semplicemente aggiungendo all’installazione usuale l’update pubblicato qui .
Exchange 2003 e la PEC
Normalmente i provider che forniscono le caselle PEC richiedono l’utilizzo di connessioni SSL per l’invio / ricezione delle mail. Il POP3 connector di SBS 2003 consente il download dei messaggi solo attraverso il tradizionale protocollo POP3. E allora come ricevere le email certificate in modo centralizzato? Proviamo con un SSL wrapper e vediamo come va……
– Scaricare l’ultima versione di STunnel da qui
– installarlo e modificare opportunamente il file di configurazione stunnel.conf tipo questo
; Stunnel configuration file for SSL POP3 Server connection
; Some options used here may not be adequate for your particular configuration
; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
; Some debugging stuff useful for troubleshooting
debug = 7
output = stunnel.log
; Use it for client mode
client = yes
service=sicurezzapostale.it
[sicurezzapostale.it]
accept = 127.0.0.1:111
connect = pops.sicurezzapostale.it:995
– avviare stunnel come servizio
– configurare il POP3 Connector per scaricare da 127.0.0.1:111
Per l’invio, al momento, credo che la soluzione migliore sia quella di creare un account apposito su ogni postazione client.
P.S. Lo stesso sistema è naturalmente utilizzabile con tutti i provider che richiedono SSL, google in primis.
L’anno che verrà
Da sempre esiste l’obbligo di festeggiare l’arrivo del nuovo anno con mega feste,effetti pirotecnici, tiratardi, casini inenarrabili……
….e da sempre si rimane regolarmente delusi; e il capodanno rimane il più brutto giorno dell’anno. Probabilmente il colpevole è ognuno di noi; le aspettative che riponiamo in questa notte sono evidentemente un po’ eccessive e i risultati rimangono SEMPRE al di sotto delle aspettative.
Per quel che mi riguarda ormai da anni, da quando mi sono accorto che l’adolescenza è terminata, ho scelto un basso profilo e mi sono convertito al ‘capodanno da amici’, una formula che incrementa molto meno il PIL (una serata del genere costa 1/10 di un veglione classico) ma arricchisce molto di più se stessi.
Il Cavaliere mi perdoni……..