我听说过powershell 2.0 CTP有模块,但我找不到很多示例代码或指令。我已经阅读了似乎在网上有什么帮助......
但是当我尝试加载模块时,我只是不断地说“术语'添加模块'不被识别为cmdlet ......”
感谢任何帮助!
编辑 (2010年7月) 请注意这个问题基于powershell 2.0 CTP,因此已经过了一年半的时间!请参阅Samuel Jack的回答,以获取有关powershell 2.0 RTM的帮助。
答案 0 :(得分:9)
使用Win7版本,Add-Module消失了。新cmdlet是Import-Module。创建模块的最简单方法是将PS1文件重命名为PSM1文件。从那里你可以做各种各样的事情,包括模块清单。
答案 1 :(得分:3)
我不是Powershell专家,但这是我刚刚使用PowerShell 2.0 RTM想出来的。
假设您要创建一个名为 MyModule 的模块:
Export-ModuleMember -Function * -Alias *
将导出所有函数和别名Import-Module MyModule
默认情况下,Powershell配置为不从文件运行任何类型的脚本,因此您需要更改安全设置。如果您不关心需要签名的脚本,Set-ExecutionPolicy Unrestricted
会帮助您。
答案 2 :(得分:2)
这里有一些信息。 http://huddledmasses.org/powershell-modules/
让我们希望即将推出的CTP3有一些关于模块的有用文档。
答案 3 :(得分:1)
模块有望解决一些问题。现在,我们可以使用点源来将函数,变量和脚本放入PowerShell会话的全局范围。
问题是,这可能会污染您的会话,使用最终用户可能不需要/不需要的各种全局变量和辅助函数。
模块将允许您作为作者构建脚本,并且只为模块的最终用户提供某些功能/变量。
它们也基本上取代了PSSnapin的概念。您可以使用Add-Module Some.dll添加包含cmdlet的程序集。
什么是真正酷的是所谓的模块清单。这是一个哈希表,基本上指定了所有类型的依赖项以及作者,名称,GUID标识符和版本号。当用户加载具有模块清单的模块时,它将检查所有依赖项并运行模块作者认为必要的任何脚本。
当CTP3发货时,应该有一些不错的文件。
希望有所帮助。
安迪
答案 4 :(得分:0)
Windows PowerShell v2.0:TFM(sapienpress.com)在其中一章中包含信息和示例。它可以作为电子书使用,随着新CTP的发布而更新。我还在ConcentratedTech.com上发表了关于它们的博客,并在PowerShellCommunity.org上讨论过它们。