Ваш Компьютер как на Ладони: Собираем Информацию о Системе с Помощью PowerShell

Часто системным администраторам, специалистам поддержки и даже обычным пользователям нужно быстро получить базовую информацию о компьютере: его имя, IP-адрес, версию ОС и время работы. Вместо того чтобы кликать по разным окнам и использовать сторонние утилиты, можно воспользоваться мощью PowerShell и получить всё одной командой.

Сегодня мы разберём простой, но невероятно полезный скрипт, который собирает ключевые данные о вашей системе и выводит их в удобном виде.

Сам скрипт

Этот однострочный скрипт — всё, что вам нужно. Просто скопируйте и вставьте его в консоль PowerShell:

PowerShell

[PSCustomObject]@{
    "Имя ПК"          = $env:COMPUTERNAME
    "IP-адрес"        = (Get-NetIPAddress -AddressFamily IPv4 -AddressState Preferred -ErrorAction SilentlyContinue | Select-Object -First 1).IPAddress
    "Версия Windows"  = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ProductName
    "Дата установки" = (Get-Date "1970-01-01").AddSeconds((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").InstallDate)
    "Аптайм"          = (New-TimeSpan -Start (Get-CimInstance Win32_OperatingSystem).LastBootUpTime)
} | Format-List

Пример вывода будет выглядеть так:

Имя ПК          : DESKTOP-EXAMPLE
IP-адрес        : 192.168.1.10
Версия Windows  : Windows 11 Pro
Дата установки : 15.05.2024 10:30:15
Аптайм          : 2.04:11:23.1234567

Как это работает? Разбор по частям

Давайте посмотрим, из чего состоит эта магия. Скрипт создаёт специальный объект ([PSCustomObject]), в котором каждому названию (например, «Имя ПК») присваивается значение, полученное определённой командой.

  • Имя ПК: $env:COMPUTERNAME Это самый быстрый способ получить имя компьютера. Он обращается к переменным окружения системы — информации, которая всегда под рукой.
  • IP-адрес: (Get-NetIPAddress ...).IPAddress Команда Get-NetIPAddress запрашивает у системы все сетевые адреса. Мы уточняем, что нам нужен только активный (Preferred) адрес стандарта IPv4.
  • Версия Windows: (Get-ItemProperty ...).ProductName Эта команда заглядывает прямо в сердце Windows — системный реестр. Она находит ключ, где хранится точное название операционной системы (например, «Windows 11 Pro»), и извлекает его.
  • Дата установки: (Get-Date ...).AddSeconds(...) Здесь мы тоже обращаемся к реестру, но дата установки хранится там в специальном формате (количество секунд, прошедших с 01.01.1970). Команда преобразует это число в привычный нам формат даты и времени.
  • Аптайм (Uptime): (New-TimeSpan ...) С помощью Get-CimInstance Win32_OperatingSystem мы узнаём точное время последней загрузки компьютера. Затем команда New-TimeSpan вычисляет разницу между этим временем и текущим, получая аптайм — время непрерывной работы системы.

Как использовать и улучшить?

  1. Сохраните как файл: Вы можете сохранить этот код в файл с расширением .ps1 (например, info.ps1), чтобы запускать его в любой момент.
  2. Удалённое выполнение: Этот скрипт можно запускать на других компьютерах в сети! Просто оберните его в команду Invoke-Command:PowerShellInvoke-Command -ComputerName "SERVER-01" -ScriptBlock { # сюда вставьте скрипт }
  3. Экспорт в файл: Замените Format-List в конце на | Out-File C:\system_info.txt или | ConvertTo-Html | Out-File C:\report.html, чтобы создавать отчёты в удобном формате.

Этот небольшой скрипт — отличное доказательство того, что PowerShell является мощным инструментом для быстрой и эффективной автоматизации рутинных задач.

🚀 Хотите стать архитектором будущего, а не просто админом? Эта статья — лишь верхушка айсберга. В нашем Telegram-канале «Admin Future» мы каждый день публикуем системные гайды, готовые скрипты, AI-лайфхаки и чеклисты, которые не найти в Google. Мы не просто постим команды — мы строим библиотеку знаний для тех, кто хочет расти от админа до архитектора. Подписывайтесь и становитесь экспертом: Admin Future

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх