Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Set-LocalUser

Modifies a local user account.

Syntax

Name (Default)

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

InputObject

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

SecurityIdentifier

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

Description

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

Note

The Microsoft.PowerShell.LocalAccounts module is not available in 32-bit PowerShell on a 64-bit system.

Examples

Example 1: Change a description of a user account

Set-LocalUser -Name "Admin07" -Description "Description of this account."

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

Example 2: Change the password on an account

$Password = Read-Host -AsSecureString
$UserAccount = Get-LocalUser -Name "User02"
$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.

Parameters

-AccountExpires

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.

Parameter properties

Type:DateTime
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

-AccountNeverExpires

Indicates that the account does not expire.

Parameter properties

Type:SwitchParameter
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

-Confirm

Prompts you for confirmation before running the cmdlet.

Parameter properties

Type:SwitchParameter
Default value:False
Supports wildcards:False
DontShow:False
Aliases:cf

Parameter sets

-Description

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

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

-FullName

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

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

-InputObject

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

Parameter properties

Type:Microsoft.PowerShell.Commands.LocalUser
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

-Name

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

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

-Password

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 -AsSecureString, 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.

Parameter properties

Type:SecureString
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

-PasswordNeverExpires

Indicates whether the password expires.

Parameter properties

Type:Boolean
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

-SID

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

Parameter properties

Type:SecurityIdentifier
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

-UserMayChangePassword

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

Parameter properties

Type:Boolean
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

-WhatIf

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

Parameter properties

Type:SwitchParameter
Default value:False
Supports wildcards:False
DontShow:False
Aliases:wi

Parameter sets

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

Inputs

System.Management.Automation.SecurityAccountsManager.LocalUser

You can pipe a local user to this cmdlet.

String

You can pipe a string to this cmdlet.

SecurityIdentifier

You can pipe a SID to this cmdlet.

Outputs

None

This cmdlet returns no output.

Notes

Windows PowerShell includes the following aliases for Set-LocalUser:

  • slu

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
  • Microsoft Entra 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.

Related Links


Feedback

Was this page helpful?