Skip to content
PowerShell Commands

Set-LocalUser

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

The Set-LocalUser cmdlet modifies a local user account. This cmdlet can reset the password of a local user account.

Parameters

-AccountExpires <DateTime>

  • Default value is None
  • Accepts pipeline input False

Specifies when the user account expires. To obtain a DateTime object, use the Get-Date cmdlet.

If you do not want the account to expire, specify the AccountNeverExpires parameter.

-AccountNeverExpires [<SwitchParameter>]

  • Default value is False
  • Accepts pipeline input False

Indicates that the account does not expire.

-Confirm [<SwitchParameter>]

  • Default value is False
  • Accepts pipeline input False

Prompts you for confirmation before running the cmdlet.

-Description <String>

  • Default value is None
  • Accepts pipeline input False

Specifies a comment for the user account. The maximum length is 48 characters.

-FullName <String>

  • Default value is None
  • Accepts pipeline input False

Specifies the full name for the user account. The full name differs from the user name of the user account.

-InputObject <LocalUser>

  • This value is required
  • Default value is None
  • Accepts pipeline input ByPropertyName

Specifies the user account that this cmdlet changes. To obtain a user account, use the Get-LocalUser cmdlet.

-Name <String>

  • This value is required
  • Default value is None
  • Accepts pipeline input ByPropertyName

Specifies the name of the user account that this cmdlet changes.

-Password <SecureString>

  • Default value is None
  • Accepts pipeline input False

Specifies a password for the user account. If the user account is connected to a Microsoft account, do not set a password.

You can use `Read-Host -GetCredential`, Get-Credential, or ConvertTo-SecureString to create a SecureString object for the password.

If you omit the Password and NoPassword parameters, Set-LocalUser prompts you for the user's password.

-PasswordNeverExpires <Boolean>

  • Default value is None
  • Accepts pipeline input False

Indicates whether the password expires.

-SID <SecurityIdentifier>

  • This value is required
  • Default value is None
  • Accepts pipeline input ByPropertyName

Specifies the security ID (SID) of the user account that this cmdlet changes.

-UserMayChangePassword <Boolean>

  • Default value is None
  • Accepts pipeline input False

Indicates that the user can change the password on the user account.

-WhatIf [<SwitchParameter>]

  • Default value is False
  • Accepts pipeline input False

Shows what would happen if the cmdlet runs. The cmdlet is not run.

<CommonParameters>

This cmdlet supports the common parameters: Verbose, Debug,ErrorAction, ErrorVariable, WarningAction, WarningVariable,OutBuffer, PipelineVariable, and OutVariable.

Inputs
System.Management.Automation.SecurityAccountsManager.LocalUser, System.String,
System.Security.Principal.SecurityIdentifier You can pipe a local user, a string, or a SID to this cmdlet.
Outputs
None
This cmdlet does not generate any output.
Examples
  1. Change a description of a user account:
    PS C:\> Set-LocalUser -Name "Admin07" -Description "Description of this account."
    

    This command changes the description of a user account named Admin07.

  2. Change the password on an account:
    PS C:\> $Password = Read-Host -AsSecureString
    PS C:\>  $UserAccount = Get-LocalUser -Name "User02"
    PS C:\>  $UserAccount | Set-LocalUser -Password $Password
    

    The first command prompts you for a password by using the Read-Host cmdlet. The command stores the password as a secure string in the $Password variable.

    The second command gets a user account named User02 by using Get-LocalUser . The command stores the account in the $UserAccount variable.

    The third command sets the new password on the user account stored in $UserAccount.

Additional Notes
 The PrincipalSource property is a property on LocalUser , LocalGroup , and LocalPrincipal * objects that 
 describes the source of the object. The possible sources are as follows:

 - Local

 - Active Directory

 - Azure Active Directory group

 - Microsoft Account PrincipalSource is supported only by Windows 10, Windows Server 2016, and later versions 
 of the Windows operating system. For earlier versions, the property is blank.

This work is licensed under a Creative Commons Attribution 4.0 International. It is attributed to Microsoft Corporation and can be found here.

PowerShell Commands