Windows Server

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

Windows 2008 R2: NPS log level

Una volta abilitato il ruolo NPS per visualizzarne i log si deve aprire il Server Manager e sfoglirne l’albero sino alla seguente posizione: Custom Views\Server Roles\Network Policy and Access Services

Qui, tuttavia, potreste non vedere gli accessi e le autenticazioni fallite dato che di default il livello del log dell’NPS non ne prevede la visualizzazione.

Per verificare il livello del LOG utilizzate il seguente comando:
auditpol /get /subcategory:"Network Policy Server"
Mentre per abilitare il debug, il seguente:
auditpol /set /subcategory:"Network Policy Server" /success:enable /failure:enable

Fatto questo, modificate anche questa voce del registro di sistema
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\EventLogging dal valore 1 (REG_DWORD type, data 0×00000001) a 3 (REG_DWORD type, data 0×00000003)

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

Active Directory: The destination server is currently rejecting replication requests

La replica tra DC a volte può fallire con il seguente messaggio d’errore:

The destination server is currently rejecting replication requests

Questo significa che i dati tra DC non sono più sincronizzati con il conseguente disallineamento dell’AD.

Una volta eseguiti i soliti test di ping, repadmin, dcdiag e netdiag potete provare a lanciare il seguente comando per verificare le opzioni di replica attualmente impostare sul DC in questione:

repadmin /options

Se nel messaggio ottenuto sono presenti le seguenti voci DISABLE_OUTBOUND_REPL o DISABLE_INBOUND_REPL usate i seguenti comandi per risolvere il problema:

repadmin /options -DISABLE_OUTBOUND_REPL
repadmin /options -DISABLE_INBOUND_REPL

Il risultato finale dovrebbe essere questo:

C:\>repadmin /options
Repadmin: running command /options against full DC localhost
Current DSA Options: IS_GC

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

Rename a Domain Controller Using Netdom

Il cambio dell’hostname di un domain controller come pure il suo IP possono a volte destare dei timori data la criticità delle funzioni svolte.

La seguente procedura è quella che uso sistematicamente e fin’ora si è sempre dimostrata funzionante e stabile!

  1. eseguite il login al domain controller che volete rinominare
  2. aprite un prompt di DOS oppure la powershell (se avete l’UAC abilitato eseguitelo come amministratore) e digitate i seguenti comandi inserendo i valori corretti per il vostro caso
    netdom computername <CurrentComputerName> /add:<NewComputerName>
    netdom computername <CurrentComputerName> /makeprimary:<NewComputerName>
  3. riavviate il server
  4. aprite nuovamente il prompt di DOS e digitate il seguente comando
    netdom computername <NewComputerName> /remove:<OldComputerName>
Fatto! il vostro domain controller ha cambiato nome.
Verificate adesso le repliche AD e il DNS, eventualmente lanciate il comando ipconfig /registerdns

Windows Server 2008: server manager refresh error 0x800F0818

Può capitare che aprendo il server manager di windows 2008 R2 non sia possibile visualizzare i ruoli e le funzionalità installate a causa dell’errore 0x800F0818.

Già avere errori nelle console di gestione è una cosa fastidiosa, figuriamoci se questo accade su un domain controller o peggio su un file server dove eseguire qualsiasi operazione potrebbe causare la chiusura dei file aperti e/o la disconnessione degli utenti.

Vediamo quindi quale potrebbe essere una soluzione a questo problema.

Per prima cosa dobbiamo procurarci un tool di Microsoft:

System Update Readiness Tool for Windows 7 for x64-based Systems (KB947821)

Verificate di scaricare sempre il più aggiornato!

 

Lanciate questo tool e una volta terminata l’esecuzione (potrebbe impiegare parecchi minuti), all’interno della directory C:\Windows\Logs\CBS troverete un file denominato CheckSUR.txt

Continua a leggere