HoRain云--PowerShell入门:高效自动化利器
HoRain 云小助手个人主页⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。目录⛳️ 推荐核心思想一切皆对象核心概念基本使用示例总结PowerShell 是一种跨平台的任务自动化、配置管理框架和命令行 Shell由 Microsoft 开发。它不仅仅是 Windows 的传统命令提示符cmd.exe的升级而是一个功能强大的脚本语言和运行时环境。核心思想一切皆对象与传统的基于文本的 Shell如 Bash、cmd不同PowerShell 命令Cmdlet处理并传递的是强类型的 .NET 对象而不是纯文本。这使得数据的筛选、处理和操作变得异常强大和直观。核心概念Cmdlet (发音为 “command-let”)这是 PowerShell 的原生命令是轻量级的单一功能命令。其命名采用“动词-名词”的规范格式清晰易懂。例如Get-Process 获取进程。Set-Location 设置当前位置类似于cd。Copy-Item 复制项目文件/目录等。对象与管道 (|)管道 用于将一个命令的输出作为输入传递给下一个命令。传统 Shell 管道传递的是文本而PowerShell 管道传递的是对象。你可以直接访问和操作对象的属性与方法。例如Get-Process | Where-Object {$_.CPU -gt 100} | Sort-Object CPU -DescendingGet-Process返回进程对象的集合。通过管道|传递给Where-Object筛选出CPU 属性大于 100 的进程对象。再传递给Sort-Object按CPU 属性 降序排列。统一性PowerShell 提供了一个统一的接口来管理各种系统资源无论是文件系统、注册表、证书存储、WMI还是 Exchange、Active Directory、Azure 等。它们都被抽象为“驱动器”或可以通过一致的 Cmdlet 进行访问。脚本与函数PowerShell 脚本是带有.ps1扩展名的文本文件包含一系列 PowerShell 命令。你可以编写可重用的函数并将其模块化。别名为了方便用户从其他 Shell 迁移PowerShell 为常用 Cmdlet 提供了简短的别名。例如ls是Get-ChildItem的别名cd是Set-Location的别名。PowerShell Core 与 Windows PowerShellWindows PowerShell 构建在 .NET Framework 之上主要随 Windows 提供现已不再增加新功能。PowerShell Core 开源、跨平台的后继版本构建在 .NET Core 之上支持 Windows、macOS 和 Linux。这是当前活跃开发和推荐使用的版本通常简称为 PowerShell。基本使用示例获取命令与帮助Get-Command # 获取所有可用命令 Get-Help Get-Process # 获取特定 Cmdlet 的详细帮助 Get-Process -? # 获取快速帮助探索对象$process Get-Process -Name code $process | Get-Member # 查看这个进程对象有哪些属性和方法 $process.Name # 访问其 Name 属性 $process.Kill() # 调用其 Kill 方法一个简单的管道操作# 查找当前目录下所有大于 1MB 的 .log 文件并按大小排序 Get-ChildItem -Filter *.log | Where-Object {$_.Length -gt 1MB} | Sort-Object Length执行脚本默认出于安全考虑脚本执行是受限的。你需要在管理员权限的 PowerShell 中修改执行策略仅一次Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser然后运行脚本.\MyScript.ps1总结PowerShell 的核心魅力在于它将 Shell 的命令行效率与面向对象编程的强大功能结合了起来。通过处理对象你可以用更少的代码、更直观的逻辑来完成复杂的系统操作和数据处理任务使其成为 IT 运维、DevOps 和自动化领域的强大工具。❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧