我即将为Windows管理员编写PowerShell脚本,以帮助他们完成与部署Web应用程序相关的某些任务。
我是否应该支持或排除开发 PowerShell模块(.psm1)而不是执行 PowerShell脚本(.ps1)?
开发脚本的论据
开发模块的论据:
如果你知道PS脚本与PS模块的常见用例,或者每种选择的技术限制,它可能会有所帮助。
答案 0 :(得分:21)
要了解哪些模块可以为您做什么,请阅读:http://msdn.microsoft.com/en-us/library/dd878310(v=vs.85).aspx
在坚果壳中,
Windows PowerShell模块允许您将Windows PowerShell代码分区,组织和抽象为自包含,可重用的单元。使用这些可重用的单元,管理员,脚本开发人员和cmdlet开发人员可以轻松地与其他人共享他们的模块。脚本开发人员还可以重新打包第三方模块以创建基于脚本的自定义应用程序。与其他脚本语言(如Perl和Python)中的模块类似,模块支持生产就绪的脚本解决方案,这些解决方案使用可重复使用的可再发行组件,还具有使您能够重新打包和抽象多个组件以创建自定义解决方案的额外好处。
如果您的脚本已经具有功能而且不仅仅是为了执行单个任务而编写,您只需将其重命名为.PSM1即可将其转换为模块。如果你没有使用功能,当然除了去.ps1别无选择。在这种情况下,每个.ps1将用于执行单个任务。在共享我与其他人编写的脚本时,我总是喜欢模块。
答案 1 :(得分:12)
我喜欢能够“隐藏”功能/变量并只导出我想要的功能的模块。