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

[玩转系统] 构建您的第一个 PowerShell 模块

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

构建您的第一个 PowerShell 模块


[玩转系统] 构建您的第一个 PowerShell 模块

PowerShell 的核心语言内置了各种强大的 cmdlet。但本机函数只能带您到目前为止,在大多数项目中您将需要更多功能。 PowerShell Gallery 提供了各种可下载的第三方模块,但也可以选择创建自定义 PowerShell 模块。本文将指导您完成创建第一个 PowerShell 模块的过程。

什么是 PowerShell 模块?

从最基本的角度来看,PowerShell 模块由两个必需组件和一个可选组件组成。这些组件是 PowerShell 模块中推荐使用的最少组件。

  • psd1 文件 - PowerShell 定义文件
  • psm1 文件 - PowerShell 模块加载文件
  • 功能

有两种类型的模块:脚本模块和二进制模块。在此示例中,我们正在构建一个脚本模块。脚本函数由传统的PowerShell函数组成,易于构建。二进制模块是 .NET 框架编译的程序集。用 .NET 编写的 cmdlet 不如脚本模块那么容易理解。首先,我们需要定义 PowerShell 模块的用途。并非模块的所有方面都需要在开始之前进行映射。制定清晰的计划可以使定义必要的功能变得更加容易。

定义模块的用途

制作模块并不困难,但构建公开的功能却很困难。本文的目的是创建一个具有三个功能的简单模块。模块通常包含与单个产品或工具相关的功能。我们模块中的功能针对三种不同的产品,但支持特定的工作流程。该工作流程是检索 SharePoint 成员、触发入职流程,最后在团队消息中发送 SharePoint 组成员。

  • 新团队消息
  • 调用 PowerAutomateFlow
  • 获取 SharePointMember

模块结构

模块本身的结构非常简单。文件夹和文件布局如下所述。您可能有的一个问题是为什么我们在函数文件前面添加 func_ 。这是个人喜好,没有必要。此技术对于避免模块目录中的点源错误脚本很有用。您将在模块加载文件中看到如何使用此技术。

民众

  • func_New-TeamsMessage.ps1
  • func_Invoke-PowerAutomateFlow.ps1
  • func_Get-SharePointMember.ps1

私有 -

  • 实用模块.psd1
  • 实用程序模块.psm1

创建模块

创建模块定义文件的最快方法是使用 New-ModuleManifest 命令。下面,我们定义了一些将创建可用模块的参数。 CompatiblePSEditions 定义了两者 桌面核心作为受支持的 PowerShell 版本。如果您填充 FunctionsToExport 参数,命令发现就会起作用。

$Params = @{ 
		"Path" 				= 'D:\WorkingFolder\Articles\UtilityModule.psd1' 
		"Author" 			= 'Fake Author' 
		"CompanyName" 			= 'Fake Company' 
		"RootModule" 			= 'UtilityModule.psm1' 
		"CompatiblePSEditions" 		= @('Desktop','Core') 
		"FunctionsToExport" 		= @('Get-SharePointMember','Invoke-PowerAutomateFlow','New-TeamsMessage') 
		"CmdletsToExport" 		= @() 
		"VariablesToExport" 		= '' 
		"AliasesToExport" 		= @() 
		"Description" = 'Utility Module' 
	} 
New-ModuleManifest @Params

我们使用 Export-ModuleMember 导出函数,但性能最佳实践规定在模块定义中使用空数组。由于未知原因,空数组在 VariablesToExport 下无法正确导出,但空字符串确实会输出空数组。
运行 New-ModuleManifest 命令会创建一个

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

取消回复欢迎 发表评论:

关灯