何时选择通过PowerShell脚本开发PowerShell模块

Oli*_*ier 23 powershell module windows-scripting

我即将为Windows管理员编写PowerShell脚本,以帮助他们完成与部署Web应用程序相关的某些任务.

我是否应该支持或排除开发PowerShell模块(.psm1)而不是执行PowerShell脚本(.ps1)

开发脚本的论据

  • 简单:我认为使用脚本对于Windows管理员来说更简单,更简单,因为它不需要安装模块(但我可能错了,因为我不是Windows管理员!).
  • 更快的开发:开发模块需要更仔细地编程接触内部方法.这就像设计API一样,因此必须更严格.

开发模块的论据:

  • 可重用性:这是我想到的第一件事:如果管理员想要将我们的脚本集成到他自己的脚本中,那么他可能更容易重用一个暴露一个(或几个)cmdlet的模块而不是调用我们的脚本?
  • ...

如果你知道PS脚本与PS模块的常见用例,或者每个选择的技术限制,它可能会有所帮助.

rav*_*nth 22

要了解哪些模块可以为您做什么,请阅读:http://msdn.microsoft.com/en-us/library/dd878310(v = vs.85).aspx

简而言之,

Windows PowerShell模块允许您将Windows PowerShell代码分区,组织和抽象为自包含,可重用的单元.使用这些可重用的单元,管理员,脚本开发人员和cmdlet开发人员可以轻松地与其他人共享他们的模块.脚本开发人员还可以重新打包第三方模块以创建基于脚本的自定义应用程序.模块,类似于其他脚本语言如Perl和Python模块,能够使用可重复使用的,可再发行组件,以使您的好处重新包装和抽象的多个组件创建定制的解决方案,生产就绪的脚本解决方案.

如果您的脚本已经具有函数并且不仅仅是为了执行单个任务而编写,您只需将其重命名为.PSM1即可将其转换为模块.如果你没有使用功能,当然除了去.ps1别无选择.在这种情况下,每个.ps1将用于执行单个任务.在共享我与其他人编写的脚本时,我总是喜欢模块.


Mik*_*ard 13

我喜欢能够"隐藏"函数/变量并只导出我想要的模块的模块.

  • 这是真的,但如果"隐藏"功能需要被其他几个功能使用,那么你就会陷入困境. (3认同)