Flickr Photo

User not found

Calendario

dicembre: 2012
L M M G V S D
« ott    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

About me

Un sito per condividere quello che imparo e confrontarmi con chi ne ha voglia!

windows server

SQL Express 2005 SP3: UpgradeAdvisor returned -1

Aggiornando una vecchia installazione d’appoggio ad un server BES mi sono trovato a dover passare dalla versione SQL Desktop Engine alla versione SQL 2005 SP3.
Nonostante l’operazione sia supportata da Microsoft il setup sistematicamente falliva riportando semplicemente un errore generico nella fase di analisi: UpgradeAdvisor returned -1

Per risolvere il problema è necessario copiare un file DLL che a quanto pare sembra nel percorso sbagliato.

Il file si chiama BPAClient.dll e va copiato dalla cartella C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\BPA\bin alla cartella C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\BPA\bin

Fatto questo rilanciate il setup e tutto dovrebbe andare a buon fine.

SQL 2008 R2: Errore installazione service pack

Di recente durante un aggiornamento di SQL 2008 R2 su un clutser Windows 2008 R2 mi è capitato che l’installazione fallisse per un errore relativo all’aggiornamento di un particolare file: perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll

Dopo varie prove la la soluzione si è rivelata più semplice del previsto.
Dopo aver spostato le risorse cluster sull’altro nodo (oppure fermando i servizi se si è su un server singolo) ho rinominato il file c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\DllTmp64\sqlagentctr100.dll come perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll su una cartella temporanea, successivamente l’ho copiato in C:\Windows\system32 previo backup di quello già presente.

Fatto questo ho rilanciato il setup del service pack di SQL e tutto è andato a buon fine

Il dettaglio dell’errore lo trovate di seguito

File c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\DllTmp64\sqlagentctr100.dll could not be copied to file path C:\Windows\system32\perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll.

Windows Server 2008 R2: cambiare versione della licenza

In-pace change/upgrade windows 2008 R2 edition

All’atto dell’installazione del sistema operativo uno dei primi passaggi è la scelta della versione da installate: standard, enterprise, datacenter.

Una volta fatta l’installazione è comunque possibile eseguire la modifica.
Per prima cosa verificare la versione attuale:

PS C:\> DISM /online /Get-CurrentEdition
Deployment Image Servicing and Management tool
 Version: 6.1.7600.16385
Image Version: 6.1.7600.16385
Current edition is:
Current Edition : ServerStandard
The operation completed successfully.

Continua a leggere

Lotus Notes/Domino: Domino 8.5 non si avvia come servizio su Windows 2008 R2

Domino 8.5 not starting as a service on Windows 2008 R2

Dopo aver aggiornato un server Domino alla versione 8.5.2 il servizio Lotus Domino Server (ELotusDominodata) non si avviava più.
Il problema era che non avevo alcun log/ errori su cui fare riferimento.
Dopo diverse ricerche ho notato che la stringa di avvio del servizio sul nuovo server era cambiata in:

"D:\Lotus\Domino\nservice.exe" "=D:\Lotus\Domino\notes.ini" "-jc" "-c"

In particolare i flag “-jc” “-c” non erano presenti nell’installazione precedente.

Per risolvere il problema è necessario modificare il file notes.ini inserendo le seguenti righe:

ServerController=1
TCPIP_ControllerTcpIpAddress=192.168.0.1.5:2050

Attenzione: ricordatevi di fare un backup del file prima di modificarlo oppure editatelo tramite console con i comandi

SET CONFIG ServerController=1
SET CONFIG TCPIP_ControllerTcpIpAddress=10.10.10.5:2050

Active Directory Recycle Bin

Windows 2008 R2 porta con se un’interessante novità per gli amministratori di rete, il Recycle Bin di Active Directory.
Questa funzionalità permette di ripristinare oggetti di AD cancellati evitando però di dover eseguire il ripristino del system state di un DC da un precedente backup.
Questo significa quindi che possiamo eseguire un restore più rapido e più trasparente agli utenti
L’attivazione del Recycle Bin di Active Directory richiede che il functions level di AD sia 2008 R2, quindi non possiamo avere DC vecchi in linea.
Ultima cosa IMPORTANTE da sapere è che una volta attivata la funzionalità la modifica è IRREVERSIBILE.

Detto questo, possiamo iniziare ad attivarla.
Aprite quindi la powershell e importate il modulo activedirectory con il seguente comando

import-module activedirectory

Quindi digitate il seguente comando:

Enable-ADOptionalFeature –Identity ‘CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=WindowsNT,CN=Services,CN=Configuration,DC=dominio,DC=loc’ –Scope ForestOrConfigurationSet –Target ‘dominio.loc’
WARNING: Enabling 'Recycle Bin Feature' on 'CN=Partitions,CN=Configuration,DC=dominio,DC=loc' is an irreversible action!
You will not be able to disable 'Recycle Bin Feature' on 'CN=Partitions,CN=Configuration,DC=dominio,DC=loc' if you proceed. Confirm
Are you sure you want to perform this action?
Performing operation "Enable" on Target "Recycle Bin Feature".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):

Confermate ed il gioco è fatto!

Nel caso vi apparisse il seguente messaggio d’errore verificate di eseguire il comando sul server che detiene il ruolo FSMO Domain naming master

WARNING: Enabling 'Recycle Bin Feature' on 'CN=Partitions,CN=Configuration,DC=dominio,DC=loc' is an irreversible action!
 You will not be able to disable 'Recycle Bin Feature' on 'CN=Partitions,CN=Configuration,DC=dominio,DC=loc' if you proceed. Enable-ADOptionalFeature : A referral was returned from the server
 At line:1 char:25
 + Enable-ADOptionalFeature <<<< -Identity 'CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows
 NT,CN=Services,CN=Configuration,DC=dominio,DC=loc' -Scope ForestOrConfigurationSet -Target 'dominio.loc'
 + CategoryInfo : NotSpecified: (CN=Recycle Bin ...DC=dominio,DC=loc:ADOptionalFeature) [Enable-ADOptionalFeature], ADException
 + FullyQualifiedErrorId : A referral was returned from the server,Microsoft.ActiveDirectory.Management.Commands.EnableADOptionalFeature

 

Per recuperare un oggetto cancellato potete usare il seguente comando

Get-ADObject -Filter {displayName -eq "test_user"} -IncludeDeletedObjects | Restore-ADObject

Script Powershell per generazione report certificati in scadenza

Dopo aver realizzato un’infrastruttura PKI in ambiente Microsoft, particolarmente nelle grandi realtà il numero dei certificati emessi può crescere velocemente e non sempre ricordarsi se e quando rinnovare i certificati diventa cosa semplice.
Se non è possibile utilizzare il rinnovo automatico, si può utilizzare uno script come questo per generare una notifica schedulata dei certificati in scadenza nei prossimi 15 giorni.


Add-PSSnapin Microsoft.Exchange.Management.Powershell.Admin -erroraction silentlyContinue
certutil -view -out "RequestID,RequesterName,NotAfter" csv > C:\Script\elenco_certificati.csv
$csv = Import-Csv C:\Script\elenco_certificati.csv
$end_date = ((get-date).AddDays(15)).ToShortDateString()
foreach ($cert in $csv)
{
   $d1 = ($cert.'Certificate Expiration Date').SubString(0,10)
   $d2 = [datetime]::ParseExact($d1, "dd/MM/yyyy", $null)
   $d3 = $d2.ToShortDateString()
   if ($d3 -gt $end_date)
   { 
      Add-Content C:\Script\elenco_certificati_in_scadenza.csv $cert
   }
}
$file = "C:\Script\elenco_certificati_in_scadenza.csv"
$smtpServer = "mail.server.srv"
$att = new-object Net.Mail.Attachment($file)
$msg = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Credentials = New-Object System.Net.NetworkCredential("user", "password");
$msg.From = "mittente@dominio.it"
$msg.To.Add("destinatario@dominio.it")
$msg.Subject = "Elenco certificati in scadenza nei prossimi 15 giorni"
$msg.Body = "Vedi allegato"
$msg.Attachments.Add($att)
$smtp.Send($msg)
$att.Dispose()

Windows 2008 R2: How manually rebuild Performance Counters

Molti applicativi per il monitoraggio delle risorse utilizzano i performance counter di sistema per determinare lo stato delle risorse.

Mi è capitato che l’agent deputato all’individuazione di queste informazioni non risponda più o addirittura vada in crash a causa della compromissione proprio dei performance counter in questione.

A questo punto si rende necessario ricostruirli con i seguenti comandi:

cd c:\windows\system32
lodctr /R
cd c:\windows\sysWOW64
lodctr /R

DHCP: script PS1 per aggiungere scope DHCP da un file CSV

Una della più grandi novità delle release di windows server dalla 2008 in poi è la powershell che, sebbene all’inizio possa sembrare poco amichevole, dopo qualche tempo diventa indispensabile per alcune operazioni.

Supponete infatti di dover eseguire delle operazioni ripetitive come ad esempio l’aggiunta di oltre cento scope DHCP con tutti i parametri, dovendo farlo utilizzando la GUI di certo avrete bisogno di parecchio tempo.

Grazie alla powershell ed ad uno script PS1, invece, questa operazione la potrete eseguire in pochi secondi.

Per prima cosa dovrete creavi un file CSV al cui interno vi siano i valori degli scope che volete creare:

Scope_Name,Scope_Mask,Scope_Description,Scope_Start,Scope_End,Scope_Router
192.168.189.64,255.255.255.192,"Sede1",192.168.189.116,192.168.189.118,192.168.189.126
192.168.190.64,255.255.255.192,"Sede2",192.168.190.116,192.168.190.118,192.168.190.126

Fatto questo usate il seguente script:

Param($csvpath)
$networks = import-csv $csvpath

$DHCP_Server="172.16.3.201"

foreach($network in $networks)
{

   $Scope_Name=$network.Scope_Name
   $Scope_Mask=$network.Scope_Mask
   $Scope_Description=$network.Scope_Description
   $Scope_Start=$network.Scope_Start
   $Scope_End=$network.Scope_End
   $Scope_Router=$network.Scope_Router
   netsh dhcp server $DHCP_Server add scope $Scope_Name $Scope_Mask $Scope_Description
   netsh dhcp server $DHCP_Server scope $Scope_Name add iprange $Scope_Start $Scope_End
   netsh dhcp server $DHCP_Server scope $Scope_Name set optionvalue 003 IPADDRESS $Scope_Router
   netsh dhcp server $DHCP_Server scope $Scope_Name set optionvalue 51 DWORD 28800
   netsh dhcp server $DHCP_Server scope $Scope_Name set state 1
}

Salvato questo script come add-dhcp_scopes.ps1 lo potete lanciare passando come parametro il file CSV

add-dhcp_scopes.ps1 dhcp.csv