Часто системным администраторам, специалистам поддержки и даже обычным пользователям нужно быстро получить базовую информацию о компьютере: его имя, 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вычисляет разницу между этим временем и текущим, получая аптайм — время непрерывной работы системы.
Как использовать и улучшить?
- Сохраните как файл: Вы можете сохранить этот код в файл с расширением
.ps1(например,info.ps1), чтобы запускать его в любой момент. - Удалённое выполнение: Этот скрипт можно запускать на других компьютерах в сети! Просто оберните его в команду
Invoke-Command:PowerShellInvoke-Command -ComputerName "SERVER-01" -ScriptBlock { # сюда вставьте скрипт } - Экспорт в файл: Замените
Format-Listв конце на| Out-File C:\system_info.txtили| ConvertTo-Html | Out-File C:\report.html, чтобы создавать отчёты в удобном формате.
Этот небольшой скрипт — отличное доказательство того, что PowerShell является мощным инструментом для быстрой и эффективной автоматизации рутинных задач.
🚀 Хотите стать архитектором будущего, а не просто админом? Эта статья — лишь верхушка айсберга. В нашем Telegram-канале «Admin Future» мы каждый день публикуем системные гайды, готовые скрипты, AI-лайфхаки и чеклисты, которые не найти в Google. Мы не просто постим команды — мы строим библиотеку знаний для тех, кто хочет расти от админа до архитектора. Подписывайтесь и становитесь экспертом: Admin Future