E il global catalog non c’è più!

Un bel giorno un simpatico domain controller con Windows 2008 a bordo decide di andare in ferie; non autentica più gli utenti e blocca l’accesso ad alcune risorse condivise.

Una rapida analisi con un dcdiag mi rivela una inquietante segnalazione:

error 1355. A Global Catalog Server could not be located .
Warning: DcGetDcName(GC_SERVER_REQUIRED) call failed, error 1355

..come non trova il global catalog! l’unico esistente nel dominio è a bordo dello stesso server su cui sto’ eseguendo i test 🙁

Naturalmente, in questa situazione, anche gli snap ‘Domini e trust’ e ‘Sites’ non funzionano dichiarando che non esiste il dominio.

Per completare il quadro, non esistono più le condivisioni SYSVOL e SCRIPT e le relative cartelle di origine sono vuote.

Per ripristinare lo status quo eseguire i seguenti passi:

– prepararsi un bel caffè!

– recuperare dal backup la cartella SYSVOL e ripristinarne il contenuto nel percorso d’origine

– stoppare il servizio ‘Replica File’ (ammesso che già non lo sia) da GUI o tramite net stop ntfrs 

– nel registry andare a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtFrs\Parameters\Backup/Restore\Process at Startup e nella chiave DWORD BurFlags modificare il valore in D4 (HEX).

– riavviare il servizio ‘Replica File’ da GUI o tramite net start ntfrs 

– verificare con dcdiag che il problema del global catalog sia risolto;

verificare che siano ricomparse le share sparite.

Un sentito e commoso GRAZIE a ‘Il caffè delle 8

Windows 2008 backup script

clip_image001

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:

  1. ferma i servizi riportati nella variabile $Services;
  2. crea una cartella con il nome del giorno della settimana nel percorso indicato in $DestFolder;
  3. esegue un backup completo (con creazione dell’immagine) del disco C: salvandolo nella cartella $DestFolder\giornodellasettimana;
  4. riavvia i servizi precedentemente arrestati;
  5. invia una mail con allegato il log del backup agli indirizzi indicati in $MailTo e $MailBcc utilizzando il server $SMTPServer;
  6. 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.

clip_image001[6]

Sito Microsoft

Da qualche giorno il sito http://www.microsoft.com è in esecuzione su IIS7 su Windows Server 2008 Beta 3.

Alcuni dati:

– 80 server su due datacenter

– 500 virtual root

– più di 350 applicazioni web in 12 application pool

– 10000 richieste/sec

– 300000 connessioni concorrenti

– Offline durante la migrazione a Windows Server 2008 Beta 3: 0% del tempo

– 99% delle applicazioni migrate senza alcuna modifica

(tratto da Blog Team TechNet Italia)

Mmm, potrei consigliare una infrastruttura simile al mio capo per il sito aziendale…