Цель этого поста — показать вам некоторые полезные команды PowerShell, с которыми я сталкиваюсь при повседневном использовании. Надеюсь, вы найдете что то для себя, сэкономите время и поэкспериментируете!
Имейте ввиду, что PowerShell нужно запускать от имени администратора, чтобы избежать проблем с правами.
Узнать время последней загрузки через PowerShell
(Get-CimInstance Win32_OperatingSystem).LastBootUpTime

В результате выполнения этой команды вы получите значение в виде даты и времени, указывающее, когда компьютер был в последний раз загружен. Например, полезно для проверки времени работы системы (uptime).
Узнать свой IP-адрес через PowerShell
(Invoke-RestMethod ipinfo.io/json).ip

Команда вернёт строку с текущим публичным IP-адресом устройства, например: "192.168.1.1"
(для локальных сетей) или "203.0.113.1"
(для публичных сетей).
Найти контроллеры домена в домене через PowerShell
Resolve-DnsName -Type ALL -Name _ldap._tcp.dc._msdcs.$env:userdnsdomain
Команда возвращает список записей DNS, связанных с LDAP-службой для домена Active Directory, который определён в переменной $env:userdnsdomain
. Это особенно полезно для диагностики сетевой конфигурации, проверки доступности контроллеров домена или работы службы LDAP в домене.
Показать список программ через PowerShell
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table

Команда возвращает список всех установленных программ с их названиями, версиями, издателями и датами установки. Очень полезно для аудита установленных приложений на компьютере или составления списка для дальнейшего анализа.
Установить или обновить PowerShell , если доступно для вашей версии windows.
Invoke-Expression "& { $(Invoke-RestMethod -Uri aka.ms/install-powers…) }" -UseMSI -Preview
Команда загружает скрипт установки PowerShell с официального источника (например, PowerShellGallery) и выполняет его для установки PowerShell с использованием MSI, при этом устанавливается предварительная версия (Preview).
Это удобный способ обновления или установки последней версии PowerShell, особенно если вы хотите попробовать новые функции, которые ещё находятся в разработке.
Проверка доступного места на жёстком диске через PowerShell
(Get-PSDrive $Env:SystemDrive.Trim(':')).Free/1GB

Команда возвращает количество свободного пространства на системном диске (обычно C
:\) в виде числового значения в гигабайтах. Например, если на диске свободно 50 ГБ, то результат будет 50
.
Список подкаталогов в текущем каталоге через PowerShell
Get-ChildItem -Directory

Вы видите список всех папок в каталоге C:\
Windows\system32, включая их имена и соответствующую информацию, такую как атрибуты и даты изменения.
Сканируем порты через PowerShell
0..65535 | Foreach-Object { Test-NetConnection -Port $_ scanme.nmap.org -WA SilentlyContinue | Format-Table -Property ComputerName,RemoteAddress,RemotePort,TcpTestSucceeded }
Команда сканирует все TCP-порты на удалённом хосте scanme.nmap.org
и выводит данные о тех портах, где тест соединения TCP прошёл успешно. Это полезно для диагностики сети или проверки открытых портов на удалённом сервере.
Версия BIOS через PowerShell
(Get-CimInstance Win32_BIOS).SMBIOSBIOSVersion

Вывод команды будет строкой, содержащей версию BIOS. Например, это может быть что-то вроде "BIOS Version A12"
или "1.0.0"
в зависимости от производителя и модели системы.
Получить серийный номер wmic через PowerShell
(Get-CimInstance Win32_BIOS).SerialNumber
Выполнение команды выведет серийный номер компьютера, который можно использовать для идентификации устройства. Например, это может быть полезно в контексте инвентаризации оборудования или обращения в техническую поддержку.
Узнать модель компьютера через PowerShell
(Get-CimInstance Win32_ComputerSystem).Model
Выполнение команды выведет название модели вашего компьютера. Например, на компьютерах Dell это может быть что-то вроде "XPS 13"
или "OptiPlex 7060"
. Модель полезна для идентификации оборудования, особенно в случае получения поддержки или проверки совместимости.
Список подключённых принтеров через PowerShell
Get-CimInstance Win32_Printer | Select-Object Name, PortName, Default
После выполнения команды вы получите табличный вывод с перечислением принтеров, их портов и информации о том, является ли принтер по умолчанию.
Узнать домен через PowerShell
(Get-CimInstance Win32_ComputerSystem).Domain
Команда выводит имя домена, в котором зарегистрирован компьютер. Например, это может быть "corp.example.com"
или "WORKGROUP"
.
Посчитать время до следующего года через PowerShell
(Get-Date -Date "$((Get-Date).Year + 1)/1/1") - (Get-Date)

Эта команда вычисляет количество времени (в днях, часах, минутах, секундах и т. д.) до следующего нового года.
Факты о кошках через PowerShell
Invoke-WebRequest -Uri 'https://catfact.ninja/fact' -UseBasicParsing | Select-Object -ExpandProperty 'Content' | ConvertFrom-Json | Select-Object -ExpandProperty fact

Команда возвращает строку с фактом о кошках, например: «Cats can rotate their ears 180 degrees.« (в переводе: «Кошки могут поворачивать свои уши на 180 градусов«).
Это прекрасный способ узнавать случайные интересные факты, и, конечно, использовать их для развлечений или обучения!
Заключение
Надеюсь, вы нашли некоторые фрагменты в этом посте полезными. Для меня однострочные тексты были забавными, интерактивными способами поиграть с PowerShell и проверить свои знания, ожидания и довести язык до его пределов.
Хотите добавить в этот документ классную однострочную фразу? Напишите её в комментарии и я обязательно добавлю её в статью.