Loading PowerShell...

PowerShell

现代化、跨平台的自动化和配置工具

什么是 PowerShell?

PowerShell 是一种跨平台(Windows、Linux 和 macOS)的自动化和配置工具, 它由命令行 shell、脚本语言和配置管理框架组成。PowerShell 建立在 .NET 之上,提供强大的工具来管理系统和应用程序。

主要用途

  • ✓ 系统管理和自动化
  • ✓ 云服务管理
  • ✓ DevOps 和 CI/CD
  • ✓ 配置管理

平台支持

  • ✓ Windows 10/11
  • ✓ Windows Server
  • ✓ Linux (Ubuntu, CentOS 等)
  • ✓ macOS

核心特性

🔧

命令行 Shell

交互式命令行环境,支持命令历史、自动补全、多行编辑等功能, 让命令行操作更加高效便捷。

📜

脚本语言

强大的脚本语言,支持变量、函数、控制流、错误处理等编程特性, 可以创建复杂的自动化脚本。

🔌

管道和对象

基于 .NET 对象的管道系统,可以轻松地连接和转换命令输出, 实现强大的数据处理能力。

📦

模块系统

丰富的模块生态系统,包含数千个命令和工具, 可以轻松扩展 PowerShell 的功能。

☁️

云集成

深度集成 Azure、AWS 等云平台,提供统一的命令行界面管理云资源。

🌐

跨平台

一次编写,到处运行。PowerShell Core 支持所有主流操作系统, 实现真正的跨平台自动化。

代码示例

获取系统信息
# 获取操作系统信息
Get-ComputerInfo | Select-Object OsName, OsVersion, OsArchitecture

# 获取 CPU 信息
Get-CimInstance -ClassName Win32_Processor | Select-Object Name, MaxClockSpeed, NumberOfCores

# 获取内存信息
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object TotalPhysicalMemory, Model
文件管理示例
# 创建目录
New-Item -Path "C:\Temp\MyFolder" -ItemType Directory -Force

# 查找大文件
Get-ChildItem -Path "C:\" -Recurse -File | 
    Where-Object { $_.Length -gt 100MB } | 
    Sort-Object Length -Descending | 
    Select-Object Name, Length, FullName

# 批量重命名文件
Get-ChildItem -Path "*.txt" | 
    Rename-Item -NewName { "Backup_" + $_.Name }
网络管理
# 测试网络连接
Test-Connection -ComputerName google.com -Count 4

# 获取网络适配器信息
Get-NetAdapter | Where-Object { $_.Status -eq "Up" } | 
    Select-Object Name, Status, LinkSpeed, MacAddress

# 监控网络流量
Get-NetTCPConnection -State Established | 
    Group-Object RemoteAddress | 
    Sort-Object Count -Descending | 
    Select-Object Name, Count -First 10

版本历史

2023 - PowerShell 7.4

最新版本,增强性能、稳定性和新特性,包括更好的模块支持。

2022 - PowerShell 7.3

引入实验性功能如并行处理、改进的错误处理等。

2020 - PowerShell 7.0

PowerShell Core 7.0 正式发布,完全开源并支持跨平台。

2016 - PowerShell Core 发布

开始转向 .NET Core,实现跨平台支持。

2006 - PowerShell 1.0

首次发布,基于 .NET Framework,仅支持 Windows。

学习资源

官方文档

完整的 PowerShell 文档,包括命令参考、学习指南和最佳实践。

访问文档

学习路径

从基础到高级的完整学习路径,帮助你系统掌握 PowerShell。

开始学习

社区资源

加入 PowerShell 社区,与其他开发者交流经验和技巧。

GitHub