Al lavoro mi trovo a dover aggiungere un account locale amministratore in ogni computer, di una società che è stata acquisita, che ne risulta privo. Farlo manualmente diventa lungo e complesso, ripeterlo decine di volte diventa pesante, così ricorro a uno script PowerShell e al cmdlet New-LocalUser.

Creazione con richiesta password

Questi comandi permettono la creazione dell’utente Zane, nel gruppo Administrators e di inserire la password nel momento in cui lanciamo lo script.

  • $Password = Read-Host -AsSecureString "Inserisci la password del nuovo utente"
  • New-LocalUser -Name "Zane" -Password $Password -FullName "Zane di TurboLab.it" -Description "Amministratore ad honorem"
  • Add-LocalGroupMember -Group "Administrators" -Member "Zane"

Come aggiungere account locale computer tramite PowerShell

Verifica creazione utenza

Per verificare che l’utente è stato effettivamente creato si possono usare questi due comandi: Get-LocalGroupMember -Group "Administrators" che filtra gli utenti del Gruppo Administrators, potete cambiarlo e mettere qualsiasi gruppo abbiate utilizzato, mentre Get-LocalUser mostra tutti gli utenti presenti.

Come aggiungere account locale computer tramite PowerShell

Opzioni cmdlet

Ci sono molte opzioni che ci permettono di configurare subito l’account

  • -Name: Nome dell’account, lunghezza massima venti caratteri.
  • -Password: La password dell’account.
  • -Description: Descrizione dell’account (opzionale).
  • -AccountExpires: Data di scadenza dell’account, serve se si vuole rendere amministratore qualcuno solo per un certo periodo o se uno stagista deve usare quel computer per un mese.
  • -AccountNeverExpires: L’account non scade mai.
  • -Disabled: L’account creato risulta disabilitato.
  • -FullName: Nome completo dell'account visualizzato.
  • -PasswordNeverExpires: La password impostata non scade mai.
  • -UserMayNotChangePassword: L’utente non può cambiare la password.

Creazione utenza con password inclusa

Se non abbiamo voglia di digitare ogni volta la password, possiamo già inserirla nello script usando una variabile $Password e la password la scriviamo tra le virgolette:

  • $Password = ConvertTo-SecureString "Turb0L4b.it456" -AsPlainText -Force
  • New-LocalUser -Name "Zane" -Password $Password -FullName "Zane TurboLab.it"
  • Add-LocalGroupMember -Group "Administrators" -Member "Zane"
  • Get-LocalGroupMember -Group "Administrators" Non è indispensabile questa riga è solo per verificare che l'utente creato sia presente.

Come aggiungere account locale computer tramite PowerShell

Account con scadenza

Se abbiamo bisogno di creare un account temporaneo, che sia valido solo per un certo numero di giorni, possiamo inserire la data di scadenza con l’opzione -AccountExpires:

  • New-LocalUser -Name "Paperoga" -AccountExpires (Get-Date).AddDays(30)

Come aggiungere account locale computer tramite PowerShell

Mentre Set-LocalUser -Name "Zane" -AccountExpires (Get-Date).AddDays(30) permette di cambiare la durata di un utente già esistente.

Creazione account multipli

Se dobbiamo creare più account nello stesso computer, con durata trenta giorni, nel gruppo Users (utenze senza permessi amministrativi) possiamo usare questo script:

  • $Users = @(
  • @{Name="Pippo"; FullName="Pippo"; Password="P@ssw0rd1"},
  • @{Name="Pluto"; FullName="Pluto"; Password="P@ssw0rd2"},
  • @{Name="Topolino"; FullName="Topolino"; Password="P@ssw0rd3"}
  • )
  • foreach ($User in $Users) {
  • $Password = ConvertTo-SecureString $User.Password -AsPlainText -Force
  • New-LocalUser -Name $User.Name -Password $Password -FullName $User.FullName -Description "Utenze normali a scadenza" -AccountExpires (Get-Date).AddDays(30)
  • Add-LocalGroupMember -Group "Users" -Member $User.Name
  • }

Come aggiungere account locale computer tramite PowerShell

Per verificare che le utenze siano state create filtriamo gli utenti del gruppo Users:

  • Get-LocalGroupMember -Group "Users"

Mentre se vogliamo sapere tutte le caratteristiche di un singolo utente si utilizza questo comando:

  • Get-LocalUser -Name pippo | select *

Come aggiungere account locale computer tramite PowerShell

Script finale

Raccogliendo i comandi, e le opzioni, visti in precedenza, lo script finale, che mi serve per creare una utenza amministratore locale senza scadenza, con password sempre valida e che non può essere cambiata, è questo:

  • $NewUserSplat = @{
  • Name = "Zane"
  • Password = ConvertTo-SecureString "1nerisc1LaP@assw0rd!" -AsPlainText -Force
  • FullName = $AccountFullName = "Zane TurboLab.it"
  • Description = $AccountDescription = "Account Amministratore"
  • AccountNeverExpires = $true
  • PasswordNeverExpires = $true
  • UserMayNotChangePassword = $true
  • }
  • New-LocalUser @NewUserSplat
  • Add-LocalGroupMember -Group "Administrators" -Member "Zane"

Come aggiungere account locale computer tramite PowerShell

Riprendiamo un commando visto in precedenza per vedere le caratteristiche dell’utente Zane:

  • Get-LocalUser -Name Zane | select *

Come aggiungere account locale computer tramite PowerShell