lunedì 19 settembre 2022

PowerShell: Nessuna scadenza password per un account locale

Utilizzando il cmdlet Set-LocalUser possiamo rimuovere la scadenza della password per un account locale. Le seguenti istruzioni, che è possibile salvare in un file .PS1, consentono di specificare un account locale e impostare Nessuna scadenza password.
 $User = (Read-Host -Prompt "Username")  
 Set-LocalUser -Name $User -PasswordNeverExpires $true  

Set-LocalUser -PasswordNeverExpires
FIG 1 - Set-LocalUser -PasswordNeverExpires


Per verificare se il comando è andato a buon fine possiamo procedere nel seguente modo:
  • Aprire una finestra di Esplora file, cliccare con il tasto destro del mouse su Questo PC e selezionare Gestione. In alternativa premere la combinazione di tasti Win+R e nella finestra Esegui digitare compmgmt.msc seguito da invio.
    Gestione
    FIG 2 - Gestione

  • Espandere la voce Utenti e gruppi locali e selezionare Utenti.
    Gestione computer, Utenti
    FIG 3 - Gestione computer, Utenti

  • Doppio click con il tasto sinistro del mouse sull'account modificato e verificare che l'opzione Nessuna scadenza password sia attiva.

    Nessuna scadenza password
    FIG 4 - Nessuna scadenza password






domenica 11 settembre 2022

PowerShell: Modificare la password di un account di Active Directory

Il cmdlet Set-ADAccountPassword consente di impostare la password di un account utente in Active Directory, di un computer o di un account di servizio.

Sintassi

Set-ADAccountPassword
   [-WhatIf]
   [-Confirm]
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   [-Identity] <ADAccount>
   [-NewPassword <SecureString>]
   [-OldPassword <SecureString>]
   [-Partition <String>]
   [-PassThru]
   [-Reset]
   [-Server <String>]
   [<CommonParameters>]
   
   

Parametri

-AuthType
Specifica il metodo di autenticazione. I valori accettati dal parametro sono:
  • Negotiate oppure 0 (default)
  • Basic oppure 1
Per il metodo di autenticazione Basic è necessaria una connessione Secure Sockets Layer (SSL).  

-Confirm
Chiede conferma prima di eseguire il cmdlet.

-Credential
Specifica le credenziali dell'account utente da utilizzare per eseguire questa attività. Le credenziali predefinite sono quelle dell'utente attualmente connesso, a meno che il cmdlet non venga eseguito da un'unità provider di Active Directory module for Windows PowerShell. Se il cmdlet viene eseguito da tale unità provider, l'account associato all'unità è quello predefinito.

Per specificare questo parametro, è possibile digitare un nome utente, ad esempio User1 o Domain01\User01, oppure specificare un oggetto PSCredential. Se si specifica un nome utente per questo parametro, il cmdlet richiederà una password.

È anche possibile creare un oggetto PSCredential utilizzando uno script o il cmdlet Get-Credential. È quindi possibile impostare il parametro Credential sull'oggetto PSCredential.

Se le credenziali che agiscono non hanno l'autorizzazione a livello di directory per eseguire l'attività, il modulo Active Directory per Windows PowerShell restituirà un errore di terminazione.

-Identity
Specifica un oggetto di dominio Active Directory fornendo uno dei seguenti valori 
  • Distinguished name
  • GUID (objectGUID)
  • Security identifier (objectSid)
  • Security Account Manager account name (SAMAccountName

-NewPassword
Specifica il valore di una nuova password. Questo valore viene memorizzato come stringa crittografata.

-OldPassword
Specifica il valore della vecchia password. Questo valore viene elaborato come stringa crittografata.

-Partition
Specifica il distinguished name di una partizione di Active Directory. Il distinguished name deve essere uno dei contesti di denominazione del server di directory corrente. Il cmdlet cerca in questa partizione l'oggetto definito dal parametro Identity.

In molti casi, se non viene specificato alcun valore, viene utilizzato un valore predefinito per il parametro Partition. Le regole per determinare il valore predefinito sono riportate di seguito. Si noti che le regole elencate per prime vengono valutate per prime e che, una volta determinato un valore predefinito, non vengono valutate altre regole.

Negli ambienti Active Directory Domain Services, un valore predefinito per Partition viene impostato nei seguenti casi:
  • Se il parametro Identity è impostato su un distinguished name, il valore predefinito di Partition viene generato automaticamente da questo distinguished name.
  • Se si eseguono i cmdlet da un'unità del provider di Active Directory, il valore predefinito di Partition viene generato automaticamente dal percorso corrente dell'unità.
  • Se non si applica nessuno dei casi precedenti, il valore predefinito di Partition viene impostato sulla partizione o sul contesto di denominazione predefinito del dominio di destinazione.

Negli ambienti AD LDS, il valore predefinito di Partition viene impostato nei seguenti casi:
  • Se il parametro Identity è impostato su un distinguished name, il valore predefinito di viene generato automaticamente da questo distinguished name.
  • Se si eseguono i cmdlet da un'unità del provider di Active Directory, il valore predefinito di Partition viene generato automaticamente dal percorso corrente dell'unità.
  • Se l'istanza AD LDS di destinazione ha un contesto di denominazione predefinito, il valore predefinito di Partition è impostato sul contesto di denominazione predefinito. Per specificare un contesto di denominazione predefinito per un ambiente AD LDS, impostare la proprietà msDS-defaultNamingContext dell'oggetto agente del servizio di directory di Active Directory (nTDSDSA) per l'istanza AD LDS.
  • Se non si applica nessuno dei casi precedenti, il parametro Partition assumerà alcun valore predefinito.
-PassThru
Restituisce un oggetto che rappresenta l'elemento con cui si sta lavorando. Per impostazione predefinita, non viene generato alcun output.

-Reset
Specifica la reimpostazione della password di un account. Quando si utilizza questo parametro, è necessario impostare il parametro NewPassword. Non è necessario specificare il parametro OldPassword.

-Server
Specifica l'istanza di Active Directory Domain Services a cui connettersi:
  • Fully qualified domain name
  • NetBIOS name
  • Fully qualified directory server name
  • NetBIOS name
  • Fully qualified directory server name e la porta
-WhatIf
Mostra cosa accadrebbe se il cmdlet venisse eseguito. Il cmdlet non viene eseguito.

Esempi

Esempio 1
Set-ADAccountPassword -Identity Giovanni.Lubrano
Viene richiesta la vecchia password e la nuova password da impostare per l'account specificato.
Set-ADAccountPassword
FIG 1 - Set-ADAccountPassword

Esempio 2
Set-ADAccountPassword -Identity "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local" -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "p@assw0rd1234" -Force)
Questo comando imposta la password dell'account utente con DistinguishedName "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local"

Esempio 3
Set-ADAccountPassword -Identity Giovanni.Lubrano -OldPassword (ConvertTo-SecureString -AsPlainText "p@assw0rd1234" -Force) -NewPassword (ConvertTo-SecureString -AsPlainText "qwerty@01234" -Force)
Questo comando imposta la password dell'account utente con SamAccountName GLubrano su qwerty@01234. L'uso di -NewPassword con un valore, senza fornire il valore del parametro -OldPassword, reimposta ugualmente la password.

Esempio 4
Set-ADAccountPassword -Identity Giovanni.Lubrano -NewPassword (ConvertTo-SecureString -AsPlainText "qwerty@01234" -Force) -Reset
Analogo all'esempio 3 con la differenza che in questo caso viene specificata solo la nuova password e viene utilizzato il parametro -Reset.
Set-ADAccountPassword -NewPassword
FIG 2 - Set-ADAccountPassword -NewPassword

Esempio 5
$User = (Read-Host -Prompt "Username")
$NewPassword = (Read-Host -Prompt "Nuova password" -AsSecureString
Set-ADAccountPassword -Identity $User -NewPassword $NewPassword -Reset
Viene richiesto di specificare l'account utente su cui agire e la nuova password da assegnare all'account.




mercoledì 31 agosto 2022

PowerShell: Cambiare la password di un account locale

Per modificare la password di un utente locale, è necessario utilizzare i comandi Get-LocalUser e Set-LocalUser. Il codice seguente richiede di specificare un nome utente e una password. Il nome utente viene ricercato tra gli account locali del sistema e, se presente, gli viene attribuita la password specificata.
  $User = (Read-Host -Prompt "Username")   
  $Password = (Read-Host -Prompt "Nuova password" -AsSecureString)   
  $UserAccount = Get-LocalUser -Name $User   
  $UserAccount | Set-LocalUser -Password $Password  

PowerShell, Modifica password account locale
FIG 1 - PowerShell, Modifica password account locale

lunedì 29 agosto 2022

PowerShell: Modificare un account utente locale

Il cmdlet Set-LocalUser consente di modificare un account utente locale. Questo cmdlet può essere utilizzato per reimpostare la password di un account utente locale.

Sintassi

Set-LocalUser
   [-AccountExpires <DateTime>]
   [-AccountNeverExpires]
   [-Description <String>]
   [-FullName <String>]
   [-Name] <String>
   [-Password <SecureString>]
   [-PasswordNeverExpires <Boolean>]
   [-UserMayChangePassword <Boolean>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Set-LocalUser
   [-AccountExpires <DateTime>]
   [-AccountNeverExpires]
   [-Description <String>]
   [-FullName <String>]
   [-InputObject] <LocalUser>
   [-Password <SecureString>]
   [-PasswordNeverExpires <Boolean>]
   [-UserMayChangePassword <Boolean>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Set-LocalUser
   [-AccountExpires <DateTime>]
   [-AccountNeverExpires]
   [-Description <String>]
   [-FullName <String>]
   [-Password <SecureString>]
   [-PasswordNeverExpires <Boolean>]
   [-SID] <SecurityIdentifier>
   [-UserMayChangePassword <Boolean>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
   

Parametri

-AccountExpires
Specifica la data di scadenza dell'account utente locale. Per ottenere un oggetto DateTime, utilizzare il cmdlet Get-Date.

-AccountNeverExpires
L'account locale specificato non avrà scadenza.

-Confirm
Richiede una conferma prima di eseguire il cmdlet.

-Description
Specifica un commento per l'account utente locale indicato. La lunghezza massima è di 48 caratteri.

-FullName
Specifica il nome completo dell'account utente. Il nome completo differisce dal nome dell'account utente.

-InputObject
Specifica l'account utente che questo cmdlet deve modificare. Per ottenere un account utente è possibile utilizzare il cmdlet Get-LocalUser.

-Name
Specifica il nome dell'account utente che il cmdlet dovrà modificare.

-Password
Specifica una password per l'account utente locale. Se l'account utente è collegato a un account Microsoft, non è necessario impostare una password.
È possibile utilizzare Read-Host -AsSecureString, Get-Credential o ConvertTo-SecureString per creare un oggetto SecureString per la password.
Se si omettono i parametri Password e NoPassword, Set-LocalUser richiederà la password dell'utente.

-PasswordNeverExpires
Permette di specificare se la password dell'account utente locale indicato ha una scadenza.

-SID
Specifica l'ID di sicurezza (SID) dell'account utente che questo cmdlet dovrà modificare.

-UserMayChangePassword
Indica che l'utente può modificare la password.

-WhatIf
Mostra cosa accadrebbe se il cmdlet venisse eseguito. Il cmdlet non viene eseguito.
   
   

Esempi

Esempio 1
Set-LocalUser -Name "Virtual" -Description "Account utente locale per test."   
Questo comando modifica la descrizione di un account utente locale chiamato Virtual.
Set-LocalUser
FIG 1- Set-LocalUser






martedì 23 agosto 2022

Windows 10: Opzioni di condivisione di rete per Ottimizzazione recapito

Al fine di rendere il download degli aggiornamenti più veloce, Microsoft ha aggiunto una nuova funzionalità in Windows 10 che prevede il download peer-to-peer (P2P) per gli aggiornamenti e per le App. In pratica gli aggiornamenti possono essere scaricati automaticamente tanto dai server Microsoft quanto da altri computer sulla rete locale o su Internet. Questo velocizza la distribuzione degli aggiornamenti in quanto oltre ai server Microsoft, si potrà contare anche sulle risorse messe a disposizione dagli altri utenti. 

Solitamente la funzione prevede che gli aggiornamenti vengano distribuiti solo ad altri computer all'interno della rete locale ma con semplici passaggi è possibile disattivarla o modificarla:
  • Dal menu Start selezionare Impostazioni (oppure premere la combinazione di tasti WIN+I);
  • Cliccare su Aggiornamento e sicurezza;
    Impostazioni di Windows
    FIG 1 - Impostazioni di Windows

  • In Windows Update cliccare su Opzioni avanzate;
    Windows Update
    FIG 2 - Windows Update

  • Scorrere all'interno della pagina e cliccare su Ottimizzazione recapito;
    Opzioni avanzate
    FIG 3 - Opzioni avanzate

  • A questo punto possiamo agire sull'impostazione Consenti download da altri PC e decidere se:
    Disattivare la funzionalità. Gli aggiornamenti verranno scaricati solo dai server Microsoft e non verranno distribuiti su altri dispositivi.
    PC nella rete locale. Gli aggiornamenti verranno scaricati dai server Microsoft o da altri PC della rete locale. Gli aggiornamenti scaricati sul PC verranno condivisi tra tutti i PC della rete locale.
    PC nella rete locale e su Internet. Con tale opzione abilitata gli aggiornamenti possono essere scaricati dai server Microsoft, da PC della rete locale o da PC su Internet. Gli aggiornamenti scaricati verranno condivisi con altri PC sia sulla rete locale che su Internet.
    Ottimizzazione recapito
    FIG 4 - Ottimizzazione recapito





domenica 21 agosto 2022

PowerShell: Elencare gli account utenti locali

Il cmdlet Get-LocalUser visualizza gli account utente locali che includono gli account utente predefiniti integrati, gli account utente locali creati dall'utente e gli account locali collegati agli account Microsoft.

Sintassi

Get-LocalUser
   [[-Name] <String[]>]
   [<CommonParameters>]
   
Get-LocalUser
   [[-SID] <SecurityIdentifier[]>]
   [<CommonParameters>]

Parametri

-Name
Permette di specifica un array di nomi di account utente che il cmdlet dovrà verificare. È possibile utilizzare il carattere jolly.   

-SID
Permette di specificare un array di ID di sicurezza (SID) degli account utente che questo cmdlet dovrà verificare. Anche con tale parametro è possibile utilizzare il carattere jolly.

Esempi

Esempio 1
Get-LocalUser
Visualizza l'elenco degli account locali.
Get-LocalUser
FIG 1 - Get-LocalUser

Esempio 2
Get-LocalUser -Name "Virtual"
In questo esempio vengono visualizzate informazioni sull'account locale Virtual, se presente.
Get-LocalUser -Name
FIG 2 - Get-LocalUser -Name

Esempio 3
Get-LocalUser -SID S-1-5-21-3709759149-2871342979-3498957072-1002
Visualizza informazioni sull'account locale avente il SID specificato.

Esempio 4
Get-LocalUser -Name "MicrosoftAccount\username@Outlook.com"
Visualizza informazioni sull'account utente specificato collegato a un account Microsoft. 





martedì 16 agosto 2022

Kali Linux: Avviare Kali Linux da pendrive USB

Il metodo più semplice e veloce per iniziare a lavorare con Kali Linux è quello di eseguirlo "live" da una pendrive USB. Questo metodo presenta diversi vantaggi:
  • Non è distruttivo. Non apporta modifiche al disco rigido del sistema host o al sistema operativo installato e per tornare alle normali operazioni è sufficiente rimuovere l'unità USB "Kali Live" e riavviare il sistema.
  • È portable. Può essere eseguito in pochi minuti su un sistema disponibile.
  • È personalizzabile. Si può creare un immagine ISO di Kali Linux personalizzata e metterla su una pendrive USB usando le stesse procedure.
  • Può essere resa persistente. È possibile configurare la pendrive USB "live" di Kali Linux in modo che abbia una memoria persistente e i dati raccolti non venrranno persi con il riavvio.

Il primo passo per creare un'unità USB avviabile con Kali Linux consiste nel procurarsi un'immagine ISO adatta allo scopo. Dal browser accedere alla pagina https://www.kali.org/get-kali/ e cliccare su Live Boot che è la versione eseguibile da memoria USB.
Get Kali
FIG 1 - Get Kali
Selezionare la versione desiderata. La versione raccomandata (Recomended) è quella adatta nella maggior parte dei casi.
Kali Linux Live Boot
FIG 2 - Kali Linux Live Boot
In ambiente Windows, per preparare un'unità USB avviabile, è possibile utilizzare uno dei tanti tool di terze parti. Tra i più noti e semplici da usare c'è Balena Etcher (è possibile utilizzare anche RUFUS già visto in più di un'occasione su questo blog). Dal sito web https://www.balena.io/etcher/ è possibile scaricare anche la versione portable del tool, in modo da avviarlo senza installarlo sul sistema.
Balena Etcher
FIG 3 - Balena Etcher

Collegare la pendrive USB al PC. La procedura elimina l'intero contenuto della pendrive quindi assicurarsi che non vi siano dati importanti prima di procedere. Una volta avviato il tool Balena Etcher, cliccare su Flash from file e selezionare il file ISO scaricato precedentemente.
Balena Etcher Flash from file
FIG 4 - Balena Etcher Flash from file

Selezione file ISO
FIG 5 - Selezione file ISO

Cliccare su Select target e selezionare la pendrive USB che si desidera preparare.
Select target
FIG 6 - Select target

A questo punto non resta che cliccare su Flash e attendere il termine dell'operazione.
Flash
FIG 7 - Flash
Trasferimento file su pendrive USB
FIG 8 - Trasferimento file su pendrive USB

Ora che la pendrive è pronta, basta riavviare il PC ed eseguire il boot da USB. L'operazione varia a seconda del produttore e dal modello della scheda madre.
Balena Etcher, Flash terminato
FIG 9 - Balena Etcher, Flash terminato

Kali Linux Live
FIG 10 - Kali Linux Live