The below PowerShell script will demonstrate how to rename local guest account.

#!powershell

# Setup Key Values
###################################
$computername = “$env:computername”

# Rename Local Guest Account  
###################################
$ErrorActionPreference = “Stop”

# Create computer object
$computer = [ADSI](“WinNT://$computerName,computer”)

# Get local users list
$userList = $computer.psbase.Children | Where-Object { $_.psbase.schemaclassname -eq ‘user’ }

foreach ($user in $userList)
  {
   # Create a user object in order to get its SID
   $userObject = New-Object System.Security.Principal.NTAccount($user.Name)

   write-host ” ”
   write-Host “UserObject $userObject” -ForegroundColor Green
   write-host ” “

   $userSID = $userObject.Translate([System.Security.Principal.SecurityIdentifier])

   # Look for local “Administrator” SID
   if(($userSID.Value.substring(0,6) -eq “S-1-5-“) -and ($userSID.Value.substring($userSID.Value.Length – 4, 4) -eq “-501”))
      {
      # Rename local Administrator account to Knowledgeascentadmin
      $Error.Clear()
      try
          {
            Write-Host “Rename Local Administrator account to Knowledgeascentadmin” -ForegroundColor Green
            $localAdmin=[adsi]”WinNT://./$userObject,user”
            $localAdmin.psbase.rename(‘Knowledgeascentguest’)
          }
      catch [System.UnauthorizedAccessException]         {
           Write-Host “Access Denied” -ForegroundColor Red
         }
     }
 }