PowerShell模块更改不可见

时间:2013-01-08 16:28:06

标签: powershell powershell-v3.0

我对PowerShell模块的工作原理感到困惑。

我已从博主下载并复制了一个模块。我已解锁并将.zip解压缩到%USERPROFILE%\ Documents \ WindowsPowerShell \ Modules \ SomeModule

在此文件夹中是模块使用的.NET程序集,但不包含已编译的CmdLets。相反,命令是.psm1文件中的函数,而.psd1文件描述清单。

如果我打开PowerShell,这些功能可用并且可以工作,但我想添加自己的功能,所以我添加了它,但是我看不到它。我重新启动了所有PowerShell实例,删除了模块并再次导入它。

作为测试,我重命名了一个现有的工作函数。有趣的是,删除和导入后,该功能消失,而不是采用其新名称。如果我将其重命名(只需更改一个字符)并删除/导入,则会再次显示。

我使用help blahblah列出集合中的所有命令,因为它们都具有相同的前缀。清单导出所有(*)函数。很明显我不明白这些类型的脚本模块是如何工作的,即使在我运行Remove-Module之后,这些功能都被列出了!我之前在C#中编写了一个已编译的模块,并且按预期工作。

发生了什么事?为什么重命名一个函数会导致它消失?感谢。

1 个答案:

答案 0 :(得分:1)

找到它。这一行出现在我在.psm1文件中忽略的一些内容中。

Export-ModuleMember X, Y, Z

所以,我猜清单可以否决这个或者在脚本中替换它的需要吗?谁知道。无论如何,希望这有助于某人。

相关问题