################################################################################## # # Script name: Set-LocalAccount.ps1 # Author: niklas.goude@zipper.se # Homepage: www.powershell.nu # ################################################################################## param([string]$UserName, [string]$Password, [switch]$Add, [switch]$Remove, [switch]$ResetPassword, [switch]$help) function GetHelp() { $HelpText = @" DESCRIPTION: NAME: Set-LocalAccount.ps1 Adds or Removes a Local Account PARAMETERS: -UserName Name of the User to Add or Remove (Required) -Password Sets Users Password (optional) -Add Adds Local User (Optional) -Remove Removes Local User (Optional) -ResetPassword Resets Local User Password (Optional) -help Prints the HelpFile (Optional) SYNTAX: .\Set-LocalAccount.ps1 -UserName nika -Password Password1 -Add Adds Local User nika and sets Password to Password1 .\Set-LocalAccount.ps1 -UserName nika -Remove Removes Local User nika .\Set-LocalAccount.ps1 -UserName nika -Password Password1 -ResetPassword Sets Local User nika's Password to Password1 .\Set-LocalAdmin.ps1 -help Displays the helptext "@ $HelpText } function AddRemove-LocalAccount ([string]$UserName, [string]$Password, [switch]$Add, [switch]$Remove, [switch]$ResetPassword) { [string]$computerName = "$env:computername" if($Add) { [string]$ConnectionString = "WinNT://$computerName" $ADSI = [adsi]$ConnectionString $User = $ADSI.Create("user",$UserName) $User.SetPassword($Password) $User.SetInfo() } if($Remove) { [string]$ConnectionString = "WinNT://$computerName" $ADSI = [adsi]$ConnectionString $ADSI.Delete("user",$UserName) } if($ResetPassword) { [string]$ConnectionString = "WinNT://" + $ComputerName + "/" + $UserName + ",user" $Account = [adsi]$ConnectionString $Account.psbase.invoke("SetPassword", $Password) } } if($help) { GetHelp; Continue } if($UserName -AND $Password -AND $Add -AND !$ResetPassword) { AddRemove-LocalAccount -UserName $UserName -Password $Password -Add } if($UserName -AND $Password -AND $ResetPassword) { AddRemove-LocalAccount -UserName $UserName -Password $Password -ResetPassword } if($UserName -AND $Remove) { AddRemove-LocalAccount -UserName $UserName -Remove }