Cmdlet 网络与系统管理
<PowerShell 不仅能管理本地文件、进程和服务,它还具备强大的网络功能和系统级操作能力。无论是查看 IP、测试网络连通性,还是获取系统信息、管理用户账户,PowerShell 都提供了丰富而统一的 Cmdlet。
本节将带你掌握网络和系统管理中最常用的命令,助你从"命令行使用者"迈向"系统管理高手"。
一、网络管理相关 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
二、系统信息查询
获取操作系统信息: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
三、用户与账户管理(本地)
获取当前用户信息
[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 "输入密码")
四、系统设置操作
设置系统时区
Set-TimeZone -Id "China Standard Time"
查看支持的时区:
Get-TimeZone -ListAvailable
设置系统主机名(需重启生效)
Rename-Computer -NewName "MyNewPC" -Restart
设置系统时间(需要管理员权限)
Set-Date -Date "2025-07-22 10:30"
五、实战场景示例
示例 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"
六、小结
PowerShell 提供了强大的网络与系统管理能力,远超传统命令行工具:
- 网络操作支持测试、监测、配置 IP 和端口
- 系统信息命令便于生成诊断报告和自动化审计
- 本地账户管理适合小型系统或工作组环境
- 所有命令都是对象导向、组合灵活、可脚本化
点我分享笔记