当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell模块+脚本的源代码管理

作者:精品下载站 日期:2024-12-14 08:08:32 浏览:14 分类:玩电脑

PowerShell模块+脚本的源代码管理


[玩转系统] PowerShell模块+脚本的源代码管理

PowerShell 脚本已成为当今操作系统和应用程序管理中不可或缺的一部分。在 MMC 的帮助下的经典管理正在逐渐退居幕后。作为本地或混合基础设施的纯图形管理的替代方案,Microsoft 为我们提供了基于浏览器的 Windows 管理中心。

IT 平台的自动化和简化操作需要根据您的要求单独调整的 PowerShell 脚本。脚本的开发并没有随着第一个功能版本的出现而结束。相反,脚本会随着新的需求而发展。理想情况下,这是在由多名管理员组成的团队中进行的。

正是在这里,PowerShell 脚本的源代码管理可以帮助您。

为什么需要源代码管理?

当您开始在 IT 环境中使用 PowerShell 脚本时,在大多数情况下,您会从使用搜索查询在搜索引擎中找到的脚本开始。您将该文件保存在本地计算机上或多或少任意的文件目录中。当您更改此脚本时,您总是会覆盖以前的文件或使用自定义的文件名创建原始文件的新副本。此过程非常容易出错,并且不适合在多个管理员的团队中工作。

PowerShell 脚本的源代码管理具有以下优点:

  • 脚本版本控制:每个脚本都带有回滚以前版本的选项。
  • 脚本签出/签入:从当前版本分叉以开发新版本而不影响当前版本
  • 集成:从已针对本地环境自定义和扩展的外部源部署 PowerShell 脚本。
  • 可追溯性:审核更改记录,并提供有关更改者的信息

源代码管理的最佳实践

实现源代码管理的方法有很多种。也许该公司已经拥有供开发部门使用的中央源代码管理系统。这种情况下,最简单的办法就是有一个单独的区域,即所谓的存储库,在这个源代码管理中。确保您可以在中央存储库中独立管理文件夹和授权结构。

如果您的公司尚未使用源代码管理,可以使用多种解决方案。这些解决方案包括 Team Foundation Server、CVS、Subversion 或 Git,仅举几例。您应该问自己的第一个问题是您是否想要在内部 IT 基础设施中自己的服务器上构建源代码管理,或者您是否更喜欢使用基于云的解决方案。

我个人使用 GitHub 作为我不同项目的统一源代码管理。这些项目不仅包括PowerShell,还包括C#和Web项目。 GitHub 是一个基于 Web 的源代码管理工具,为单个用户提供免费计划,也为开发团队的专业使用提供多种付费计划。对于在商业环境中使用,我绝对推荐付费团队计划。这种计划的优点是所有权和管理权分配给通用公司帐户而不是单个人。

提示:了解 ScriptRunner 如何帮助您在团队中开发脚本并集中组织它们

作为管理的一部分,您可以创建一个或多个用于存储 PowerShell 脚本的位置。这些位置称为存储库。对于您创建的每个存储库,您可以指定谁有权访问该存储库以及它是公共存储库还是私有存储库。如果您只想将源代码管理用于公司内部使用,请创建私有存储库。

是为每个管理团队创建存储库还是为每个单独的脚本创建单独的存储库完全取决于您的需求。由于您必须为每个单独的存储库配置权限,因此此变体需要增加工作量,但提供了精细的控制。工作站或服务器的本地文件系统中的每个单独的存储库都需要一个单独的目标目录。

首先创建一个目录,在该目录下下载所需的存储库。这个过程称为结帐。以下示例显示了 Active Directory、Exchange、Office 365 和 SharePoint 团队的文件夹结构。

[玩转系统] PowerShell模块+脚本的源代码管理

为了更好地概览,各个脚本按名称进行组织。这允许您在脚本上下文中保存配置文件和其他信息。现在,每个管理员都可以下载日常工作所需的脚本,必要时进行更新并再次上传。上传更改(包括新目录和文件)称为签入或提交。

与根据管理团队进行分组相比,每个脚本的各个存储库的本地目录结构如下所示:

[玩转系统] PowerShell模块+脚本的源代码管理

您很快就会看到差异。如果您有大量 PowerShell 脚本,这种方法很快就会变得混乱。我使用这两种变体。我的公共 PowerShell 脚本每个都存储在自己的存储库中。这使我能够控制脚本的每个版本。同时,我有一些私人存储库,我在其中收集和维护按主题排序的脚本以供日常使用。

在本地文件系统中,该混合物如下:

[玩转系统] PowerShell模块+脚本的源代码管理

绿框目录是单个 PowerShell 脚本的检出存储库。橙色边框目录是一个存储库,其中包含用于设置和管理 Microsoft Azure 实验室的完整脚本集合。

自述文件

当然,您可以在脚本中维护 PowerShell 脚本的帮助信息。他们甚至提供了可以使用 Get-Help cmdlet 进行查询的应用程序示例。当您直接在 PowerShell 会话中工作时,此信息非常有用且必要。

自述文件对于查看基于 Web 的存储库和查找合适的 cmdlet 更有用。对于每个存储库,创建一个自述文件,描述存储库的内容及其用途。您还应该列出联系人或负责联系数据的人员。您还应该为每个脚本创建一个自述文件,描述脚本的用途并提供应用程序示例。此类自述文件必须以 Markdown 格式创建。

源代码管理客户端

您需要一个合适的客户端来对存储库进行签出、提交和其他访问操作。根据所使用的源代码管理和本地操作系统,可以使用不同的软件解决方案。还有一些脚本编辑器已经内置了源代码管理功能。您是否喜欢使用 Git 的命令行版本、文件浏览器扩展 Tortoise 还是 Visual Studio Code 的 Git 扩展都取决于您。每个管理员对于日常工作都有个人偏好。这是一件好事。

相反,请确保您使用的工具始终是最新的并且与源代码管理完全兼容。

生产运行中的 PowerShell 脚本

切勿在连接的存储库的直接存储路径中使用 PowerShell 脚本。 PowerShell 脚本有时会创建存储在同一文件路径中的与脚本相关的日志文件。出于安全原因,此数据不适合存储在源代码管理中。

为了高效地运行 PowerShell 脚本,我建议您构建一个不属于存储库的单独目录结构。使用顶级目录名称来清楚地表明这些是高效的脚本。

[玩转系统] PowerShell模块+脚本的源代码管理

理想情况下,您还应该保留存储库的目录结构。这将帮助您和您的队友找到解决方法并避免错误。
或者,您可以使用存储库中受保护的分支。对于脚本的功能版本,您可以创建一个复制分支,以防止删除和未经授权的覆盖。一旦新版本的脚本可以有效使用,就必须为受保护的分支发出合并源代码的请求(合并请求)。您必须显式释放合并。通过这种方式,您可以确保仅使用经过成功测试的代码。

结束语

关于安全,再多说一句。无论您想使用 GitHub 还是任何其他基于 Web 的源代码管理解决方案,请始终确保正确配置对存储库的访问。安全的源代码管理允许您启用多重身份验证。使用此选项可以保护脚本的源代码免遭未经授权的访问。

请随意使用我的公共 PowerShell 脚本作为模板。

我希望您喜欢 PowerShell 并期待您的反馈。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯