domenica 4 aprile 2021

Windows Server 2019: DFS replication

In questo articolo vedremo come implementare la replica del file system distribuito (DFS Replication). Come descritto nell'articolo precedente (Windows Server 2019: Distributed File System Namespace) la replica DFS è un servizio di ruolo di Windows Server che consente di replicare le cartelle su più server. 
Ad esempio
Supponiamo di avere sul Server1DC una cartella nominata Databases. Tramite la Replica DFS possiamo fare in modo che l'intero contenuto della cartella venga copiato automaticamente sul Server2DC all'interno della cartella Databases.BKP. In questo modo, in caso di indisponibilità di uno dei due server, i dati saranno comunque disponibili.

Dopo aver creato la cartella Database sul Server1DC e Database.BKP sul Server2DC il passo successivo consiste nell'installazione del ruolo

Installazione ruolo Replica DFS
  • Da Server Manager cliccare su Aggiungi ruoli e funzionalità
    Server Manager
    FIG 1 - Server Manager

  • Cliccare sempre sul pulsante Avanti fino a raggiungere la sezione Ruoli server
    Aggiungi Ruoli e funzionalità, Operazioni preliminari
    FIG 2 - Aggiungi Ruoli e funzionalità, Operazioni preliminari

    Aggiungi ruoli e funzionalità, Tipi di installazione
    FIG 3 - Aggiungi ruoli e funzionalità, Tipi di installazione

    Aggiungi ruoli e funzionalità, Selezione dei server
    FIG 4 - Aggiungi ruoli e funzionalità, Selezione dei server

  • Cliccare su Servizi file e archiviazione, quindi su Servizi file e iSCSI, selezionare Replica DFS e infine cliccare su Avanti
    Aggiungi ruoli e funzionalità, Ruoli server
    FIG 5 - Aggiungi ruoli e funzionalità, Ruoli server

  • Dato che non abbiamo la necessità di installare ulteriori funzionalità, cliccare su Avanti
    Aggiungi ruoli e funzionalità, Funzionalità
    FIG 6 - Aggiungi ruoli e funzionalità, Funzionalità

  • Cliccare su Installa
    Aggiungi ruoli e funzionalità, Conferma
    FIG 7 - Aggiungi ruoli e funzionalità, Conferma

  • Al termine dell'installazione cliccare su Chiudi
    Aggiungi ruoli e funzionalità, Risultati
    FIG 8 - Aggiungi ruoli e funzionalità, Risultati


Configurazione Replica DFS
  • Dal menu Strumenti di Server Manager cliccare su Gestione DFS
    Server Manager, Strumenti
    FIG 9 - Server Manager, Strumenti

  • Cliccare su Replica quindi su Nuovo gruppo di replica
    Gestione DFS
    FIG 10 - Gestione DFS

  • Lasciare selezionata l'opzione Gruppo di replica multifunzione e cliccare su Avanti
    Tipo gruppi di replica
    FIG 11 - Tipo gruppi di replica

  • Nella casella Nome del gruppo di replica digitare il nome che si intende assegnare (ad es. Server1DC-Server2DC) e cliccare su Avanti per proseguire
    Nome e dominio
    FIG 12 - Nome e dominio

  • Il passo successivo consiste nell'indicare i server che faranno parte del gruppo di replica. Cliccare sul tasto Aggiungi
    Membri del gruppo di replica
    FIG 13 - Membri del gruppo di replica

  • Digitare il nome del server nell'apposita casella (ad es Server1DC), quindi cliccare su controlla nomi e infine su OK
    Seleziona Computer
    FIG 14 - Seleziona Computer

  • Ripetere l'operazione per aggiungere anche il secondo server (ad es. Server2DC)
  • Cliccare su Avanti
    Membri del gruppo di replica
    FIG 15 - Membri del gruppo di replica
  • Il passo successivo consiste nell'indicare la topologia di connessione dei server che fanno parte del gruppo di replica. Selezionare A maglia completa e cliccare su Avanti
    Seleziona topologia
    FIG 16 - Seleziona topologia

  • Possiamo indicare se la replica delle cartelle deve essere eseguita in tempo reale (eventualmente, soprattutto in caso di grandi volumi, limitando la banda utilizzata dalla funzione) oppure fare in modo che avvenga solo in giorni e orari stabiliti. Selezionare l'opzione Replica nei giorni e negli orari specificati e cliccare sul pulsante Modifica pianificazione
    Pianificazione gruppo di replica e larghezza di banda
    FIG 17 - Pianificazione gruppo di replica e larghezza di banda

  • Selezionare l'ora e/o il giorno in cui avviare la Replica e indicare, nella casella Utilizzo larghezza di banda, la banda che si intende riservare all'operazione quindi cliccare su OK
    Modifica pianificazione
    FIG 18 - Modifica pianificazione

  • Ritornati alla schermata precedente cliccare su Avanti per proseguire
    Pianificazione gruppo di replica e larghezza di banda
    FIG 19 - Pianificazione gruppo di replica e larghezza di banda

  • Nella schermata successiva bisogna selezionare il server in cui è disponibile il contenuto che si desidera replicare. Nella casella Membro primario selezionare il Server1DC e cliccare su Avanti
    Membro primario
    FIG 20 - Membro primario

  • Per indicare le cartelle da replicare, cliccare su Aggiungi
    Cartelle da replicare
    FIG 21 - Cartelle da replicare

  • Cliccare sul tasto Sfoglia e selezionare la cartella da Replicare (nel nostro caso C:\Databases) e cliccare su OK
    Aggiungi cartella da replicare
    FIG 22 - Aggiungi cartella da replicare

  • Una volta indicato le cartelle da replicare cliccare su Avanti
    Cartelle da replicare
    FIG 23 - Cartelle da replicare
  • Nella finestra successiva bisogna indicare il percorso in cui replicare le cartelle sugli altri server appartenenti al gruppo di replica. Cliccare su Modifica
    Percorso locale di Databases negli altri membri
    FIG 24 - Percorso locale di Databases negli altri membri

  • Selezionare l'opzione Abilitato, quindi cliccare su Sfoglia e selezionare la cartella, sul server remoto, su cui effettuare la sincronizzazione. Cliccare su OK
    Selezione cartella server remota in cui replicare
    FIG 25 - Selezione cartella server remota in cui replicare

  • Cliccare su Avanti
    Percorso locale della cartella replicata
    FIG 26 - Percorso locale della cartella replicata

  • Prima di cliccare su Crea verificare il riepilogo delle impostazioni
  • Nella finestra successiva vengono visualizzati gli esiti delle operazioni eseguite nella creazione di un nuovo gruppo di replica. Cliccare su Chiudi
    Esito creazione gruppo di replica
    FIG 27 - Esito creazione gruppo di replica

  • Un messaggio ci avvisa che la replica non verrà eseguita finché tutti i server del gruppo di replica non ricevono la configurazione. Cliccare su OK

    Ritardo replica
    FIG 28 - Ritardo replica

A questo punto la replica è configurata. Tutti i dati contenuti in C:\Databases sul Server1DC verranno replicati all'interno della cartella C:\Databases.BKP sul Server2DC nel giorno e ora specificati.






mercoledì 31 marzo 2021

Windows Server 2019: Distributed File System Namespace

Il file system distribuito (Distributed File System o DFS) è una tecnologia di Microsoft che consente di raggruppare, in un'unica struttura logica di directory, più cartelle situate fisicamente su file server diversi. Anche se i file e le cartelle saranno su server diversi, agli utenti che accedono alla rete verranno visualizzati come se fossero su un unico server. Sarà inoltre possibile memorizzare copie multiple di un singolo file e il servizio sceglierà, in modo ottimale, il server a cui inoltrare la richiesta. 

Il file system distribuito utilizza due servizi di ruolo: DFS Namespace e DFS Replication.

DFS Namespace 
Lo spazio dei nomi DFS (DFS Namespace) è un servizio di ruolo di Windows Server che permette di raggruppare cartelle condivise che si trovano in server diversi in uno o più spazi dei nomi strutturati in modo logico. In questo modo agli utenti viene fornita una visualizzazione virtuale delle cartelle condivise. Questa funzionalità consente una gestione centralizzata delle condivisioni, aumenta la disponibilità e, quando gli utenti tentano di accedere ad un file o cartella condivisa, se la risorsa è disponibile, vengono prima indirizzati alla condivisione presente nello stesso sito di Active Directory Domain Services anziché essere instradati su connessioni WAN.


DFS Replication
Replica DFS (DFS Replication) è un servizio ruolo di Windows Server che consente di replicare in modo efficiente le cartelle (incluse quelle a cui viene fatto riferimento da un percorso di spazio dei nomi DFS) in più server e siti. Replica DFS è un motore di replica multimaster utilizzabile per mantenere sincronizzate le cartelle tra più server attraverso connessioni di rete con larghezza di banda limitata. Utilizza un algoritmo di compressione noto come RDC (Remote Differential Compression). La tecnologia RDC è in grado di rilevare le modifiche apportate ai dati di un file e consente a Replica DFS di replicare solo i blocchi di file modificati anziché l'intero file.

In questo articolo verrà trattato il DFS Namespace mostrando, passo passo, come creare uno spazio nomi per raggruppare le condivisioni. 

Immaginiamo il seguente scenario: all'interno dell'azienda ci sono numerose cartelle condivise dislocate su diversi server. Tali cartelle dovranno essere accessibili a tutti gli utenti dell'azienda.
Per evitare che l'utente debba mappare ogni singola share sul suo computer e per facilitare la gestione delle condivisioni da parte degli amministratori una soluzione consiste nell'adottare il DFS Namespace. Per capire meglio il funzionamento del DFS Namespace proseguiamo con una sua semplice implementazione.

Sul Server1DC creare le cartelle condivise Progetti e Foto.
Sul Server2DC creare la cartella condivisa Database.
Per questo esempio le condivisioni vanno create fornendo le abilitazioni Full Access a tutti gli utenti del domino e nascondendole aggiungendo alla fine del nome il simbolo $. Per la creazione si può fare riferimento all'articolo Windows Server 2019: Mappare cartelle personali.


Installazione del servizio DFS
Per poter creare uno spazio dei nomi è necessario prima installare il servizio DFS:
  • Da Server Manager cliccare sul link Aggiungi Ruoli e funzionalità.
    Server Manager
    FIG 1 - Server Manager

  • Cliccare su Avanti fino a raggiungere la sezione Selezione dei server.
    Aggiunta guidata ruoli e funzionalità, Operazioni preliminari
    FIG 2 - Aggiunta guidata ruoli e funzionalità, Operazioni preliminari

    Aggiunta guidata ruoli e funzionalità, Tipo di installazione
    FIG 3 - Aggiunta guidata ruoli e funzionalità, Tipo di installazione

  • Selezionare il server sui cui si intende installare il nuovo ruolo (In FIG 4 è presente un solo server) e cliccare su Avanti.
    Aggiunta guidata ruoli e funzionalità, Selezione dei server
    FIG 4 - Aggiunta guidata ruoli e funzionalità, Selezione dei server
  • Nella sezione Ruoli server posizionarsi su Servizi file e archiviazione -> Servizi file e iSCSI e cliccare su Spazi dei nomi DFS come mostrato in FIG 5.
  • Selezione ruoli server, Spazi dei nomi DFS
    FIG 5 - Selezione ruoli server, Spazi dei nomi DFS

  • Non appena si clicca su Spazi dei nomi DFS apparirà la finestra mostrata in FIG 6. Cliccare sul pulsante Aggiungi funzionalità.
    Aggiungi funzionalità
    FIG 6 - Aggiungi funzionalità

  • Si ritorna alla schermata precedente ma stavolta la voce Spazi dei nomi DFS risulta selezionato. Cliccare su Avanti per proseguire.
    Selezione Spazi dei nomi DFS
    FIG 7 - Selezione Spazi dei nomi DFS

  • Nella schermata successiva, non dovendo installare ulteriori funzionalità, cliccare su Avanti.
    Funzionalità
    FIG 8 - Funzionalità

  • Per avviare l'installazione cliccare su Installa.
    Installa Spazi dei nomi DFS
    FIG 9 - Installa Spazi dei nomi DFS

  • Alla fine dell'installazione cliccare su Chiudi.
    Fine installazione Spazi dei nomi
    FIG 10 - Fine installazione Spazi dei nomi


Creazione spazio dei nomi
Di seguito vengono riportati i passaggi per la creazione di uno spazio dei nomi a cui daremo il nome MyCompany Shares e che andrà ad includere tutte le cartelle condivise sopra menzionate.
  • Dal menu strumenti di Server Manager selezionare Gestione DFS.
    Server Manager, Gestione DFS
    FIG 11 - Server Manager, Gestione DFS

  • Cliccare con il tasto destro del mouse su Spazi dei nomi e selezionare Nuovo spazio dei nomi.
    Gestione DFS
    FIG 12 - Gestione DFS

  • La prima operazione che viene richiesta è quella di selezionare un server su cui verrà ospitato lo spazio dei nomi. Digitare il nome del server (Server1DC) e cliccare su Avanti.
    Server dello spazio dei nomi
    FIG 13 - Server dello spazio dei nomi

  • Inserire il nome da assegnare allo spazio dei nomi (mycompany shares) e cliccare su Avanti.
    Nome e impostazioni spazio dei nomi
    FIG 14 - Nome e impostazioni spazio dei nomi

  • Nella successiva schermata bisogna specificare il tipo di spazio dei nomi da creare:
    Spazio dei nomi basato su dominio che viene archiviato in uno o più server dello spazio dei nomi e in Servizi di dominio Active Directory (\\mycompany.local\MyCompany Shares).

    Spazio di nomi autonomo che viene archiviato su un singolo server dello spazio dei nomi (\\Server1DC\MyCompany Shares).

    Lasciare selezionate le opzioni proposte e cliccare su Avanti.
    Tipo spazio dei nomi
    FIG 15 - Tipo spazio dei nomi

  • Cliccare su Crea.
    Creazione spazio dei nomi
    FIG 16 - Creazione spazio dei nomi

  • Al termine della creazione cliccare su Chiudi per ritornare alla finestra Gestione DFS.
    Creazione dello spazio dei nomi completata
    FIG 17 - Creazione dello spazio dei nomi completata

  • Ora che lo spazio dei nomi è stato creato bisogna specificare quali share inserire al suo interno. Espandere la voce Spazio dei nomi per visualizzare il nuovo spazio dei nomi creato in precedenza, selezionarlo, quindi cliccare su Nuova cartella.
    Spazio dei nomi, Nuova cartella
    FIG 18 - Spazio dei nomi, Nuova cartella

  • Inserire il nome da assegnare alla nuova cartella (ad es. Progetti MyCompany) e cliccare su Aggiungi.
    Spazio dei nomi, Nuova cartella
    FIG 19 - Spazio dei nomi, Nuova cartella

  • Specificare il percorso della cartella condivisa (\\SERVER1DC\Progetti$) o cliccare su Sfoglia per selezionarla quindi cliccare su OK.
    Aggiungi destinazione cartella
    FIG 20 - Aggiungi destinazione cartella

  • Cliccare su OK.
    DFS, Nuova cartella
    FIG 21 - DFS, Nuova cartella
  • Ripetere i passaggi sopra riportati anche per le altre cartelle condivise.
    DFS, Cartelle
    FIG 22 - DFS, Cartelle



Creazione criterio di gruppo
Per fare in modo che a tutti gli utenti del dominio venga mappato in automatico lo spazio dei nomi, si procede alla creazione di un apposito criterio di gruppo (GPO).
  • Dal menu strumenti di Server Manager selezionare Gestione criteri di gruppo.
    Server Manager, Gestione Criteri di gruppo
    FIG 23 - Server Manager, Gestione Criteri di gruppo

  • Cliccare sul dominio mycompany.local e selezionare Crea un oggetto Criteri di gruppo in questo dominio e crea qui il collegamento.
    Crea un nuovo oggetto Criteri di gruppo
    FIG 24 - Crea un nuovo oggetto Criteri di gruppo

  • Digitare il nome da assegnare al criterio GPO_DFS_Namespace e cliccare su OK.
    Nome GPO
    FIG 25 - Nome GPO

  • Cliccare sul criterio appena creato e selezionare Modifica.
    Modifica GPO
    FIG 26 - Modifica GPO
  • Posizionarsi su Configurazione utente->Preferenze->Impostazioni di Windows->Mapping unità. Cliccare con il tasto destro del mouse all'interno del riquadro sulla destra e selezionare Nuovo->Unità mappata.
    GPO, Mapping unità
    FIG 27 - GPO, Mapping unità

  • Nel campo azione lasciare Aggiorna, in Percorso digitare \\mycompany.local\MyCompany Shares. Selezionare l'opzione Riconnetti e in Etichetta digitare MyCompany Shares. Selezionare la lettera da assegnare all'unità mappata quindi cliccare su OK.
    Unità mappata, Nuove proprietà unità
    FIG 28 - Unità mappata, Nuove proprietà unità


Adesso che la GPO è stata creata, eseguendo il logon su una postazione Windows 10 del dominio lo spazio dei nomi verrà mappato così come impostatp all'interno del criterio di gruppo e al suo interno saranno presenti i link alle varie cartelle condivise.

Spazio dei nomi mappato come unità
FIG 29 - Spazio dei nomi mappato come unità

Contenuto dello spazio dei nomi
FIG 30 - Contenuto dello spazio dei nomi





lunedì 29 marzo 2021

PowerShell: Riconvertire il file di testo in eseguibile (Parte 2)

Nell'articolo precedente (PowerShell: Convertire un file eseguibile in un file di testo) è stato mostrato come convertire un file eseguibile in un file di testo. L'operazione avrebbe poco senso se non fosse possibile eseguire l'operazione inversa e ritrasformare il file di testo in un file eseguibile. Anche in questo caso verrà utilizzato uno script PowerShell per certi versi simile a quello visto nell'articolo precedente.
Le istruzioni presenti all'interno dello script sono le seguenti:
    [CmdletBinding()] Param ( 
        [Parameter(Position = 0, Mandatory = $True)]
        [String]$FileTXT,
    
        [Parameter(Position = 1, Mandatory = $True)]
        [String]$FileEXE
    )
    
    [String]$dump = get-content -path "$FileTXT" -ReadCount 0
    [Byte[]] $temp = $dump -split ' '
    [System.IO.File]::WriteAllBytes($FileEXE, $temp)
    Write-Output "File convertito in $FileExe"

La prima parte riguarda la gestione dei parametri. In questo caso entrambi i parametri sono obbligatori e indicano il file di testo da convertire e il nome del file eseguibile che verrà creato. Nella seconda parte non facciamo altro che caricare tutto il contenuto del file di testo in una stringa. Successivamente dalla stringa estraiamo i byte (separati da un carattere spazio) e li carichiamo all'interno di un array di byte. Infine non resta che salvare i byte all'interno del file eseguibile con l'istruzione
[System.IO.File]::WriteAllBytes($FileEXE, $temp)

Dal seguente link è possibile scaricare lo script PowerShell Txt2Exe.ps1

Script PowerShell Txt2Exe
FIG 1 - Script PowerShell Txt2Exe





mercoledì 24 marzo 2021

PowerShell: Convertire un file eseguibile in un file di testo (Parte 1)

In alcuni contesti, per passare "inosservati" e superare restrizioni e controlli, può essere utile trasformare temporaneamente un file eseguibile in un innocuo file di testo per poi eseguire l'operazione inversa in un secondo momento. Tale conversione può essere eseguita tramite un semplice script PowerShell

La conversione può essere effettuata con poche righe di codice come quelle mostrate di seguito

    [CmdletBinding()] Param(
        [Parameter(Position = 0, Mandatory = $True)]
        [String]
        $FileEXE, 
        
        [Parameter(Position = 1, Mandatory = $False)]
        [String]
        $FileTXT = "$pwd\EseguibileConvertito.txt"
    )
    [byte[]] $dump = Get-Content -encoding byte -path "$FileEXE" -ReadCount 0
    [System.IO.File]::WriteAllLines($FileTXT, ([string]$dump))
    Write-Output "Il file e' stato convertito in $FileTXT"


Innanzitutto andiamo a caricare i parametri passati durante la chiamata dello script. Nella variabile $FileEXE andiamo a caricare il primo parametro passato, obbligatorio, che corrisponde al file eseguibile da convertire.
Il secondo parametro, facoltativo, verrà caricato nella variabile $FileTXT e rappresenta il nome del file di testo in cui verrà salvata la conversione. Nel caso in cui tale parametro non venisse specificato, il file di testo verrà creato nel percorso corrente ($pwd) e gli verrà assegnato il nome EseguibileConvertito.txt.

Le due istruzioni più interessanti sono
    [byte[]] $dump = Get-Content -encoding byte -path "$FileEXE" -ReadCount 0
    [System.IO.File]::WriteAllLines($FileTXT, ([string]$dump))

Con la prima, attraverso il cmdlet Get-Content e il parametro -encoding byte, andiamo a caricare tutti i byte che compongono il file eseguibile in un array di byte. Il parametro -ReadCount 0 permette di leggere tutto il contenuto del file eseguibile in una singola operazione.
Nell'istruzione successiva i byte vengono trasformati in testo per essere scritti all'interno del file di output. Il file di output avrà una dimensione superiore a quella del file eseguibile di partenza. 

Dal seguente link è possibile scaricare lo script Exe2Txt.ps1

Script PowerShell Exe2Txt
FIG 1 - Script PowerShell Exe2Txt.ps1




martedì 23 marzo 2021

Windows 10: Emoji nei nomi dei file e cartelle

Nell'articolo Windows 10: Pannello Emoji (Emoji, Kaomoji e Simboli) abbiamo visto come inserire un emoji all'interno del testo che stiamo digitando online o all'interno di un'applicazione come Microsoft Word. L'interfaccia di selezione degli emoji, richiamabile tramite la combinazione WIN+., funziona in gran parte dei programmi e delle applicazioni che utilizzano lo standard Unicode per la codifica dei caratteri. Tra i programmi compatibili c'è anche la shell di Windows con Esplora file il che rende possibile inserire emoji anche all'interno dei nomi di file e cartelle. Il funzionamento è analogo a quanto visto nel precedente articolo: nel digitare il nome del file o della cartella basta richiamare il pannello degli emoji con l'apposita combinazione di tasti e selezionare l'emoji da inserire (o digitare la parola corrispondente al simbolo grafico, ad es torta, selezionarlo con  tasti freccia e inserirlo premendo invio).
Inserimento emoji nel nome della cartella
FIG 1- Inserimento emoji nel nome della cartella


Emoji nel nome della cartella
FIG 2 - Emoji nel nome della cartella


Anche se Windows supporta il formato Unicode da molti anni non è consigliabile utilizzarlo per inserire simboli grafici all'interno dei nomi di file e cartelle in quanto programmi non aggiornati, o lo stesso prompt dei comandi, non sono in grado di interpretare correttamente tali caratteri visualizzando al loro posto una serie di glifi e punti interrogativi.

Prompt dei comandi non supporta caratteri Unicode
FIG 3 - Prompt dei comandi non supporta caratteri Unicode