Determine if Hyper-Threading is enabled
Function Check-HyperThreading($ComputerName){
    # Get the Processor information for the computer
    $Proc = Get-WMIObject Win32_Processor -ComputerName $ComputerName
 
    # Determine if hyper-threading is enabled
    $CPUCount = @($Proc).count
    $NumberOfLogicalProcessors = $($Proc | measure-object -Property NumberOfLogicalProcessors -sum).Sum
    $NumberOfCores = $($Proc | measure-object -Property NumberOfCores -sum).Sum
    
    # Output the results as a PS object
    [pscustomobject]@{
        Computer = $ComputerName
        CPUCount = $CPUCount
        NumberOfLogicalProcessors  = $NumberOfLogicalProcessors
        NumberOfCores = $NumberOfCores
        HyperThreading = $($NumberOfLogicalProcessors -gt $NumberOfCores)
 
    }

}
Details
This function will return the process information from a local or remote computer and determine if HyperThreading is enabled. If the number of logical processors is greater than physical processors (cores), then hyperthreading is enabled and the function returns True for HyperThreading.

Example
PS C:\> Function Check-HyperThreading($ComputerName){
>>     # Get the Processor information for the computer
>>     $Proc = Get-WMIObject Win32_Processor -ComputerName $ComputerName
>>     # Determine if hyper-threading is enabled
>>     $CPUCount = @($Proc).count
>>     $NumberOfLogicalProcessors = $($Proc | measure-object -Property NumberOfLogicalProcessors -sum).Sum
>>     $NumberOfCores = $($Proc | measure-object -Property NumberOfCores -sum).Sum
>>     # Output the results as a PS object
>>     [pscustomobject]@{
>>         Computer = $ComputerName
>>         CPUCount = $CPUCount
>>         NumberOfLogicalProcessors  = $NumberOfLogicalProcessors
>>         NumberOfCores = $NumberOfCores
>>         HyperThreading = $($NumberOfLogicalProcessors -gt $NumberOfCores)
>>     }
>> }
>> 
>> Check-HyperThreading -ComputerName $env:COMPUTERNAME



Computer                  : MAT-F0CXE4G
CPUCount                  : 1
NumberOfLogicalProcessors : 4
NumberOfCores             : 2
HyperThreading            : True


  
Get Memory Utilization Percentage
Get-WmiObject Win32_OperatingSystem -ComputerName $computer | Select @{Label = "Computer"; Expression = {$computer}},
    @{Label = "MemoryUsage"; Expression = {100 - [math]::Round(($_.FreePhysicalMemory/$_.TotalVisibleMemorySize)*100,0)}}
Details
Returns the total percentage of memory ultization on your local or remote system.

Example
PS C:\> $computer = 'localhost'
>> Get-WmiObject Win32_OperatingSystem -ComputerName $computer | Select @{Label = "Computer"; Expression = {$computer}},
>>     @{Label = "MemoryUsage"; Expression = {100 - [math]::Round(($_.FreePhysicalMemory/$_.TotalVisibleMemorySize)*100,0)}}


Computer  MemoryUsage
--------  -----------
localhost          69

  |  |  
Get Processor Utilization Percentage
Get-WmiObject win32_processor -ComputerName $computer | Measure-Object -property LoadPercentage -Average | 
    Select @{Label = "Computer"; Expression = {$computer}},@{Label = "CpuUsage"; Expression = {$_.Average}}
Details
Returns the total percentage of process ultization on your local or remote system.

Example
PS C:\> $computer = 'localhost'
>> Get-WmiObject win32_processor -ComputerName $computer | Measure-Object -property LoadPercentage -Average |
>>     Select @{Label = "Computer"; Expression = {$computer}},@{Label = "CpuUsage"; Expression = {$_.Average}}


Computer  CpuUsage
--------  --------
localhost       15

  |  |