Powershell命名约定/范围

时间:2014-11-02 11:27:59

标签: powershell naming-conventions

我想创建一个Powershell函数/ cmdlet来安装(以及卸载一个)Web应用程序:复制文件,创建应用程序池,创建Web应用程序,设置各种IIS属性,执行一些web.config修改等我很困惑我应该怎么命名。 Powershell有这个动词 - 对象命名约定,它很好,但是我想要使用的名称(New-WebApplication等)已经由WebAdministration模块(这个新函数将在内部使用)采用。有没有一种很好的方法来确定我的功能,以明确它是一个不同的模块?像mymodule.New-WebApplication,My-New-WebApplication,New-MyWebApplication?或者我可以将其称为Install-WebApplication,但由于重复使用相同的名称,这可能会导致混淆。

2 个答案:

答案 0 :(得分:2)

我刚刚遇到类似问题。这可能会有很多自以为是的答案,但这会处理范围我的函数的方式,以明确它是一个不同的模块

您可以使用-Prefix

Import-Module参数
Import-Module mymodule -Prefix Super

因此,当您使用cmdlet时,可以使用

调用它
New-SuperWebApplication

或者,您也可以使用模块路径

显式调用cmdlet
mymodule\New-WebApplication

答案 1 :(得分:1)

我同意马特的回答,但我想提出另一个观点。

我编写了一个模块,其目的是专门重新创建现有cmdlet的功能。我以不同的方式命名我的函数,但我也从模块中导出函数,允许调用者使用我的覆盖现有cmdlet(使用Alias,首先解释),然后还撤消该过程。

这允许某人显式调用该函数而无需使用-Prefix也不使用\语法,使用新名称和新代码,但它也允许使用我的函数作为drop -in通过调用单个新命令替换现有代码。

如果你想看一下这个模块: DnsCmdletFixes