首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell核心和Powershell模块

Powershell核心和Powershell模块
EN

Stack Overflow用户
提问于 2020-03-25 01:53:11
回答 1查看 83关注 0票数 0

我需要创建一个可以在Powershell7中运行并使用Powershell5中的commandlets的模块。

我想将此模块另存为工件,并在AzureDevOps工件中发布。

该模块用于审计跨平台的系统信息。问题是一些cmdlet是特定于Windows平台的,比如Get-WindowsFeature。我还想使用PowerShell核心功能,比如Azure Cosmos通信cmdlet。

如何仅在某些平台上加载函数?

你需要用C#写一些东西来实现这一点吗,或者在我的主模块中嵌套一个用于特定平台的模块?

EN

回答 1

Stack Overflow用户

发布于 2020-03-26 15:08:13

注释正确地指出,您可以使用版本检查来包装命令。对于小的use命令来说,这是一个很好的选择。作为一个更好的模块设计,我建议只有两个模块,每个平台一个。这将允许您更好地分离您的工作,而不是依赖于在不同平台上有条件地运行操作的许多嵌入式逻辑步骤。对我来说,这是更干净的。

当你开始使用模块时,我强烈建议你使用模板来引导你的项目。我发现它节省了很多时间,并为我提供了最佳实践。

我个人最喜欢的是PSModuleDevelopment,你可以这样使用它:

代码语言:javascript
复制
Install-Module PSModuleDevelopment -Scope CurrentUser
代码语言:javascript
复制
Get-Help 'Invoke-PSMDTemplate'

这非常类似于加载结构,一些非常成熟的项目,如dbatools和PSFramework的使用。如果您使用此功能,您将主要受益于:

  • 能够将您的所有函数分离到各自的文件中并轻松加载它们
  • 一些很好的增强功能可以在模块中预加载配置
  • Pester测试模板包括

我不再尝试编写自己的模块结构,而只是利用这样的开发模块,它对我非常有帮助。

祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60836625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档