Wiki di Michele

Utenti e gruppi locali

GuidaUltima modifica: 24/10/2026 Verificata il 24/10/2026

Il modulo Microsoft.PowerShell.LocalAccounts gestisce gli account locali di Windows. Richiede console amministratore per le modifiche.

In PowerShell 7 su Windows il modulo funziona tramite compatibilità; se non è disponibile, importalo con Import-Module Microsoft.PowerShell.LocalAccounts -UseWindowsPowerShell.

Utenti

Get-LocalUser
Get-LocalUser -Name Michele
Get-LocalUser | Select-Object Name, Enabled, LastLogon, PasswordLastSet, PasswordExpires
Get-LocalUser | Where-Object Enabled

Creare un utente

$pw = Read-Host "Password" -AsSecureString
New-LocalUser -Name "tecnico" -Password $pw -FullName "Utente Tecnico" -Description "Account di supporto"
New-LocalUser -Name "tecnico" -Password $pw -PasswordNeverExpires -UserMayNotChangePassword

La password va richiesta come SecureString, non scritta in chiaro negli script.

Modificare

Set-LocalUser -Name "tecnico" -Description "Nuova descrizione"
Set-LocalUser -Name "tecnico" -Password $pw
Set-LocalUser -Name "tecnico" -PasswordNeverExpires $true
Disable-LocalUser -Name "tecnico"
Enable-LocalUser -Name "tecnico"
Rename-LocalUser -Name "tecnico" -NewName "supporto"
Remove-LocalUser -Name "supporto"

Gruppi

Get-LocalGroup
Get-LocalGroupMember -Group "Administrators"
Get-LocalGroupMember -Group "Administrators" | Select-Object Name, ObjectClass, PrincipalSource
Add-LocalGroupMember -Group "Administrators" -Member "tecnico"
Remove-LocalGroupMember -Group "Administrators" -Member "tecnico"
New-LocalGroup -Name "Supporto" -Description "Gruppo di supporto"
Remove-LocalGroup -Name "Supporto"

I nomi dei gruppi predefiniti dipendono dalla lingua di Windows ("Administrators" o "Administratori" in italiano). Per essere indipendenti dalla lingua, usa il SID:

Get-LocalGroupMember -SID "S-1-5-32-544"
Add-LocalGroupMember -SID "S-1-5-32-544" -Member "tecnico"

SID noti: S-1-5-32-544 Administrators, S-1-5-32-545 Users, S-1-5-32-555 Remote Desktop Users.

Aggiungere un utente di dominio a un gruppo locale

Add-LocalGroupMember -Group "Administrators" -Member "DOMINIO\mario.rossi"
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "DOMINIO\Gruppo-Supporto"

Audit rapido degli amministratori locali

Get-LocalGroupMember -SID "S-1-5-32-544" | Select-Object Name, ObjectClass, PrincipalSource
Get-LocalUser | Where-Object { $_.Enabled -and $_.PasswordLastSet -lt (Get-Date).AddDays(-180) } | Select-Object Name, PasswordLastSet

Su più computer:

Invoke-Command -ComputerName PC01, PC02 -ScriptBlock { Get-LocalGroupMember -SID "S-1-5-32-544" } | Select-Object PSComputerName, Name

Account integrato Administrator

Get-LocalUser | Where-Object SID -like "*-500"
Disable-LocalUser -SID (Get-LocalUser | Where-Object SID -like "*-500").SID

Il suo SID termina sempre in -500, anche se è stato rinominato.

Sessioni e profili

quser
logoff 2
Get-CimInstance Win32_UserProfile | Select-Object LocalPath, LastUseTime, Loaded
Get-CimInstance Win32_UserProfile | Where-Object { -not $_.Special -and $_.LastUseTime -lt (Get-Date).AddDays(-90) }

L'eliminazione di profili va fatta con cura: Remove-CimInstance su Win32_UserProfile elimina anche la cartella dell'utente.

Politiche delle password locali

net accounts
net accounts /minpwlen:12 /maxpwage:90

Strumento grafico

lusrmgr.msc

Non disponibile nelle edizioni Home di Windows.

Tag

comandipowershellwindows

Altre pubblicazioni in questa sezione

Suggerisci una correzione