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







lunedì 22 marzo 2021

PowerShell: Monitorare un file di testo in tempo reale

Spesso i sistemisti hanno la necessità di monitorare file di log rilevando eventuali modifiche in tempo reale. PowerShell permette di monitorare un file di testo visualizzano in tempo reale le modiche attraverso il cmdlet Get-Content.

Ad esempio
Get-Content C:\temp\log.txt -Wait

Il comando può essere utilizzato in tutte le versioni di PowerShell ma presenta un grosso limite: visualizza l'intero contenuto del file prima di visualizzare le nuove righe aggiunte. A partire dalla versione 3 di PowerShell (Windows 8 e successivi) al cmdlet è stato aggiunto un nuovo argomento -Tail che consente di iniziare a monitorare il file dalla fine e non mostrando prima il suo intero contenuto.

Ad esempio
Get-Content C:\temp\log.txt -Tail 0 -Wait
Il file inizierà ad essere monitorato dalla fine e non verrà mostrato prima il suo contenuto. Al parametro -Tail è possibile passare il numero di linee, alla fine del file, da includere nel monitoraggio e da visualizzare.
PowerShell, Get-Content
FIG 1 - PowerShell, Get-Content
Get-Content C:\temp\log.txt -Tail 3 -Wait
Visualizza le ultime 3 righe del file prima di visualizzare eventuali nuove righe aggiunte.

E' anche possibile filtrare le linee che contengono un testo specifico. Il comando
Get-Content C:\temp\log.txt  -Tail 0 -Wait | where { $_ -match "ERROR" }
visualizzerà solo le linee aggiunte alla fine del file che contengono la stringa ERROR.





martedì 16 marzo 2021

Windows Server 2019: Schedulare la generazione di rapporti di archiviazione

Nell'articolo precedente (Windows Server 2019: Gestione rapporti di archiviazione) abbiamo visto come generare un rapporto di archiviazione relativo ai file duplicati. In un'azienda può essere utile schedulare settimanalmente o mensilmente questo tipo di rapporti in modo da tenere sotto controllo la presenza di file duplicati, la quota di occupazione disco o verificare che tipo di file gli utenti stanno salvando sul file server. Il procedimento è molto simile a quello visto nell'articolo precedente:
  • Da Server Manager cliccare su Strumenti quindi su Gestione risorse file server.
    Sever Manager, Strumenti
    FIG 1 - Sever Manager, Strumenti

  • Cliccare, con il tasto destro del mouse, su Gestione rapporti di archiviazione e selezionare, dal menu contestuale, la voce Pianifica una nuova attività rapporto.
    Gestione risorse file server
    FIG 2- Gestione risorse file server

  • Nella casella Nome rapporto digitare il nome che si intende assegnare al report. In Dati rapporto selezionare i report che si intende generare (in questo esempio sono state selezionate le voci File di grandi dimensioni e File duplicati).
    Proprietà attività rapporto archiviazione
    FIG 3 - Proprietà attività rapporto archiviazione

  • Selezionare, evidenziandola in blu, l'opzione File di grandi dimensioni e cliccare sul pulsante Modifica parametri.
    Proprietà attività rapporto archiviazione, File di grandi dimensioni
    FIG 4 - Proprietà attività rapporto archiviazione, File di grandi dimensioni

  • Specificare la dimensione minima superata la quale il file viene considerato di grandi dimensioni (in questo caso è stata specificata la dimensione minima di 50 MB) e cliccare su OK.
    Proprietà rapporto
    FIG 5 - Proprietà rapporto

  • Cliccare sulla scheda Ambito e quindi sul pulsante Aggiungi.
    Proprietà attività rapporto archiviazione. Ambito
    FIG 5 - Proprietà attività rapporto archiviazione, Ambito

  • Selezionare la cartella o il disco che si intende verificare (in questo caso la cartella C:\Dati Personali) e cliccare su OK.
    File Duplicati, cartella
    FIG 6 - File Duplicati, cartella

  • Selezionare la scheda Pianificazione. In tale scheda possiamo pianificare la generazione dei report settimanalmente o mensilmente. Lasciare selezionate l'opzione Ogni settimana, selezionare il giorno (ad es. sabato) e inserire l'ora. Terminate le impostazioni cliccare su OK.
    Pianificazione generazione rapporto
    FIG 7 - Pianificazione generazione rapporto

  • Come visibile in FIG 8, la generazione dei report è stata pianificata.
    Elenco report pianificati
    FIG 8 - Elenco report pianificati

  • Per generare subito i rapporti senza attendere la pianificazione basta cliccarci su con il tasto destro del mouse e selezionare Esegui attività rapporto.
    Esegui attività rapporto
    FIG 9 - Esegui attività rapporto

  • Nella finestra successiva possiamo decidere se attendere che il report venga generato e visualizzato oppure generare il report in background. Lasciare selezionata l'opzione Attendi che i rapporti vengano generati, quindi visualizzati e cliccare su OK.
    Genera rapporti archiviazioni
    FIG 10 - Genera rapporti archiviazioni

  • Dopo qualche secondo verranno generati i report sotto forma di documenti HTML che è possibile consultare con il proprio browser.
    Report generati
    FIG 11 - Report generati









sabato 6 marzo 2021

Windows Server 2019: Gestione rapporti di archiviazione

Il tool per la gestione rapporti di archiviazione può essere utile per individuare file duplicati o di grandi dimensioni sul Server file permettendo di valutarne una migliore organizzazione e salvaguardare lo spazio su disco. 

  • Da Server Manager cliccare su Strumenti quindi su Gestione risorse file server.
    Sever Manager, Strumenti
    FIG 1 - Sever Manager, Strumenti

  • Cliccare, con il tasto destro del mouse, su Gestione rapporti di archiviazione e selezionare, dal menu contestuale, la voce Genera rapporti.
    Gestione rapporti di archiviazione
    FIG 2 - Gestione rapporti di archiviazione

  • In Selezionare i rapporti da generare selezionare la casella File duplicati. In fondo è possibile selezionare anche il formato del rapporto: in questo caso lasciare selezionata l'opzione proposta di default (DHTML).
    Proprietà attività rapporto archiviazione
    FIG 3 - Proprietà attività rapporto archiviazione

  • Per specificare la cartella o il disco su cui agire cliccare sulla scheda Ambito e quindi sul pulsante Aggiungi.
    Proprietà attività rapporto archiviazione. Ambito
    FIG 4 - Proprietà attività rapporto archiviazione, Ambito

  • Selezionare la cartella o il disco che si intende verificare (in questo caso la cartella C:\Dati Personali) e cliccare su OK.
    File Duplicati, cartella
    FIG 5 - File Duplicati, cartella

  • Ritornando alla finestra Proprietà attività rapporto archiviazione cliccare su OK.
    Proprietà attività rapporto archiviazione
    FIG 6 - Proprietà attività rapporto archiviazione

  • Nella finestra successiva possiamo decidere se attendere che il report venga generato e visualizzato oppure generare il report in background. Lasciare selezionata l'opzione Attendi che i rapporti vengano generati, quindi visualizzati e cliccare su OK.
    Genera rapporti archiviazioni
    FIG 7 - Genera rapporti archiviazioni

  • Dopo qualche secondo viene generato il report sotto forma di documento HTML. Aprire il documento tramite il browser.
    Report in formato HTML
    FIG 8 - Report in formato HTML
  • Il report ci indica i file duplicati trovati e altre informazioni come la loro dimensione, le cartelle in cui risiedono, le abilitazioni, ecc.
    Rapporto file duplicati
    FIG 9 - Rapporto file duplicati