Cmdlet Сетевое и системное администрирование

<

PowerShell может не только управлять локальными файлами, процессами и службами, но также обладает мощными сетевыми функциями и возможностями работы на системном уровне. Будь то просмотр IP-адресов, проверка сетевого подключения или получение системной информации и управление учетными записями пользователей, PowerShell предоставляет богатые и унифицированные Cmdlet'ы.

Этот раздел поможет вам освоить наиболее часто используемые команды в сетевом и системном администрировании, проведя вас от «пользователя командной строки» до «эксперта по системному администрированию».


1. Cmdlet'ы управления сетью

Проверка сетевого подключения:Test-Connection

Похоже наpingкоманда, но вывод — это объект, поддерживающий больше операций.

Test-Connection -ComputerName www.baidu.com -Count 4

Быстрый вариант (PowerShell 7+):

Test-NetConnection www.baidu.com

Получить конфигурацию IP локального компьютера:Get-NetIPAddress

Get-NetIPAddress

Просмотреть только IPv4-адреса:

Get-NetIPAddress -AddressFamily IPv4

Можно также использовать старую команду для совместимости:

ipconfig

Или более универсальная команда WMI:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.IPEnabled }

Получить текущий статус сетевого подключения:Get-NetTCPConnection

Вывести список всех TCP-соединений и состояний портов (аналогичноnetstat):

Get-NetTCPConnection

Просмотреть состояние подключения для конкретного порта:

Get-NetTCPConnection -LocalPort 80

Управление именем хоста и кэшем DNS

Получить имя локального компьютера:

$env:COMPUTERNAME

Очистить кэш DNS:

Clear-DnsClientCache

2. Запрос информации о системе


Получить информацию об операционной системе:Get-ComputerInfo

Get-ComputerInfo

Отфильтровать ключевые поля (например, версия системы, CPU):

Get-ComputerInfo | Select-Object OSName, WindowsVersion, CsProcessors

Получить время загрузки системы

(Get-CimInstance -Class Win32_OperatingSystem).LastBootUpTime

Получить информацию о дисках:Get-Volume

Get-Volume

Вы также можете использовать:

Get-PSDrive -PSProvider FileSystem

Или:

Get-CimInstance Win32_LogicalDisk | Select-Object DeviceID, VolumeName, Size, FreeSpace

Получить информацию о BIOS и оборудовании

Get-CimInstance -ClassName Win32_BIOS
Get-CimInstance -ClassName Win32_ComputerSystem

3. Управление пользователями и учётными записями (локальное)

Получить информацию о текущем пользователе

[System.Security.Principal.WindowsIdentity]::GetCurrent().Name

Или:

$env:USERNAME

Просмотреть список локальных пользователей (локальные учётные записи Windows)

Get-LocalUser

Отключить пользователя:

Disable-LocalUser -Name "TestUser"

Включить пользователя:

Enable-LocalUser -Name "TestUser"

Примечание: необходимо запускать от имени администратора.

Добавить нового пользователя (локального)

New-LocalUser -Name "NewUser" -Password (Read-Host -AsSecureString "输入密码")

4. Операции с системными настройками

Установить часовой пояс системы

Set-TimeZone -Id "China Standard Time"

Просмотреть поддерживаемые часовые пояса:

Get-TimeZone -ListAvailable

Установить имя хоста системы (требуется перезагрузка для вступления в силу)

Rename-Computer -NewName "MyNewPC" -Restart

Установить системное время (требуются права администратора)

Set-Date -Date "2025-07-22 10:30"

5. Примеры практических сценариев


Пример 1: Проверка подключения с локального компьютера к нескольким целевым хостам

"192.168.1.1", "8.8.8.8", "www.baidu.com" | ForEach-Object {
    Test-Connection -ComputerName $_ -Count 2
}

Пример 2: Список текущих открытых TCP-портов (состояние: Listening)

Get-NetTCPConnection | Where-Object { $_.State -eq "Listen" }

Пример 3: Создание отчёта о системе

$report = Get-ComputerInfo | Select-Object OSName, OSArchitecture, CsName, CsProcessors, WindowsVersion
$report | Out-File -FilePath "C:\SystemReport.txt"

6. Итоги

PowerShell предоставляет мощные возможности сетевого и системного администрирования, значительно превосходя традиционные инструменты командной строки:

  • Сетевые операции поддерживают тестирование, мониторинг и настройку IP-адресов и портов
  • Команды для получения системной информации упрощают создание диагностических отчётов и автоматизированных аудитов
  • Управление локальными учетными записями подходит для небольших систем или сред рабочих групп
  • Все команды являются объектно-ориентированными, гибко компонуются и могут использоваться в скриптах
Другие расширения