POWERSHELL
2026-10-01 15:59:21
发布于:陕西
<#
PowerShell 200+命令大全合集(带行内注释,分类)
⚠️ 系统修复、远程管理、修改系统服务/注册表,务必【右键以管理员身份运行PowerShell】
注释 # 后面内容不会执行
#>
==============================================
【1.系统修复专区(之前保留)】
==============================================
DISM:扫描系统镜像损坏,只检测不修复
DISM /Online /Cleanup-Image /ScanHealth
DISM:快速检查系统镜像是否存在损坏记录
DISM /Online /Cleanup-Image /CheckHealth
DISM:联网拉取原版系统文件,修复系统镜像(系统报错优先跑这条)
DISM /Online /Cleanup-Image /RestoreHealth
DISM:清理系统组件存储,减少WinSxS体积
DISM /Online /Cleanup-Image /StartComponentCleanup
SFC:扫描并自动修复受保护的系统文件,DISM执行完成后再执行
sfc /scannow
SFC:仅扫描系统文件,不自动修复
sfc /verifyonly
chkdsk:检查C盘文件错误并修复,输入Y重启后自动执行
chkdsk C: /f
chkdsk:检查C盘,修复文件错误+扫描修复坏扇区,耗时较长
chkdsk C: /f /r
chkdsk:离线扫描,不锁定磁盘(Win10/11)
chkdsk C: /scan
重置Windows更新组件,解决更新失败
net stop wuauserv # 停止Windows更新服务
net stop cryptSvc # 停止加密服务
net stop bits # 停止后台传输服务
net stop msiserver # 停止Windows安装服务
Ren C:\Windows\SoftwareDistribution SoftwareDistribution.old # 重命名更新缓存文件夹
Ren C:\Windows\System32\catroot2 catroot2.old # 重命名加密数据库文件夹
net start wuauserv # 重启Windows更新服务
net start cryptSvc # 重启加密服务
net start bits # 重启后台传输服务
net start msiserver # 重启Windows安装服务
==============================================
【2.远程连接电脑 PowerShell远程管理】
==============================================
【被控电脑,管理员执行】开启PowerShell远程WinRM服务,强制跳过确认提示
Enable-PSRemoting -Force
【本地电脑】添加远程IP到信任主机列表,把引号内IP换成远程电脑IP
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.1.100"
测试远程电脑WinRM服务能否连通
Test-WSMan -ComputerName 192.168.1.100
【本地电脑】交互式登录远程电脑,弹出账号密码输入框,进入远程终端
Enter-PSSession -ComputerName 192.168.1.100 -Credential (Get-Credential)
退出远程PowerShell会话,切回本机终端
Exit-PSSession
创建远程会话对象保存到变量,复用连接
$session = New-PSSession -ComputerName 192.168.1.100 -Credential (Get-Credential)
在远程会话中执行命令,示例:查看远程电脑进程列表
Invoke-Command -Session $session { Get-Process }
在远程电脑运行本地的ps1脚本文件
Invoke-Command -ComputerName 192.168.1.100 -FilePath C:\test.ps1 -Credential (Get-Credential)
关闭远程会话
Remove-PSSession $session
PowerShell唤起远程桌面RDP工具
mstsc
直接打开远程桌面并预填远程电脑IP
mstsc /v:192.168.1.100
远程桌面全屏模式
mstsc /v:192.168.1.100 /f
==============================================
【3.文件与文件夹操作】
==============================================
Get-ChildItem # 列出当前目录所有文件文件夹(等价dir、ls)
Get-ChildItem -Recurse # 递归列出当前目录+所有子目录文件
Get-ChildItem -File # 只列出文件,不显示文件夹
Get-ChildItem -Directory # 只列出文件夹
Get-ChildItem -Hidden # 只查看隐藏文件
Get-Item C:\test.txt # 获取单个文件/文件夹对象信息
New-Item -Path C:\test.txt -ItemType File # 创建空文件
New-Item -Path C:\testdir -ItemType Directory # 创建文件夹
Copy-Item C:\test.txt D:\bak\ # 复制文件
Copy-Item C:\testdir D:\bak\ -Recurse # 复制整个文件夹含子目录
Move-Item C:\test.txt D:\bak\ # 移动/重命名文件
Remove-Item C:\test.txt # 删除文件
Remove-Item C:\testdir -Recurse -Force # 强制删除文件夹+子文件,无需确认
Get-Content C:\test.txt # 读取文本文件内容
Set-Content C:\test.txt "hello" # 覆盖写入文本
Add-Content C:\test.txt "new line" # 在文件末尾追加文字
Select-String -Path C:\test.txt -Pattern "error" # 在文件中搜索关键词
Compress-Archive -Path C:\testdir -DestinationPath D:\test.zip # 压缩文件夹为zip
Expand-Archive -Path D:\test.zip -DestinationPath C:\unzip # 解压zip
New-TemporaryFile # 创建系统临时文件
Get-Clipboard # 获取剪贴板内容
Set-Clipboard -Value "test" # 设置剪贴板文本
Test-Path C:\test.txt # 判断文件/文件夹是否存在,返回True/False
Rename-Item C:\old.txt C:\new.txt # 重命名文件
==============================================
【4.进程管理】
==============================================
Get-Process # 查看全部运行进程
Get-Process -Name chrome # 查看指定名称进程
Get-Process -Id 1234 # 根据PID查看进程详情
Get-Process | Sort-Object CPU -Descending # 按CPU占用降序排序进程
Get-Process | Sort-Object WorkingSet -Descending # 按内存占用降序
Stop-Process -Name notepad # 关闭进程(温和)
Stop-Process -Name notepad -Force # 强制杀死进程
Stop-Process -Id 1234 -Force # 根据PID强制结束进程
Start-Process notepad # 启动程序(记事本)
Start-Process "C:\test.exe" -ArgumentList "-a" # 启动程序并带参数
Wait-Process -Id 1234 # 等待指定进程结束后继续执行
Debug-Process -Id 1234 # 附加调试进程
Get-Process | Select-Object Name,Id,CPU,WorkingSet # 只显示进程名称PID CPU内存
==============================================
【5.系统服务管理】
==============================================
Get-Service # 查看全部系统服务
Get-Service | Where-Object {$_.Status -eq "Running"} # 只查看正在运行的服务
Get-Service -Name wuauserv # 查看单个服务状态
Start-Service -Name wuauserv # 启动服务
Stop-Service -Name wuauserv # 停止服务
Restart-Service -Name wuauserv # 重启服务
Set-Service -Name wuauserv -StartupType Automatic # 设置开机自动启动
Set-Service -Name wuauserv -StartupType Manual # 设置手动启动
Set-Service -Name wuauserv -StartupType Disabled # 设置禁用
Get-Service | Select-Object Name,Status,StartupType # 列出服务名、状态、启动类型
==============================================
【6.网络相关命令(IP、端口、测试连通性)】
==============================================
Get-NetIPAddress # 查看本机所有网卡IP地址
Get-NetIPConfiguration # 查看网卡详细配置(网关、DNS)
Test-Connection -ComputerName baidu.com -Count 4 # ping,发送4个包
Test-NetConnection baidu.com -Port 443 # 测试目标主机端口是否开放(类似telnet)
Get-NetTCPConnection # 查看本机所有TCP连接
Get-NetTCPConnection -State Established # 只查看已建立的TCP连接
Get-NetTCPConnection -LocalPort 8080 # 查询占用本地8080端口的连接
Get-NetTCPConnection -LocalPort 8080 | Select-Object OwningProcess # 获取占用端口PID
Get-NetRoute # 查看路由表
Get-DnsClientServerAddress # 查看本机DNS服务器
Set-DnsClientServerAddress -InterfaceIndex 3 -ServerAddresses ("223.5.5.5","114.114.114.114") # 设置DNS
New-PSDrive -Name Z -PSProvider FileSystem -Root "\192.168.1.100\share" -Persist # 映射网络共享盘Z盘
Remove-PSDrive Z # 删除映射网络盘
Invoke-WebRequest -Uri "https://www.baidu.com" # 下载网页内容
Invoke-RestMethod -Uri "https://jsonplaceholder.typicode.com/todos/1" # 请求JSON接口
==============================================
【7.本地用户和组管理】
==============================================
Get-LocalUser # 列出本机所有本地用户
Get-LocalUser -Name Administrator # 查看管理员账户信息
New-LocalUser -Name testuser -Password (ConvertTo-SecureString "123456" -AsPlainText -Force) # 创建本地用户
Set-LocalUser -Name testuser -Password (ConvertTo-SecureString "654321" -AsPlainText -Force) # 修改用户密码
Enable-LocalUser -Name testuser # 启用账户
Disable-LocalUser -Name testuser # 禁用账户
Remove-LocalUser -Name testuser # 删除本地用户
Get-LocalGroup # 列出本机所有本地组
Get-LocalGroupMember Administrators # 查看管理员组里面的成员
Add-LocalGroupMember -Group Administrators -Member testuser # 将用户加入管理员组
Remove-LocalGroupMember -Group Administrators -Member testuser # 从管理员组移除用户
==============================================
【8.系统信息查询(硬件、OS、补丁、启动时间)】
==============================================
Get-ComputerInfo # 获取完整系统信息
Get-ComputerInfo | Select-Object OsName,WindowsVersion,TotalPhysicalMemory # 筛选系统版本内存
Get-HotFix # 查看已安装Windows更新补丁
(Get-CimInstance Win32_OperatingSystem).LastBootUpTime # 获取系统上次开机时间
Get-CimInstance Win32_OperatingSystem | Select-Object Caption,Version,InstallDate # 获取系统版本安装日期
Get-CimInstance Win32_Processor # 查看CPU信息
Get-CimInstance Win32_PhysicalMemory # 查看内存信息
Get-CimInstance Win32_DiskDrive # 查看硬盘硬件信息
Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3" # 查看本地磁盘C/D盘容量剩余空间
Get-CimInstance Win32_BIOS # BIOS信息
hostname # 获取本机计算机名
env:USERNAME # 获取当前登录用户名
env:COMPUTERNAME # 获取计算机名
Get-TimeZone # 获取当前系统时区
Set-TimeZone -Id "China Standard Time" # 设置中国标准时区
Get-Date # 获取当前系统时间
Set-Date -Date "2026-10-01 10:00:00" # 修改系统时间
Restart-Computer # 重启电脑
Restart-Computer -Force # 强制立刻重启
Stop-Computer # 关机
Stop-Computer -Force # 强制关机
Start-Sleep -Seconds 10 # 等待10秒
==============================================
【9.事件日志管理,查看系统报错日志】
==============================================
Get-WinEvent -ListLog * # 列出所有可用日志
Get-WinEvent -LogName System # 读取系统日志
Get-WinEvent -LogName Application # 读取应用程序日志
Get-WinEvent -LogName System -MaxEvents 20 # 只读取最新20条系统日志
Get-WinEvent -LogName System | Where-Object {$_.LevelDisplayName -eq "Error"} # 只筛选错误日志
Clear-WinEvent -LogName Application # 清空应用程序日志(管理员)
==============================================
【10.任务计划程序,定时任务】
==============================================
Get-ScheduledTask # 查看所有计划任务
Get-ScheduledTask -TaskName "AutoBackup" # 查看指定任务信息
New-ScheduledTaskAction -Execute "notepad.exe" # 创建任务动作,启动记事本
New-ScheduledTaskTrigger -Daily -At 02:00 # 设置触发器,每天凌晨2点执行
Register-ScheduledTask -TaskName "AutoBackup" -Action $action -Trigger trigger # 注册新建定时任务
Start-ScheduledTask -TaskName "AutoBackup" # 手动运行任务
Stop-ScheduledTask -TaskName "AutoBackup" # 停止正在运行的任务
Disable-ScheduledTask -TaskName "AutoBackup" # 禁用定时任务
Enable-ScheduledTask -TaskName "AutoBackup" # 启用定时任务
Unregister-ScheduledTask -TaskName "AutoBackup" -Confirm:false # 删除定时任务,不提示确认
Export-ScheduledTask -TaskName "AutoBackup" | Out-File task.xml # 导出任务为xml备份
Register-ScheduledTask -Xml (Get-Content task.xml | Out-String) -TaskName "AutoBackup" # 从xml导入任务
==============================================
【11.注册表操作】
==============================================
Get-Item HKLM:\SOFTWARE # 读取注册表项
Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run # 查看开机自启注册表项
New-Item HKCU:\Software\MyTest # 创建注册表项
New-ItemProperty -Path HKCU:\Software\MyTest -Name "testkey" -Value "123" -PropertyType String # 添加注册表键值
Set-ItemProperty -Path HKCU:\Software\MyTest -Name "testkey" -Value "456" # 修改注册表值
Remove-ItemProperty -Path HKCU:\Software\MyTest -Name "testkey" # 删除注册表键值
Remove-Item HKCU:\Software\MyTest -Recurse # 删除注册表项及其子项
Test-Path HKCU:\Software\MyTest # 判断注册表路径是否存在
==============================================
【12.管道、筛选、格式化、导出导入工具】
==============================================
Select-Object Name,Id # 只选取对象指定字段
Where-Object {$_.Status -eq "Running"} # 筛选对象,等价where
Sort-Object Name # 根据字段排序
Sort-Object CPU -Descending # 降序排序
Group-Object Name # 分组统计
Measure-Object # 统计数量、求和、平均值
Format-Table # 表格形式输出
Format-List # 列表形式详细输出
Format-Wide # 宽视图输出
Export-Csv -Path C:\result.csv -Encoding UTF8 # 将结果导出CSV表格
Import-Csv -Path C:\result.csv -Encoding UTF8 # 读取CSV文件
Export-Clixml -Path C:\result.xml # 导出对象为XML
Import-Clixml -Path C:\result.xml # 从XML导入对象
Out-File C:\output.txt -Encoding UTF8 # 将输出写入文本文件
Out-Null # 丢弃输出,不显示任何内容
ConvertTo-Html # 把对象转为HTML网页
ConvertTo-Json # 对象转为JSON字符串
Get-Member # 查看对象可用属性和方法
Get-Command # 列出PowerShell全部可用命令
Get-Command -Name Get-Process # 查询命令详情
Get-Help Get-Process # 查看命令官方帮助文档
Get-Help Get-Process -Full # 查看完整帮助文档
Update-Help # 更新PowerShell本地帮助文档(管理员)
New-Alias ll Get-ChildItem # 创建命令别名 ll代替Get-ChildItem
Remove-Alias ll # 删除别名
Read-Host "请输入内容" # 控制台读取用户输入
Write-Host "输出文字" # 在控制台打印文字
Write-Output "输出对象" # 输出对象(区别Write-Host)
Measure-Command {Get-Process} # 测量脚本/命令执行耗时
New-Guid # 生成唯一GUID编号
Get-Variable # 查看当前会话所有变量
New-Variable -Name a -Value 10 # 创建变量
Remove-Variable a # 删除变量
Clear-Host # 清屏(等价cls)
==============================================
【13.压缩包、磁盘驱动器、卷管理】
==============================================
Get-PSDrive # 查看PowerShell驱动器(含磁盘、注册表)
Get-Volume # 查看磁盘卷信息
Get-Partition # 查看磁盘分区
Get-Disk # 查看物理磁盘信息
Optimize-Volume -DriveLetter C # 优化C盘(SSD磁盘碎片整理)
Defrag-Volume -DriveLetter C # 机械盘碎片整理
==============================================
【14.安全与权限】
==============================================
Get-Acl C:\test.txt # 获取文件/文件夹访问权限
Set-Acl C:\test.txt $aclobj # 设置文件权限
Get-Credential # 弹出窗口获取账号密码凭据
ConvertTo-SecureString "mypassword" -AsPlainText -Force # 明文转安全字符串
ConvertFrom-SecureString $secstr # 安全字符串转加密文本
==============================================
【15.后台作业异步执行】
==============================================
Start-Job -ScriptBlock {Get-Process} # 后台启动任务
Get-Job # 查看所有后台作业
Receive-Job -Id 1 # 获取后台作业返回结果
Wait-Job -Id 1 # 等待后台任务完成
Remove-Job -Id 1 # 删除后台作业
==============================================
【16.CIM/WMI读取硬件信息(远程也可用)】
==============================================
Get-CimInstance Win32_Product # 查看本机安装的软件列表
Get-CimInstance Win32_DesktopMonitor # 显示器信息
Get-CimInstance Win32_NetworkAdapter # 网卡硬件信息
Get-CimInstance Win32_SoundDevice # 声卡信息
Get-CimInstance Win32_StartupCommand # 查看所有开机启动项
==============================================
【17.其他实用小命令】
==============================================
winver # 弹出Windows版本窗口
taskmgr # 打开任务管理器
control # 打开控制面板
notepad # 记事本
calc # 计算器
explorer # 打开资源管理器
Get-ExecutionPolicy # 查看PowerShell脚本执行权限策略
Set-ExecutionPolicy RemoteSigned # 修改脚本执行策略(管理员)
Get-Module # 查看当前已加载模块
Get-Module -ListAvailable # 查看本机全部可用模块
Import-Module ActiveDirectory # 导入模块例子
Remove-Module ActiveDirectory # 卸载模块
这里空空如也





















有帮助,赞一个