PowerShell · 26.06.2023

RemoteHost и его железо

Скрипт-таки доработал (я про это). Выбросил лишнее и сменил реализацию. Правда, в ущерб информативности, но это уже можно списать на «придумаю и допишу позже«.

Как и в классическом батнике образца мая 2022 года, скрипт спросит имя хоста для анализа и (если хост отвечает на icmp) выведет информацию о материнской плате, процессоре, оперативной памяти и накопителе. Вывод будет осуществляться в консоль.

[System.Console]::Title = "Общие данные о конфигурации удалённого хоста"

$remotehost = Read-Host "Имя удалённого хоста"

if (Test-Connection -ComputerName $remotehost -Quiet -Count 1)
{
    # Получаем модель процессора #
    $cpu = (Get-WmiObject -ComputerName $remotehost -Class win32_processor).Name
    
    # Получаем модель материнской платы #
    $mb = (Get-WmiObject -ComputerName $remotehost -Class win32_baseboard).Product
    
    # Получаем общий объём оперативной памяти в МБ #
    $memory = [int]((Get-WmiObject -ComputerName $remotehost -Class Win32_ComputerSystem).TotalPhysicalMemory/1mb)

    # Получаем модели и количество плат ОЗУ #
    $ram = -split (Get-WmiObject -ComputerName $remotehost -Class Win32_PhysicalMemory).PartNumber
    $ramcount = [int]($ram | measure).Count
    $rams = $ram -join ", "
    
    # Получаем модели жёстких дисков #
    $hdd = -split (Get-WmiObject -ComputerName $remotehost -Class Win32_diskdrive).Model

    ## Строим вывод в консоль ##
    Clear
    Write-Host
    Write-Host "Удалённый хост: $remotehost" -ForegroundColor Cyan
    Write-Host 
    Write-Host "ЦПУ: $cpu" -ForegroundColor Cyan
    Write-Host "Материнская плата: $mb" -ForegroundColor Cyan
    Write-Host 
    Write-Host "Общий объём оперативной памяти: $memory Мб" -ForegroundColor Cyan
    Write-Host "Количество плат оперативной памяти: $ramcount шт." -ForegroundColor Cyan
    if ($ramcount -eq 1) { Write-Host "Модель платы оперативной памяти: $ram" -ForegroundColor Cyan }
    else { Write-Host "Модели плат оперативной памяти: $rams" -ForegroundColor Cyan }
    Write-Host 
    Write-Host "Жёсткие диски: $hdd" -ForegroundColor Cyan
    Read-Host
}
else { Write-Host "Удалённый хост $remotehost недоступен!" -ForegroundColor Red; Read-Host }

Кстати, где-то здесь был скрипт для получения данных о материнской плате c удалённых хостов.