微软强大的 Windows 管理框架在这些资源的帮助下变得更加完善。大多数都是免费的,而这三个收费工具物有所值。
啊,PowerShell。一个简单的蓝色窗口和一些文本将 Windows 管理的世界从点击式 GUI 转变为自动化一切的脚本,同时还提供日志轮换和身份生命周期管理,并控制哪个服务器接收哪些更新。
最新版本的 Windows Server 以及 Microsoft 365、Azure、Intune、Viva 和所有其他云服务中的所有内容主要通过 PowerShell 访问,其次(有时甚至根本不通过)通过服务器的 GUI 或 Web 界面访问。这意味着 PowerShell 知识已成为必需品。但有时很难知道您是否在正确行事。幸运的是,有一些资源可以帮助您加快培训和专业职责的进度。
在本幻灯片中,我将重点介绍让您沉浸在 PowerShell 世界中的七种资源。无论您是编写脚本、在面向 DevOps 的环境中工作,还是使用 PowerShell 管理来自 Microsoft 以外供应商的软件,这组资源都适合每个人。最重要的是,它们大多是免费的(就像啤酒一样),除了两款出色的付费产品 - 一款是有限永久免费版,另一款是 45 天免费试用版。
你还在等什么?让我们开始吧。
这个故事最初于 2015 年 3 月发布,并于 2023 年 3 月更新。
1. Ironman PowerShell Universal
PowerShell 通用是一款非常有用的管理和开发工具,可帮助您构建基于 Web 的 PowerShell 脚本并从一个位置运行它们。将 PowerShell Universal 视为一个白板,用于构建包含 API(新创建的 API 或您自己构建的 API)的脚本、调用其他脚本(包括内置的 PowerShell cmdlet 和许多服务器应用程序附带的脚本)以及将能力委托给其他管理员 - 这个想法是您拥有一个针对您的特定环境定制的管理功能的中央存储库。
PowerShell Universal 附带许多可用模板,可帮助您开始执行各种任务,包括管理 Active Directory 用户和组、为更复杂的脚本构建基于终端的用户界面以处理不同的输入和情况、将 C# 代码转换为 PowerShell 代码和从 PowerShell 转换代码等。如果您需要在 PowerShell 中执行此操作,此工具可能会使其看起来更好、运行更方便,并让您的员工更容易反复使用。
有一个免费版本,不包含企业功能,每台服务器 500 美元(服务器定义为托管脚本和服务器接口的服务器),多台服务器可享受折扣。适用于几乎所有平台,包括 Windows、Linux、Mac 和 Docker。
2. ScriptRunner ActionPacks 脚本集合
有时,尤其是当学习 PowerShell 不是您的全职工作时,通过其他脚本的示例进行学习是一种快速完成任务的方法。您可以了解其他脚本编写者如何制作工具,并根据更有针对性的研究对其进行调整和自定义以满足您的需求 — “好的,我知道她是如何获取结果并将其放入数组中,然后将这些结果逐一提供给另一个 cmdlet 的,因此我可以使用相同的方法处理这组数据” — 并大大缩短您的脚本完全运行所需的时间。
寻找灵感和榜样的最佳去处莫过于ScriptRunner 的 PowerShell 脚本集。有超过 1,500 个脚本分布在 Active Directory、Exchange、Microsoft 365、VMware、Windows Server 等主题上。它们都可在 GitHub 上轻松访问并可免费下载。将这些示例脚本与之前介绍的 Ironman PowerShell Unlimited 中的一些自动化和可访问性粘合剂结合起来,您就拥有了一个强大的基础,可以从此开始您的自动化之旅。
自由的。
3.Visual Studio Code 和用于 Visual Studio Code 的 PowerShell
当我在 2015 年初第一次写下这个故事时,Visual Studio 代码那时还没有出生,世界一片黑暗。脚本编辑都是在记事本或第三方文本编辑器中进行的。颜色很苍白。食物味道寡淡。
也许这有点夸张,但如果你不熟悉 VS Code,它是微软非常有用且免费的代码编辑器,是其工业级 Visual Studio 集成开发环境 (IDE) 的轻量级但功能仍然强大的版本。VS Code 包含许多用于操作和编写代码和脚本的有用功能,并且PowerShell for Visual Studio Code 插件在产品中为 PowerShell 语言点亮一些特殊功能,包括语法突出显示、代码片段、IntelliSense(用于帮助您在编辑器窗口上下文中在 cmdlet 中编写正确的语法)、导航功能(如转到和查找 cmdlet 和变量)、本地脚本调试,以及——也许最重要的是——颜色方案的选择。
Visual Studio Code 非常方便用于执行许多任务,包括快速文本编辑、标记 HTML 文档、快速编写 shell 脚本等。PowerShell 插件使它更加有用。两者都是免费的,绝对值得立即下载和安装。
自由的。
4. Sapien Technologies PowerShell Studio 2023
更高级的 PowerShell 开发人员和管理员需要更高级的工具,并且PowerShell Studio 2023Sapien 是第一个值得关注的地方。首次打开 PowerShell Studio 时,您会立即想起 Visual Studio,原因很简单:PowerShell Studio 是一个集成的脚本环境,就像 Visual Studio 是一个集成的开发环境一样。
功能包括 Ribbon、远程调试支持、允许您将脚本转换为可执行文件的编译器功能、对 PowerShell 的多个版本的支持(对于将脚本定位到运行不同级别的 Windows Server 操作系统的不同服务器非常有用)、用于签入和签出脚本代码的源代码控制以及对多个开发人员的支持。所有这些都使其成为管理员和开发人员共同构建高级 PowerShell 脚本以处理各种场景的商店的不二之选。
它的价格有点高:永久许可证 499 美元,或者您可以以每月 25 美元或一次性支付 250 美元的价格订购一年。请注意:它的安装程序显示您需要超过 5GB 的空间才能安装它。(我想现在存储便宜是件好事。)但考虑到产品的所有功能,如果您生活在 PowerShell 世界的这个部分,它非常值得入场费,您可以尝试 45 天的试用,看看它是否适合您。
自 2006 年发布以来,PowerShell 已成为大型服务器系统中管理使用的脚本语言。即使是像 Amazon Web Services 这样的竞争性云服务也认识到 (a) Windows Server 非常庞大,(b) 许多管理员正在学习 PowerShell,以及 (c) 任何允许管理员更轻松地管理 Amazon 服务的东西都会增加 Amazon 服务器在任何特定企业中留存的可能性。因此,适用于 PowerShell 的 AWS 工具出生。
使用适用于 PowerShell 的 AWS 工具,您可以管理在 Elastic Compute Cloud (EC2) 中运行的虚拟机和服务实例,或者编写脚本来自动管理在各种 Amazon 服务中运行的任何工作负载。这些工具会将一堆 cmdlet 安装到您的 PowerShell“影响范围”中,让您可以管理和编写脚本任务,例如将数据从 EC2 中的虚拟机备份到简单存储服务 (S3) 或将指标记录并发布到 Amazon CloudWatch 个人仪表板。
如果您了解 PowerShell 并且使用亚马逊云服务,这些工具将是一个很好的补充。
自由的。
Ironman Software 的另一个有用的软件包是PowerShell 专业工具,这是一个软件包,它使得在微软的主要 Visual Studio 产品以及免费提供的 Visual Studio Code 编辑器中编写 PowerShell 代码变得更加容易。
该项目集成在 Visual Studio 中,为 IDE 带来语法突出显示和颜色,并添加了 IntelliSense 支持,以便在您在 Visual Studio 窗口中键入时自动完成语法元素(如变量、cmdlet 和参数)。它还扩展了配置 Visual Studio 项目的选项,以便您可以井然有序地编写脚本,扩展了使用 MS Build 编译器对脚本参数的支持,并支持通过断点和断点窗格支持进行脚本调试。它还使用 Pester 和 PSate 测试适配器扩展了一些测试功能。
对于个人用户,费用从每月 10 美元到一次性永久许可证 100 美元不等;还有一个 Ironman Bundle,其中包含 PowerShell ProTools 和 PowerShell Universal 的永久许可证,价格为 150 美元。对于组织,价格略高:每位用户每月 20 美元或永久许可证每位用户 200 美元。
7. VMware PowerCLI
与亚马逊一样,VMware 也意识到,从某些方面来说,为了共同客户的利益与竞争对手搞好关系并不是坏事。为此,VMware 创建了电源命令行接口,一个用于管理 VMware vSphere 资源的基于命令行的环境,其中集成了 PowerShell。
PowerCLI 环境基本上是一堆与 vSphere 和 vCloud 交互的 cmdlet。它还为 VMware 产品公开的各种 API 提供基于 C# 和 PowerShell 的接口。如果您是 VMware 商店并希望获得 PowerCLI,请转到此链接。当每个人都在沙盒中很好地一起玩耍时,这不是很棒吗?