Windows PowerShell10个常用命令的30个示例
Windows PowerShell中10个常用命令的每个命令3个示例,涵盖不同使用场景:
1.Get-Command(查找命令)
- 查找所有可用命令:
Get-Command
(列出所有已安装的命令模块和函数) - 查找与网络相关的命令:
Get-Command *network*
(显示名称包含"network"的命令,如Get-NetIPAddress) - 查看Get-Service的详细信息:
Get-Command Get-Service | Format-List
(显示命令的模块、参数等元数据)
2.Get-Help(获取帮助)
- 查看Get-Process的基本帮助:
Get-Help Get-Process
(显示命令的语法和简要说明) - 获取Copy-Item的详细示例:
Get-Help Copy-Item -Examples
(展示实际使用案例) - 更新帮助文档后重新加载:
Update-Help
Get-Help Stop-Service -Full
(先更新帮助,再查看完整文档)
3.Get-Process(管理进程)
- 列出所有进程并按CPU排序:
Get-Process | Sort-Object CPU -Descending
(显示CPU占用最高的进程) - 查找特定名称的进程:
Get-Process -Name "chrome"
(获取所有Chrome浏览器进程) - 结束无响应的进程:
Get-Process | Where-Object { $_.Responding -eq $false } | Stop-Process -Force
(强制终止所有未响应的进程)
4.Get-Service(管理服务)
- 列出所有运行中的服务:
Get-Service | Where-Object { $_.Status -eq "Running" } - 检查特定服务的状态:
Get-Service -Name "WinRM"
(查看Windows远程管理服务状态) - 重启打印服务:
Restart-Service -Name "Spooler" -Force
(强制重启打印池服务)
5.Set-ExecutionPolicy(脚本权限)
- 允许本地脚本运行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
(仅当前用户可运行本地未签名脚本) - 恢复默认限制:
Set-ExecutionPolicy Restricted -Force
(禁止所有脚本执行) - 临时绕过策略执行脚本:
powershell.exe -ExecutionPolicy Bypass -File "C:\script.ps1"
(不修改策略直接运行脚本)
6.Start-Service/Stop-Service
- 启动蓝牙服务:
Start-Service -Name "bthserv" - 停止并禁用Windows更新服务:
Stop-Service -Name "wuauserv"
Set-Service -Name "wuauserv" -StartupType Disabled - 重启IIS服务:
Restart-Service -Name "W3SVC" -Force
7.Copy-Item(文件操作)
- 复制文件到备份目录:
Copy-Item "C:\data\report.docx" -Destination "D:\backup\" - 递归复制整个文件夹:
Copy-Item "C:\logs\" -Destination "E:\archive\" -Recurse - 复制时重命名文件:
Copy-Item "old.txt" -Destination "new.txt"
8.Remove-Item(删除文件)
- 删除单个文件:
Remove-Item "C:\temp\junk.log" -Force
(强制删除只读文件) - 清空文件夹内容(保留文件夹):
Remove-Item "C:\cache\*" -Recurse -Force - 删除30天前的日志文件:
Get-ChildItem "C:\logs\*.log" | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-Item
9.Invoke-WebRequest(网络请求)
- 下载文件:
Invoke-WebRequest " https://example.com/file.zip" -OutFile "C:\downloads\file.zip" - 获取网页内容并提取链接:
(Invoke-WebRequest " https://example.com").Links | Select-Object href - 提交POST请求(API调用):
Invoke-WebRequest -Uri " https://api.example.com/login" -Method POST -Body @{user="admin";pass="123"}
10.ForEach-Object(循环处理)
- 批量重命名文件:
Get-ChildItem "*.txt" | ForEach-Object { Rename-Item $_ -NewName ($_.Name -replace ".txt",".bak") } - 计算文件夹大小:
Get-ChildItem "C:\data\" | ForEach-Object { $sum += $_.Length }; $sum/1MB - 并行处理任务:
1..10 | ForEach-Object -Parallel { Start-Process "notepad" } -ThrottleLimit 3
(同时打开3个记事本实例)
实用技巧:
- 组合命令:
Get-Service | Where-Object { $_.Status -eq "Stopped" } | Start-Service
(自动启动所有已停止的服务) - 输出到文件:
Get-Process > C:\process_list.txt - 测量命令执行时间:
Measure-Command { Get-ChildItem -Recurse }