发布信息

PowerShell(发音为command-let)是一种完全定义的语言

作者:软荐小编      2023-09-22 22:03:25     174

本章内容包括:

如果您拿起这本书,恭喜您! 您刚刚找到了一种资源,它不仅可以让您的生活变得更轻松; 它会让你更有效率,更有市场。 PowerShell 是 IT 专业人员的非凡工具。 在这个行业中计算机实用软件教程,可以手动执行任务的管理员和那些以困难的方式完成任务的管理员之间存在着一条界线。

看看所有已经主导该行业的系统。 WSUS、SCCM、Jenkins 和 Kubernetes 等等。 如果你看看这些工具的作用,就会发现它们的一个共同点是,它们采用我们以前手动完成的事情,而不是大规模手动完成。 手册化是 IT 专业人员明天可以学习的最重要的资源,以使其在未来发挥作用; PowerShell 是手动管理域的最佳方法之一。

1.1什么是PowerShell?

PowerShell 是一种任务手动化和配置工具,自 Windows 7 以来已包含在所有 Microsoft 操作系统中。PowerShell 是一个非常有用的工具,以至于 2003 年针对 XP 和 Windows Server 2009 发布了 PowerShell 版本作为操作系统附加组件。 但 PowerShell 的功能远不止于此。 与早期的 Microsoft 任务手动化和配置工具不同,PowerShell 是一种完全定义的语言,它利用强大的 .Net 框架面向对象编程 (OOP)。 由于其预定义的 cmdlet 原生于 Microsoft 系统、服务器和域,管理员无需具备任何编程经验即可立即使用; 随着您的编程经验的减少,该语言的灵活性和功能会急剧增加。 衰退。 cmdlet(发音为 command-let)是用 PowerShell 语言编写的重型命令,可用于执行特定功能。 例如,您不需要知道如何编程即可将计算机添加到域中。 您只需键入 New-ADComputer (ActiveDirectorycmdlet),PowerShell 就会理解您希望它执行的操作:将 PC 添加到您的域。但这些灵活性仅限于 Active Directory。 许多微软产品甚至非微软产品都在其特定技术中实现了cmdlet,以实现手动管理和配置。

这些语言的功能将改变系统管理的方法。 然而,它提供了足够的灵活性和功能,那些钻研这些语言的人可以获得对整个领域几乎无限的控制。 仅举几例计算机实用软件教程,SharePoint、Exchange 和 Office365 都支持并经常使用 PowerShell 作为自己的前端图形用户界面 (GUI)。

1.2 为什么它很重要?

与任何其他语言相比,Windows PowerShell 更能直接影响您真正掌握该领域的能力。 作为 IT 专业人员,我们都有需要重复执行的任务。 它可以是创建用户、创建报告、设置邮箱或任何数量的事情。 让我们仅检测以下常见任务之一: 通过检测来查看所有 Windows 系统上的服务状态。

非手动执行方法需要:

在某些系统上,这会带来不便。 几十个,这就是一整天的工作。 几百个,这是一个浩大的工程! 这项任务以及更多任务可以在数千台主机上使用 PowerShell 来完成,只需几分钟的编码,并在晚饭前在整个域上完成。 本书将提供执行此类任务所需的代码!

如果您一直不明白为什么系统管理员或任何想要最大限度地提高在 Windows 系统上完成工作的能力的人应该使用 PowerShell,想象一下,如果在同一任务结束时,您的老板来找您并说现在您需要在所有未运行该服务的计算机上启用您检测到的服务,并检测第二个服务的所有计算机。 你,老派的系统管理员又回到了原点。 精通PowerShell的朋友可以在几个小时内完成同样的任务,但你完成的任务需要几周的时间。 想知道谁的加薪幅度更大吗? 是时候给自己带来你一直梦想的不公平优势了。 本书是这段旅程的第一部分。

1.3 如何使用本书?

本书是作为TinyPowerShell 项目系列编写的。 这些项目中的每一个都会在您的 Windows 环境中做一些有用的事情; 即使您最初不了解项目的运作方式或动机,您今天就可以实施的东西,也可以看到您的环境中的优化。

然后分析每个项目,解释使脚本工作的代码。 详细介绍了变量、函数、分支、循环、结构化错误处理、数组和技术等关键编程概念。 您不需要任何编程背景即可了解在您的环境中实施项目并以编码方式使用它们的价值。

但是,如果您有一些使用 PowerShell 的经验,那么本书中的项目将立即派上用场,并且您可以通过实际的实践项目来提高您的技能。 通过此类项目的应用,您将更多地了解手动化和自定义您自己的域的潜在机会,使您的管理任务列表不再是重复性任务,而是更多地列举您为组织带来的好处。 真正的附加值。

如果您不想了解有关 PowerShell 及其工作原理的任何信息,您仍然可以通过 17 个特定且有用的 PowerShell 脚本的形式获得附加价值,您可以在明天实施这些脚本来提高您的工作效率和语言熟练程度。 我的目标是不浪费任何人的时间在不解决环境问题的脚本上。 您在书中找不到“Hello World”的脚本。 话虽这么说,起始脚本将使新的 PowerShell 用户能够以不会让他们不知所措的速度轻松地掌握该语言和语法。 更多的中级用户应该阅读本章开头的脚本。 如果您确切了解脚本的作用和用途,请随意跳过本章其余的脚本讨论。 很多时候,未来的脚本将建立在我们在后面的章节中学习的基础知识的基础上,以实现更复杂的解决方案。

但是,如果您看到该语言固有的功能和灵活性,除了解释可以采取哪些措施来提高作为系统管理员、Exchange 管理员、安全人员或其他 IT 人员的性能之外,本书还将作为一个有价值的起点。专业的。 无论您是在本地还是在云端工作。 它还将向您展示如何确定实施脚本化解决方案的最有利时间。

1.4 谁应该了解 Windows PowerShell?

系统管理员,尤其是 Windows 系统管理员,可以从对 Windows PowerShell 的深入了解中受益匪浅。 这是因为它们在 Windows 系统、服务器和应用程序中利用外部 cmdlet 具有最大的灵活性。 而且,由于本书是针对 PowerShell 7.1 编写的,因此即使非 Windows 管理员也能看到实现此类脚本的巨大价值。 PowerShell7.1原生兼容Windows8.1、Windows10、WindowsServer版本2012-2019、MacOS10.13+、RedHat EnterpriseLinux和CentOS7、Fedora30+、Debian9、UbuntuLTS16.04+和AlpineLinux3.8+。

Exchange 管理员将看到利用 Windows PowerShell 的巨大优势。 这是由于 Microsoft Exchange 在 PowerShell 前端上运行。 可以在 GUI 中执行的任何操作都将转换为在服务器上执行的 PowerShell 命令。 了解 cmdlet 和命令行界面 (CLI) 将轻松使您的效率比那些被迫依赖 Web 界面 GUI 执行相同操作的管理员提高三个数量级。

信息安全专业人员还将受益于遍历网络、解析日志、创建报告以及向域动态部署关键补丁和零日补丁的能力。

通常,执行重复性任务的任何人(甚至用户)都可以从 Windows PowerShell 的手动化和配置功能中受益。

讽刺的是,那些能够从了解 Windows PowerShell 中获益最多的专业人士群体却是最不可能使用它的人。 我相信这源于一个简单的事实:系统管理员不是传统的程序员。 如果您推迟学习 PowerShell,或者感到担心,或者不知道从哪里开始,那么这本书适合您! 您来对地方了。 每个小项目都是有用的,您的实践经验将帮助您克服焦虑并进入脚本和手动化的神奇世界!

这就是 TinyPowerShellProjects 采取不同方法的地方。 借助有用的、有形的和功能性的代码项目,管理员可以在他们的环境中实施此类项目并分析它们的工作方式,尽管那些对语言不熟悉或没有直接兴趣的人也可以立即使用。 。

1.5PowerShell5.x和7.x有什么区别?

截至撰写本文时,PowerShell 的最新版本是 PowerShell 7.2。 而且,截至目前,PowerShell 7.x 尚未预安装在任何版本的 Windows 或 Windows Server 上。 要理解这一点,您需要了解 Microsoft PowerShell 最近的历史背景。

2018 年之前,PowerShell 构建在 .Netframework 系统上。 这为 PowerShell 提供了很大的灵活性,因为如果不存在满足您当前需求的 cmdlet,您基本上可以使用 C#(发音为 CSharp)或 VB.Net 或任何利用 .Net 框架的语言编写自己的 cmdlet。 这使得PowerShell在微软系统上的覆盖范围几乎不受限制。 然而,这也意味着 PowerShell 将被降级为主要在 Windows 环境中运行。 .Netframework 仅在 Microsoft 操作系统中本机运行。

2018 年,微软试图改变这些条件。 他们开发了 .NetCore,这是 .Netframework 的跨平台版本。 这支持 Microsoft 产品、MacOS 和 Linux 版本之间的功能。 PowerShellCore6.0是用.NetCore开发的。 PowerShell 的当前版本 PowerShell7x 是这些跨平台开发的延续。

然而,为了实现跨功能,PowerShell7x引入了一些区分大小写的功能,这可能会影响曾经编写的脚本,而这本来并不重要。 对此的一个小反例是区分大小写。 Linux 和 MacOS 都倾向于区分大小写。 此外,Windows 基本上不区分大小写。

除了这个简单的示例之外,PowerShell 通常原生的大量 cmdlet 在 Linux/MacOS 环境中毫无意义,并且在 PowerShell 7.x 中已被省略。 此 cmdlet 主要处理注册表项和进程,但也会影响 NTFS 文件权限。 微软在 PowerShell 7 之间的向后兼容性方面取得了一些重大进展。

总之,虽然将单个现有脚本迁移到 PowerShell 7 可能会存在一些问题,但在自动化和优化其环境方面。 简而言之,不学习这些强大技能的 IT 专业人员很快就无法跟上那些学习这些技能的人。

选择 PowerShell 版本

如果出现以下情况,请考虑保留 PowerShell 5.1:

-您是一家仅使用 Windows 的商店,拥有少量 PC 和服务器

-您未能升级到.NetCore

- 您无法像 VSCode 一样运行外部 ISE。

-您有很多关键的遗留 PowerShell 代码

如果出现以下情况,请考虑 PowerShell7.x:

-您正在处理混合操作系统

-您正在使用像 StackOverflow 这样的网站

-您正在使用VSCode

-您拥有一家小型或小型企业

- 您拥有少量关键的旧版 PowerShell 代码,或者您可以花时间对旧版代码可能在 7.x 环境中运行的问题进行故障排除。

1.6 这如何让系统管理员的工作变得更轻松?

已经有许多广泛使用的工具可以让您更轻松地控制域:SCCM、GPO、CHEF、Puppet 或 Ansible 等。 尽管 IT 专业人员可以使用所有这些工具,但毫无疑问 PowerShell 是完成当前任务的正确工具。 例如,假设您需要在 100 台 PC 上安装一个软件包来解决零日漏洞。 让我们看看你会如何用传统的方法来做这件事。

1.6.1 传统方法包括: 图1.1 使用旧方法在100台Windows PC上安装软件。

计算机实用课程_计算机实用基础教程_计算机实用软件教程

现在,让我们看看使用 PowerShell 7.x 如何为系统管理员、用户和公司改善这种情况。

1.7PowerShell方法包括:

就是这样。

为了理解这一点,让我们看看 PowerShell 如何完成所有这些:

图1.2 使用PowerShell在100台PC上安装软件

计算机实用基础教程_计算机实用课程_计算机实用软件教程

所有这些功能都可以在几分钟内完成,但可以按需运行和重新运行。 本书将为您提供所有这些行为的工作示例,作为几乎没有编码经验的 IT 专业人员,您可以使用这些示例来构建这些确切类型的脚本。

1.8 总结

相关内容 查看全部