domenica 29 agosto 2021

Backup and clear all event log

PULIZIA E BACKUP DI TUTTI GLI EVENTI DI WINDOWS

Ciao,

stavo cercando uno script per fare il backup e pulire TUTTI gli eventi di Windows. Il problema e' che non ho script gia pronti che facevano esattamente quello che volevo. Cosi facendo un po di ricerche ed un po di copia incolla ho preparato uno script che copia e cancella TUTTI i registri degli eventi di Windows. Eccolo qui sotto.

$datetime=((get-date).ToString("yyyyMMdd_HHmmss_"))

Get-winevent  -Listlog  * | select  Logname, Logfilepath | ForEach-Object -Process { 

    $name = $_.Logname

    $safename = $datetime + $_.Logname

    $safename = $safename.Replace("/","-")

    wevtutil.exe EPL $name  D:\BackupEventLogs\$safename.evtx

    wevtutil cl $name

}


Quello che questo script fa e' di fare il backup di tutti gli eventi di Windows nella D:\backupeventlos

Inoltre nel nome del file di backup aggiunge data ed ora.


mercoledì 25 agosto 2021

BITLOCKER

La gestione di BitLocker è più efficiente in situazioni dove è presente il chip TPM (meglio 2.0) sul computer. E’ possibile usarlo anche su macchine che non ne sono dotate, usando una chiavetta di avvio, ad esempio.

Il TPM, semplificando al massimo, è un chip che si occupa della crittografia, e nel quale vengono memorizzate le chiavi crittografiche necessarie per lo sblocco del disco (in realtà è un po’ più complesso, ad esempio può emulare una smart card). Senza la presenza di queste chiavi il disco non verrà sbloccato e non sarà leggibile. In mancanza di TPM è possibile usare una chiavetta di boot che svolga lo stesso compito.

In sintesi, collegare ad un altro PC il disco di una macchina con Bitlocker attivo è inutile a meno di non avere accesso alle chiavi per sbloccarlo.

In aggiunta a quanto sopra è possibile impostare un PIN di avvio (pre-boot Bitlocker PIN), inserendo un “secondo livello di sicurezza”. E’ consigliabile usare il PIN soprattutto sulle macchine utilizzate spesso fuori ufficio.

Un importante aspetto di cui curarsi, con tecnologie di questo tipo, è il recupero dei dati in caso di problemi (ES: pin dimenticato!!!). Quando attivato viene generata una chiave che è possibile stampare, copiare in un file o su una chiavetta USB. Nei PC in dominio, è possibile anche memorizzare questa chiave in Active Directory. Affinché tutto funzioni correttamente è necessario installare Bitlocker ed i tool di gestione sui domain controller. Dopodiché sarà possibile accedere alle informazioni di BitLocker da un tab aggiuntivo sull’account macchina/utente.

Dal mio punto di vista rappresenta la soluzione migliore anche se in presenza di molti oggetti potrebbe appesantire notevolmente le dimensioni e gli eventuali tempi di replica.

Per attivare Bitlocker ho utilizzato le GPO, dove ho specificato l’attivazione, la memorizzazione in AD delle informazioni di sicurezza ed alcuni altri parametri.

Il resto della gestione è possibile svolgerla direttamente da client, oppure da remoto tramite il comando manage-bde.

Ad esempio per attivare il PIN preboot è possibile usare il comando:

Manage-bde -status -computername PIPPO (nome del computer remoto)

Manage-bde -status -computername PIPPO (nome del computer remoto)

GPO

COMPUTER CONFIGURATION

MODELLI AMMINISTRATIVI – COMPONENTI DI WINDOWS – CRITTOGRAFIA UNITA BITLOCKER

Scegli modalità di ripristino delle unita protette con Bitlocker (abilitato)

MODELLI AMMINISTRATIVI – COMPONENTI DI WINDOWS – CRITTOGRAFIA UNITA BITLOCKER – UNITA DEL SISTEMA OPERATIVO

Richiedi autenticazione aggiuntiva all’avvio:

(consenti significa che è possibile abilitare un parametro, richiedi lo rende obbligatorio. Le opzioni non DEVONO andare in contraddizione tra di loro).

Scegli modalità di ripristino delle unità del sistema operativo protette con Bitlocker.

Utile per alcune opzioni tra cui:

-          Consenti agenti recupero dati basati su certificato

-          Salva informazioni di ripristino di BitLocker in Servizi di dominio Active Directory

-          Non abilitare BitLocker finché le informazioni di ripristino non vengono archiviate in Servizi di dominio Active Directory per le unità del sistema operativo

Altre impostazioni interessanti sono l’impostazione del tipo di cifratura, se cifrare tutto il disco o solo lo spazio occupato ecc. ecc.

Dopo aver configurato il tutto, applicare le policy e verificare che dal client tutto sia attivo.

p.s. consiglio di scaricare le versioni piu recenti dei template admx x Windows 10 prima di fare tutto.

Se possibile consiglio di verificare direttamente dal client, ma in alternativa si può fare tutto da remoto. Il comando principale che andremo ad usare è manage-bde. Per la gestione remota tramite questa utility è fondamentale essere amministratori della macchina remota a cui ci vogliamo collegare e che siano attivate le regole di firewall x WMI. Nel caso attivarle (o aggiungere anche queste alla policy).

Supponiamo di utilizzare un computer chiamato CLIENT01

Verifica lo stato di Bitlocker

manage-bde -status -computername “CLIENT01”

Imposta il PIN

manage-bde -protectors -add c: -TPMAndPIN -computername "CLIENT01"

Cambia il PIN

manage-bde -changepin c: -computername "CLIENT01"

Rimuove il PIN

manage-bde -protectors -delete c: -type TPMAndPIN -computername "CLIENT01"

Che io sappia (ma non significa che non sia possibile), l'operazione di "creazione" del pin va fatta a mano direttamente da client oppure da command line. Probabilmente Endpoint manager/Intune/SCCM l'operazione e' possibile. In alternativa e' possibile inserire i comandi in uno script, che magari verifichi lo stato di bitlocker. 

APPENDICE

Usare l'help in manage-bde

Help breve

manage-bde -protectors -delete -?

Help completo

manage-bde -protectors -delete -help

 

Comandi utili

Get-tpm

Manage-bde

Get-BitLockerVolume 

REFERENCE

https://docs.microsoft.com/en-us/windows/security/information-protection/bitlocker/bitlocker-overview

https://www.ictpower.it/sistemi-operativi/gestire-la-crittografia-dei-dischi-con-bitlocker-in-un-ambiente-enterprise.htm

https://www.dell.com/support/kbdoc/it-it/000127780/utilizzo-dell-editor-criteri-di-gruppo-per-abilitare-l-autenticazione-bitlocker-nell-ambiente-di-preavvio-per-windows-7-8-8-1-10

https://oliverkieselbach.com/2019/08/02/how-to-enable-pre-boot-bitlocker-startup-pin-on-windows-with-intune/




venerdì 13 agosto 2021

Rimozione vecchie stampanti

Dopo aver migrato il print server, è necessario cancellare le vecchie stampanti dai client.

E' possibile istruire gli utenti su come farlo, fare il giro di tutti i client, oppure usare uno script.

Io ho scelto di farlo da script, aggiungendo queste righe allo script di logon degli utenti, che poi successivamente commenterò. Una alternativa è quella di creare una GPO che esegua uno script in cui aggiungere le righe sotto.

rundll32 printui.dll,PrintUIEntry /q /dn /n "\\server\printer1"

rundll32 printui.dll,PrintUIEntry /q /dn /n "\\server\printer2"

rundll32 printui.dll,PrintUIEntry /q /dn /n "\\server\printer3"

rundll32 printui.dll,PrintUIEntry /q /dn /n "\\server\printer4"

rundll32 printui.dll,PrintUIEntry /q /dn /n "\\server\printer5"



GPO - Filtri WMI per pc DESKTOP e PORTATILI

 Ciao a tutti,

sto preparando alcune GPO che vorrei applicare solo ai portatili in azienda (e a dir la verità neppure a tutti!!!).

Il mio primo scoglio e' proprio come distinguere un desktop da un portatile.

Per fare questo ho pensato di usare i WMI filtering, tramite cui è possibile recuperare alcune informazioni sul computer

Facendo riferimento a questa pagina:

https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-computersystem

Ho identificato due proprietà che mi possono essere utili:

PCSystemType e PCSystemTypeEx

La seconda e' disponibile solo da Windows 8.1 e Windows 2012 R2 in poi.

Quindi se:

PCSystemType=1 o 3 si tratta di PC Desktop (a dir la verita non so in quale categoria ricadano le workstation mobili!)

PCSystemType=2 si tratta di laptop

Sotto riporto un estratto dal sito su queste 2 proprieta

PCSystemType

Type of the computer in use, such as laptop, desktop, or Tablet.

Unspecified (0)

Desktop (1)

Mobile (2)

Workstation (3)

Enterprise Server (4)

SOHO Server (5) Small Office and Home Office (SOHO) Server

Appliance PC (6)

Performance Server (7)

Maximum (8)


PCSystemTypeEx

Type of the computer in use, such as laptop, desktop, or Tablet.

Windows Server 2012, Windows 8, Windows Server 2008 R2, Windows 7, Windows Server 2008 and Windows Vista not supported.

This property is not supported before Windows 8.1 and Windows Server 2012 R2.

Unspecified (0)

Desktop (1)

Mobile (2)

Workstation (3)

Enterprise Server (4)

SOHO Server (5)

Appliance PC (6)

Performance Server (7)

Slate (8)

Maximum (9)


Adesso devo definire la query per decidere la classe

DESKTOP

Namespace: root\CIMv2

Select * from Win32_ComputerSystem WHERE (PCSystemType = 1) or (PCSystemType = 3)

LAPTOP

Namespace: root\CIMv2

Select * from Win32_ComputerSystem WHERE (PCSystemType = 2)


Adesso devo aprire GPMC ed andare in WMI Filter e scegliere NEW.

Namespace: root\CIMv2

Description: PC DESKTOP

Query: Select * from Win32_ComputerSystem WHERE (PCSystemType = 1) or (PCSystemType = 3)

Fare lo stesso, modificando la query, per i portatili.

Direi che abbiamo finito.

NOTE

Inizialmente avevo pensato di usare questa query: Select * from Win32_Battery WHERE (BatteryStatus <> 0), ma il risultato sarebbe stato che un desktop con attaccato un UPS sarebbe passato per un portatile. :)


APPENDICE

WIN32-SYSTEMENCLOSURE

A dir la verita ci sarebbe anche un'altra proprieta che sarebbe utile allo scopo, ma per semplicita' ho preferito usare quella precedente.

Ad ogni modo va considerata come alternativa.

https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-systemenclosure

ChassisTypes

This value comes from the Type member of the System Enclosure or Chassis structure in the SMBIOS information.

Other (1)

Unknown (2)

Desktop (3)

Low Profile Desktop (4)

Pizza Box (5)

Mini Tower (6)

Tower (7)

Portable (8)

Laptop (9)

Notebook (10)

Hand Held (11)

Docking Station (12)

All in One (13)

Sub Notebook (14)

Space-Saving (15)

Lunch Box (16)

Main System Chassis (17)

Expansion Chassis (18)

SubChassis (19)

Bus Expansion Chassis (20)

Peripheral Chassis (21)

Storage Chassis (22)

Rack Mount Chassis (23)

Sealed-Case PC (24)

Tablet (30)

Convertible (31)

Detachable (32)


QUERY x LAPTOP

Namespace: root\CIMv2

Query:  select * from Win32_SystemEnclosure where ChassisTypes = "{8}" or ChassisTypes = "{9}" or ChassisTypes = "{10}" or ChassisTypes = "{11}" or ChassisTypes = "{12}" or ChassisTypes = "{14}" or ChassisTypes = "{18}" or ChassisTypes = "{21}"


WMI

WMI e' l'acronimo di Windows management instrumentation.

Cosa puo fare?

WMI (Windows Management Instrumentation) è un insieme di interfacce che permettono di interagire con le informazioni di sistema, interrogarle e modificarle.

Nel nostro caso abbiamo bisogno di trovare quella particolare classe che contiene la proprieta che consente di capire se il pc in questione e' un desktop oppure un portatile.

E' possibile interrogare WMI tramite powershell. Un tool grafico che ho utilizzato e' WmiExplorer.

Il problema e' che non sempre le proprieta sono chiare ed occorre fare qualche ricerca per trovare cio di cui abbiamo bisogno


NOTE

wmic, tool di interrogazione WMI e stato rimpiazzato da Get-WmiObject (powershell)

Get-WmiObject e' stato rimpiazzato, dalla versione 3.0 di powershell da Get-CimInstance


ESEMPI POWERSHELL

Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property *

Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property pcsystemtype


REFERENCE

https://www.linkedin.com/pulse/wmi-filtering-gpos-philip-cumiskey

https://social.technet.microsoft.com/Forums/en-US/8f802a56-a66e-495f-9e6f-48bfca341343/gpo-wmi-filter-for-laptops?forum=winserverGP

https://docs.microsoft.com/it-it/windows/win32/cimwin32prov/win32-operatingsystem

https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-systemenclosure

https://docs.microsoft.com/it-it/windows/win32/cimwin32prov/win32-computersystem

https://docs.microsoft.com/en-us/dotnet/api/microsoft.powershell.commands.pcsystemtype?view=powershellsdk-1.1.0

https://docs.microsoft.com/it-it/powershell/scripting/samples/collecting-information-about-computers?view=powershell-7.1

https://powershell.one/wmi/root/cimv2/win32_computersystem

https://docs.microsoft.com/it-it/dotnet/framework/wcf/diagnostics/wmi/

http://www.dotnethell.it/articles/WMI.aspx

https://github.com/vinaypamnani/wmie2/releases


GPO - group policy permission

 Sistemazione permessi GPO

Sto effettuando la migrazione di un dominio da Windows Server 2008R2 a Windows Server 2019. Ho aggiunto quindi il nuovo domain controller 2019 ed effettuato le verifiche del caso.

Tutto funziona correttamente tranne un problema che ho notato dalla console di gestione delle policy. Infatti se la apro (GPMC.MSC), selezione il dominio, e nella destra, tra i tab in alto scelgo STATUS e premo “DETECT NOW”, vengono trovati degli errori si sync.

Solitamente accade per i DC da Windows Server 2012 in poi.

Nel mio caso ha problemi la replica con Windows Server 2019. 

Si tratta di un problema di permessi. Non sono corrette le ACL di una o più policy (nel mio caso quasi tutte).

Ogni ACL (lista dei permessi e’ formata da un insieme di ACE

ACL = Access control list. Elenco dei permessi. Un file dove administrator ed user hanno permessi di lettura rappresenta una ACL

ACE = Access control entry. L’insieme delle ACE crea una ACL. L’utente pippo che può accedere ad un file/oggetto in sola lettura rappresenta un’ACE. 

Ad ogni modo si tratta di un problema noto. Il problema nasce dal fatto che Windows Server 2008R2 e precedenti mettevano più ACE per uno stesso utente (parlando di GPO). Verificando i permessi sulle GPO si nota che DOMAIN ADMINS appare più volte. Questo si può verificare anche per altri utenti (Enterprise admins, SYSTEM ecc. ecc.) 

La parte subdola del problema e’ che questa fatto si evidenzia solo usando ICACLS, tool a riga di comando per la gestione dei permessi. Da GUI sembra tutto normale. 

Prima di fare qualsiasi modifica vi consiglio di fare un backup delle GPO, tramite gpmc.msc.

Selezionare “Group policy objects” – tasto DX e scegliere “Backup ALL” 

Per risolvere occorre togliere le ACE duplicate e forzare una replica. Dopodiché occorre gestire e creare le nuove policy solo da Windows Server 2012 e superiori. 

Per sistemare occorre accedere al server 2008, aprire un command prompt ed andare nel percorso locale delle GPO (ES: C:\Windows\SYSVOL\domain\Policies). 

Utilizzare i seguenti comandi: 

icacls "{GPO UID}"

Fate attenzione e verificate i permessi degli utenti che andrete a toccare. 

icacls "{GPO UID}" /remove:g "<localdomain>\Domain Admins"

icacls "{GPO UID}" /grant "<localdomain>\Domain Admins":(OI)(CI)(F)

repadmin /syncall

repadmin /syncall /AdePq 

ESEMPIO

icacls {F8D0D4C5-EAFB-44C2-8AF5-9A93B1BFB639}

mostra i permessi della GPO 

icacls {F8D0D4C5-EAFB-44C2-8AF5-9A93B1BFB639} /remove:g "<localdomain>\Domain Admins"

toglie tutte le ACE relative a DOMAIN ADMINS

icacls {01C13992-5EC3-4C95-8F85-1D73AEEB657D} /grant "<localdomain>\Domain Admins":(OI)(CI)(F)

aggiunge la ACE relativa a DOMAIN ADMINS, una sola volta! 

p.s. icacls * > c:\temp\GPO_ACL_2008r2.txt crea un file di report di tutti i permessi, utile soprattutto se ci sono molte policy 

Dopodiché posso verificare nuovamente la ACL per vedere che non ci siano entry duplicate per altri utenti.

Come dicevo sopra, mi sono trovato entry duplicate anche per ENTERPRISE ADMINS e SYSTEM.

Alla fine, dopo aver verificato le ACL posso forzare una sincronizzazione usando i seguenti comandi. 

repadmin /syncall

repadmin /syncall /AdePq 

Lasciare passare un pochino da uno all’altro e verificate da GPMC sul nuovo server se il problema si e’ risolto verificando con GPMC dal server dove si e’ verificato l’errore di allineamento. 

Altri comandi utili per verificare lo stato di replica sono:

repadmin /replsummary

repadmin /showrepl 

Ma nel mio caso non hanno mai dato esito negativo nonostante questo problema sulle GPO. 

NOTA

Per creare le nuove policy usando solo il nuovo DC occorre selezionarlo dalla console gpmc.msc.
Aprire la console, selezionare il dominio, tasto dx e dal menu scegliere:
"CAMBIA CONTROLLER DI DOMINIO" 
Da qui procedere alla scelta del controller di dominio da utilizzare.


REFERENCE

https://social.technet.microsoft.com/Forums/ie/en-US/f16b0af1-8772-4f96-a9ac-fac47943e8e9/sysvol-permissions-for-one-or-more-gpo-are-not-in-sync?forum=ws2016

https://social.technet.microsoft.com/Forums/ie/en-US/1a5db5cb-f194-40b5-8545-37ccbac300e1/windows-server-2012-gpos-wont-sync?forum=winserverGP

https://ss64.com/nt/icacls.html

giovedì 5 agosto 2021

Cambio fuso orario

 Ciao,

mi e' capitato di dover cambiare il fuso orario di un server, che continuava a mostrare l'ora degli Stati uniti anziché quella italiana. Nonostante fossi domain admin, non riuscivo a farlo per mancanza di permessi. Per risolvere ho fatto cosi:

C:\Windows\System32

timedate.cpl - runs as administrator.

Risolto :)

REFERENCE

https://4sysops.com/archives/error-changing-time-zone-in-windows-server-2019-use-the-command-line-or-powershell-instead/


Spostamento DHCP

Ciao.

nei giorni scorsi ho dovuto spostare un server DHCP. L'operazione e' stata piuttosto rapida, e mi ha consentito di avere una configurazione identica. Tutti i comandi vanno eseguiti da powershell (admin) del nuovo server. 

Powershell as admin da nuovo server


DHCP su vecchio server attivo

DHCP su vecchio server disattivo

Export-DhcpServer -ComputerName SBS2011 -leases c:\dhcpbackup\vs.xml -verbose


DHCP su vecchio server disattivo

DHCP su vecchio server attivo

Import-DhcpServer -File c:\dhcpbackup\vs.xml -BackupPath c:\dhcpbackup\ -Leases -ScopeOverwrite -Force -ComputerName nuovoserver –Verbose

Riavvio DHCP su nuovo server

deautorizzazione DHCP su vecchio server se tutto OK


REFERENCE

https://community.spiceworks.com/how_to/160139-migrate-dhcp-from-windows-server-2008-to-windows-server-2019

https://social.technet.microsoft.com/Forums/en-US/f4aab17f-d683-4e06-aede-48f3609de238/has-anyone-migrated-dhcp-from-2008r2-to-2019-server?forum=winserveripamdhcpdns

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn338985(v=ws.11)

https://docs.microsoft.com/en-us/answers/questions/121246/change-dhcp-failover-shared-secret-password.html

Verifica scadenza password

 Ciao,

per verificare quando scade la password di un utente in AD e quando e' stata impostata l'ultima volta.

Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} –Properties "DisplayName", passwordlastset, Passwordneverexpires, "msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "Displayname", passwordlastset, Passwordneverexpires, @{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}

REFERENCE:
https://activedirectorypro.com/how-to-get-ad-users-password-expiration-date/

mercoledì 30 giugno 2021

Sharepoint online - Document library permission

 Di solito creo le document library usando i gruppi di Office.

Il problema che ho riscontrato in alcuni casi e' l'impossibilita di scrivere nella libreria se non si e' membri del gruppo proprietari. Mentre non e' un problema dare i permessi di accesso alle sottocartelle, e' leggermente piu macchinoso farlo per la root. Io ho fatto cosi:

 - accesso al portale di Office

 - accesso alla libreria di sharepoint online (per intenderci non sono passato dall'interfaccia di amministrazione)

 - ingranaggio in alto a dx - impostazioni raccolta

 - Autorizzazioni per l'elenco di tipo raccolta documenti

 - concedi autorizzazioni

Nella schermata che si e' aperta ho aggiunto i gruppi/utenti con cui condividere ed a cui dare accesso alla directory principale.












N.B. In sharepoint assegnare dei permessi significa "condividere".



mercoledì 23 giugno 2021

Validazione record SPF

Alcuni tool online per effettuare la validazione dei record SPF


 SPF Record Testing Tools

http://www.kitterman.com/spf/validate.html


SPF Surveyor

https://dmarcian.com/spf-survey/


Dig web interface

http://digwebinterface.com/


venerdì 4 giugno 2021

Microsoft 365 - importazione file pst - network upload

L'importazione dei file PST, se molto grandi puo essere un po macchinosa.

LE strade che si possono seguire sono essenzialmente


 - importazione tramite outlook. Configurare Outlook con le caselle dove devono essere importati i messaggi, e quindi importarli.

 - tramite upload in Microsoft 365


Per seguire la seconda strada occorre effettuare un po di operazioni preliminare prima di procedere.

LA prima operazione da seguire e' collegarsi in powershell al tenant ed eseguire il seguente conmando:


Enable-OrganizationCustomization


NOTE

Dobbiamo eseguire il comando poiche dobbiamo assegnare un nuovo permesso ad un ruolo esistente. Il permesso in questione e' mailbox import export.

PEr verificare che il comando sia andato a buon fine e' sufficiente eseguire questo comando:

Get-OrganizationConfig | FL isDehydrated

se il valore e' TRUE non e' stato eseguito

se il valore e' FALSE e' stato eseguito

La modifica all'organizzazione potrebbe richiedere un po di tempo per diventare davvero attiva. Ricordarsi di fare logoff logon prima di verificare.


Dopo che il comando sara' stato eseguito correttamente (non scritte rosse x interderci) dovremo aggiungere il ruolo necessario.

Aprire la console di exchange, andare in ROLE - ADMIN ROLE

Selezionare COMPLIANCE MANAGEMENT

Adesso dobbiamo aggiungere il permesso di MAILBOX IMPORT EXPORT al ruolo di compliance management

Ricordiamoci di aggiungere, in ASSIGNED membri e gruppi necessari.


Appena queste modifiche sono diventate attive, possiamo prcedere all'upload dei pst e delle modifiche necessarie.


Apriamo admin.microsoft.com e scegliamo conformita (compliance) e quindi "governance delle informazioni". - importazione - nuovo processo di importazione


Installare AzCopy dal link proposto, aprire una powershell ed eseguire il comando seguente:

AzCopy /source:"/path/to/pstfiles" /dest:<SAS URL> --recursive=true

.\AzCopy.exe /source:"J:\PSTs" /dest:"https://fsdfsfdgttrgergdfgdgdf.blob.core.windows.net/ingestiondata?sv=2099-04-05&sr=c&si=IngestionSasForAzCopy2034534353453455&sig=P3ffsd89f7sf7s89f78sd7fs9Kj%8s9f8sf98sf9s8f9s8fs9f8s9f89%3D&se=2099-07-02T13%3A08%3A51Z" /S /V:"J:\LOG\transfer.log" /Y

Dopo aver copiato i file e' ncessario preparare il file di importazione, che segue questo tracciato:

ES:

Workload,FilePath,Name,Mailbox,IsArchive,TargetRootFolder,ContentCodePage,SPFileContainer,SPManifestContainer,SPSiteUrl

Exchange,,PST01.pst,username@dominio.com,FALSE,/,,,,


Questo file dice, per il workload EXCHANGE, di importare il contenuto di PST01 nella casella username@dominio.com, e che non si tratta di una casella archivio (FALSE)

Salviamo il file con il nome PstImportMappingFile.csv

E possibile scaricare il modello del file ed avere degli esempi dai link sotto.


Andando avanti nel processo, ci viene chiesto il file cvs da utilizzare e di validarlo. Dopodiche, e' possibile procedere.

A questo punto, il file viene analissato. Al termine dell'analisi si puo premere sul simbolo della busta per procedere nell'importazione.

Al termine viene fornito un log con i dettagli.



TOOLS UTILI

AZ COPY - x copiare i file in cloud

https://aka.ms/downloadazcopy

https://azure.microsoft.com/en-us/features/storage-explorer/



REFERENCE

https://docs.microsoft.com/it-it/microsoft-365/compliance/importing-pst-files-to-office-365?view=o365-worldwide#BKMK_NetworkUpload

https://www.windowserver.it/2017/06/office-365-import-mail-da-pst/

https://lazyadmin.nl/office-365/import-pst-file-into-office-365/


TMR - Teams recording meeting - Registrazione meeting Teams

Può succedere che durante un meetings in Teams si decida di registrarlo. Può insorgere qualche problema nel momento in cui vogliamo condividere la registrazione con utenti esterni, soprattutto se il nostro tenant e stato creato prima del 2020 Q4.

Essenzialmente un meeting registrato puo essere salvato in Stream oppure in OneDrive/Sharepoint.

STREAM

Un meeting registrato in Stream non puo essere condiviso direttamente con utenti esterni alla propria organizzazione. Lo possiamo fare scaricando il video registrato e condividendolo, ad esempio con OneDrive, DropBox ecc. ecc.

ONEDRIVE/SHAREPOINT

Nei tenant piu recenti e' il metodo di default, e poco per volta lo dovrebbe diventare per tutti. I meeting registrati da un utente vengono salvati su OneDrive, mentre quelli di canale sono salvati su Sharepoint.

La condivisione, in questi casi è molto più semplice, poiché è analoga alla condivisione di qualsiasi altro file. 

MODIFICA POLICY DI SALVATAGGIO

E possibile cambiare la destinazione di salvataggio di un TMR. Per farlo aprire un powershell ed eseguire i seguenti comandi:

INSTALLAZIONE MODULI TEAMS POWERSHELL

Install-Module MicrosoftTeams

IMPORTAZIONE MODULO

Import-Module MicrosoftTeams

COLLEGARSI AL TENANT

Connect-MicrosoftTeams (MFA - vedi reference x dettagli)

oppure

$credential = Get-Credential

Connect-MicrosoftTeams -Credential $credential (standard auth)

MODIFICA POLICY PREDEFINITA

Set-CsTeamsMeetingPolicy -Identity Global -RecordingStorageMode "OneDriveForBusiness"

REFERENCE

https://docs.microsoft.com/en-us/MicrosoftTeams/tmr-meeting-recording-change

https://docs.microsoft.com/en-us/MicrosoftTeams/teams-powershell-install

martedì 1 giugno 2021

HYPERV Replica

 Ecco un po di appunti sparsi sulla replica HyperV tra host in gruppo di lavoro, ed in particolare sulla gestione.

La replica hyperv puo avvenire tra host in dominio o in gruppo di lavoro (workgroup). Tra host in gruppo di lavoro, come nel nostro caso, e necessaria una parte preliminare piu articolata, che consiste nella creazione dei certificati, che vanno poi installati sui rispettivi host.

La scelta di lasciare gli host hyperV in gruppo di lavoro e’ relativa alla sicurezza, x evitare che con le credenziali di dominio si possa accedere anche agli host ed agli storage dove sono salvate le VM.

E’ possibile generare i certificati da qualsiasi PC o server.

Nel nostro caso ho generato i certificati dal mio PC, con Windows 10. I certificati coinvolti solo quella della CA authority (il mio PC, in questo caso) ed i due certifcati creati per l’host HYPERV_A e per HYPERV_B.

GENERAZIONE DEI CERTIFICATI

Ecco i comandi da eseguire per generarli (powershell):

GENERAZIONE DEL CERTIFICATO CA

New-SelfSignedCertificate -Type "Custom" -KeyExportPolicy "Exportable" -Subject "CN=HyperVCA" -CertStoreLocation "Cert:\LocalMachine\My" -KeySpec "Signature" -KeyUsage "CertSign" -NotAfter (Get-Date).AddMonths(240)

In risposta al comando viene restituito il thumbprint del certificato ed il common name. Dovremo utilizzare il thumbprint nei comandi successivi

689A1887D9891AFE4B756118C8E04DC23E6DFE44  CN=HyperVCA

GENERAZIONE CERTIFICATO HYPERV_A

New-SelfSignedCertificate -type "Custom" -KeyExportPolicy "Exportable" -Subject "CN=HYPERV_A" -CertStoreLocation "Cert:\LocalMachine\My" -KeySpec "KeyExchange" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2") -Signer "Cert:LocalMachine\My\689A1887D9891AFE4B756118C8E04DC23E6DFE44" -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -NotAfter (Get-Date).AddMonths(240)

GENERAZIONE CERTIFICATO HYPERV_B

New-SelfSignedCertificate -type "Custom" -KeyExportPolicy "Exportable" -Subject "CN=HYPERV_B" -CertStoreLocation "Cert:\LocalMachine\My" -KeySpec "KeyExchange" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2") -Signer "Cert:LocalMachine\My\689A1887D9891AFE4B756118C8E04DC23E6DFE44" -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -NotAfter (Get-Date).AddMonths(240)

1CC38C74D619838E8D6DA1708ED79CAB2FAF0D8A  CN=HYPERV_A

106EB8002EFB7424254959DBD49EAC2F22F80E69  CN=HYPERV_B

ESPORTAZIONE DEI CERTIFICATI

Per esportare i certificati , aprire la console dei certificati (mmc – certificate snapin – computer – Cartella personal). Dentro dovrebbero esserci tutti e tre i certificati creati sopra. Esportare il certificato della CA come .cer (non esportare la chiave privata), mentre esportare quelli relativi agli host con la chiave privata, in formato .pfx (verrà chiesto di usare una password, necessaria successivamente per importarli).

IMPORTAZIONE CERTIFICATI SULL’HOST

I certificati quindi vanno importati sugli host.

HYPERV_A

HYPERVCA, HYPERV_A

HYPERV_B

HYPERVCA, HYPERV_B

Eseguire questi comandi per importarli

certutil -addstore -f Root "C:\hypervcert\HypervCA.cer"

certutil -f -p 11111111 -importpfx "c:\hypervcert\HYPERV_A_11111111.pfx"

– Disabilitare la verifica della revoca dei certificati digitando nel prompt dei comandi di tutti gli host Hyper-V:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\FailoverReplication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f

IMPOSTAZIONI PRELIMINARI DELLA REPLICA

Affinché tutto il processo di replica funzioni correttamente (failover e replica inversa), è necessario configurare entrambi gli host come replica. Infatti, nel funzionamento normale una VM viene replicata dall’host principale verso l’host di replica. Quando viene effettuato un failover i ruoli degli host rispetto alla VM si invertono, facendo diventare host di replica quello che era l’host principale e viceversa.

FIREWALL

E inoltre importante che la porta 443 del firewall sia aperta e che la risoluzione dei nomi, soprattutto se attiva l’autenticazione tramite certificato, funzioni correttamente.

RISOLUZIONE NOMI

Affinché l’autenticazione tramite certificato funzioni correttamente, è fondamentale che il nome host venga sempre risolto correttamente. Per questo motivo ho preferito mettere il nome host dei rispettivi dentro al file hosts di Windows in system32\drivers\etc\.

IMPOSTAZIONI REPLICA

IMPOSTAZIONE HOST

Nella impostazioni di HYPERV scegliere CONFIGURAZIONE REPLICA, ABILITAZIONE REPLICA e USA AUTENTICAZIONE BASATA SU CERTIFICATI (HTTPS). In caso di host in dominio può andare bene anche la kerberos. Tenere presente che usando i certificati e’ possibile cifrare il traffico di replica e con Kerberos no.

REPLICA VM

Dopo aver configurato gli host occorre attivare la replica per le singole VM. Tasto destro sulla VM e scegliere abilitazione replica. Seguire la configurazione guidata. Quando parte la replica, è possibile scegliere come vogliamo fare la prima sincronizzazione (ES: tramite rete)

OPZIONI REPLICA

Le opzioni di replica disponibili da host primario e host di replica sono leggermente diverse

HOST PRIMARIO

FAILOVER PIANIFICATO

In caso di manutenzione dell’host primario, attiva la replica sul secondario. Per funzionare la macchina principale deve essere spenta. Questo consente di fare un ultimo allineamento della replica, senza che vengano persi dati. E’ possibile decidere se accendere o no la VM di replica.

SOSPENDI REPLICA

Mette in pausa la replica tra i 2 host

VISUALIZZA STATO REPLICA

Controlla lo stato della reòlica

RIMUOVI REPLICA

Cancella la replica definitivamente

 

HOST REPLICA

FAILOVER

Si tratta dell’unplanner failover. Consente di attivare la replica in caso di blocchi improvvisi dell’host primario o VM principale. E’ una procedura di emergenza.

TEST FAILOVER

Verifica il corretto funzionamento della replica. Viene creata una macchina con il suffisso TEST, per verificare che tutto funzioni correttamente.

ESTENDI REPLICA

Consente di estendere la replica ad un terzo host

SOSPENDI REPLICA

Mette in pausa la replica tra i 2 host

VISUALIZZA STATO REPLICA

Controlla lo stato della reòlica

RIMUOVI REPLICA

Cancella la replica definitivamente

GESTIONE REPLICA – COME FARE UN FAILOVER

La funzione più utile è il planned failover (PFO) utile per “attivare” le VM sull’host di replica quando è necessario effettuare una manutenzione sull’host principale. In sintesi il processo del PFO e’ il seguente:

VM1_HYPERV_A su host HYPERV_A e replicata su HYPERV_B, come VM01_HYPERV_B

A regime la macchina in produzione è VM1_HYPERV_A ed è replicata su VM01_HYPERV_B.

Attivo il PFO: spengo VM1_HYPERV_A, le ultime modifiche sono riportate su VM01_HYPERV_B.

Si accende VM01_HYPERV_B e da ora in poi è lei la macchina di produzione.

In questo momento VM1_HYPERV_A e’ spenta e sto facendo le operazioni di manutenzione necessarie su HYPERV_A (l’host).

Dopo aver terminato le operazioni di manutenzione ho riacceso l’host HYPERV_A e sono pronte a riaccendere VM1_HYPERV_A. Per farlo ho la possibilità di invertire la replica o annullare il failover.

REPLICA INVERSA

Inverte il senso di replica. In pratica trasmettiamo le modifiche di VM01_HYPERV_B (produzione) a VM01_HYPER01 (ex produzione). Per concludere e riportare tutto alle condizioni iniziali, rieseguire un PFO ed una nuova REPLICA INVERSA.

ANNULLA FAILOVER

Consente di tornare indietro alla situazione precedente al failover. Se annulliamo il failover VM01_HYPERV_A ritornerà ad essere la VM di produzione e VM01_HYPERV_B tornerà ad essere la replica. Tutte le modifiche avvenute su VM01_HYPERV_B andranno perdute. Operazione caldamente SCONSIGLIATA in casi di domain controller, database ecc. ecc.

NOTE

La replica HYPERV è essenzialmente una soluzione di disaster recovery e non propriamente di backup o business continuity come un cluster. Per fare un failover pianificato (PFO) è OBBLIGATORIO spegnere le VM. La soluzione più indolore e rapida consiste nel tenere spenta la macchina di replica. Se non la si accende e’ possibile effettuare un ANNULLA FAILOVER senza perdere nulla in termini di informazioni, ed e’ molto veloce. E’ molto importante tenere presente il discorso dei checkpoint (production e standard), per evitare di perdere dati o introdurre errori.

 

 

 

ABILITARE AMMINISTRAZIONE REMOTA DEGLI HOST HYPERV DA UN CLIENT

E’ possibile installare la console Hyperv sul proprio PC per gestire direttamente gli host hyperv senza collegarsi direttamente al server. Per farlo occorre eseguire una serie di comandi:

SERVER

Sul server HYPERV al quale collegarsi eseguire i seguenti comandi

-        netsh advfirewall firewall set rule group="Windows Management Instrumentation (WMI)" new enable=Yes

-        netsh advfirewall firewall set rule group="Remote Event Log Management" new enable=Yes

FACOLTATIVO

-        netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes

-        netsh advfirewall firewall set rule group="Remote Volume Management" new enable=Yes

CLIENT

Siccome stiamo parlando di server in workgroup, probabilmente non useranno gli stessi DNS del client. Per questo motivo il primo passaggio e' quello di aggiungere i nomi dei server al file hosts (C:\windows\system32\drivers\etc)

Dalla macchina CLIENT da cui connettersi al server in questione eseguire i seguenti comandi

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "HYPERV"

Enable-WSManCredSSP -Role client -DelegateComputer "HYPERV"

NOTA

Se il comando sopra non dovesse funzionare, si puo provare con quello sotto, generico per tutti gli host ed in seconda battuta restringerlo solo agli host necessari

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" - questo comando funziona x tutti gli host

N.B. Nel mio caso sul CLIENT ho dovuto avviare manualmente il servizio "Gestione remota Windows (WS-Management)" affinche il primo comando avesse esito positivo

AGGIUNTA DEGLI HOST IN GPEDIT.MSC

Configurazione computer > Modelli amministrativi > Sistema > Delega di credenziali > Consenti delega credenziali nuove solo con autenticazione server NTLM

wsman/HYPERV

A questo punto e' necessario aprire la console di HYPERV, aggiungere l'host a cui collegarsi e cliccare sulla casella "CONNETTI COME ALTRO UTENTE" ed inserirlo nel formato HYPERV\username

 

HYPERV CHECKPOINT

In HyperV esistono 2 tipologie di checkpoint: standard (crash consistent) e produzione (application consistent). E’ consigliato di usare i checkpoint standard solo in ambiente di test xche possono creare problemi con active directory e DB. In produzione è necessario utilizzare i checkpoint di produzione. Questi ultimi sono APPLICAZION CONSISTENT (il checkpoint effettua una richiesta ai provider VSS del guest). Con PFO non si presenta il problema perché viene effettuato lo switch a VM spenta. Nella situazione di un UNPLANNED FAILOVER (che si fa in situazioni di emergenza), bisogna cercare di ripristinare un APPLICATION CHECKPOINT, soprattutto se ci sono in ballo DB, AD ecc. ecc.

 

 

REFERENCE

https://itlabz10.tk/archives/1041

https://itlabz10.tk/archives/1025