public/Set-LocalAdminPassword.ps1

function Set-LocalAdminPassword {
    Param (
        [string[]]
        $ComputerName,
        [securestring]
        $NewPassword,
        [string]
        $UserName,
        [string]
        $SID = "S-1-5-21-*-500",
        [System.Management.Automation.PSCredential]
        $Credential 
    )

    ## Setup Script block for remote hosts
    $scriptblock = {
        if ($using:Username){
            Get-LocalUser $using:Username | Set-LocalUser -Password $using:securePassword
            $info = Get-LocalUser $using:Username
        }
        else {
            Get-LocalUser | Where-Object {$_.sid -like $using:SID} | Set-LocalUser -Password $using:securePassword
            $info = Get-LocalUser | Where-Object {$_.sid -like $using:SID}
        }
        
        $OS = Get-CimInstance -Class Win32_OperatingSystem 
        $timestamp = Get-Date
        $object = [pscustomobject] @{
            ComputerName           = $env:COMPUTERNAME
            Name                   = $info.Name
            Enabled                = $info.Enabled
            PasswordLastSet        = $info.PasswordLastSet
            LastLogon              = $info.LastLogon
            AccountExpires         = $info.AccountExpires
            OS                     = $OS.Caption
            PasswordChangeableDate = $info.PasswordChangeableDate
            PasswordExpires        = $info.PasswordExpires
            Description            = $info.Description
            FullName               = $info.FullName
            UserMayChangePassword  = $info.UserMayChangePassword
            PasswordRequired       = $info.PasswordRequired
            SID                    = $info.SID
            DataTimeStamp          = $timestamp
        }

        return $object
    }# end script block

    #Execute Scriptblock on Computername(s) with set parameters.
    $params = @{
        ScriptBlock = $scriptblock
    }
    if ($ComputerName){
        $params['ComputerName'] = $ComputerName
    }
    if ($Credential){
        $params['Credential'] = $Credential
    }
    Invoke-Command @params

    Write-Host "Local Admin password(s) has been changed"
    
}