我想创建一个Powershell函数/ cmdlet来安装(以及卸载一个)Web应用程序:复制文件,创建应用程序池,创建Web应用程序,设置各种IIS属性,执行一些web.config修改等我很困惑我应该怎么命名。 Powershell有这个动词 - 对象命名约定,它很好,但是我想要使用的名称(New-WebApplication等)已经由WebAdministration模块(这个新函数将在内部使用)采用。有没有一种很好的方法来确定我的功能,以明确它是一个不同的模块?像mymodule.New-WebApplication,My-New-WebApplication,New-MyWebApplication?或者我可以将其称为Install-WebApplication,但由于重复使用相同的名称,这可能会导致混淆。
答案 0 :(得分:2)
我刚刚遇到类似问题。这可能会有很多自以为是的答案,但这会处理范围我的函数的方式,以明确它是一个不同的模块。
您可以使用-Prefix
Import-Module
参数
Import-Module mymodule -Prefix Super
因此,当您使用cmdlet时,可以使用
调用它New-SuperWebApplication
或者,您也可以使用模块路径
显式调用cmdletmymodule\New-WebApplication
答案 1 :(得分:1)
我同意马特的回答,但我想提出另一个观点。
我编写了一个模块,其目的是专门重新创建现有cmdlet的功能。我以不同的方式命名我的函数,但我也从模块中导出函数,允许调用者使用我的覆盖现有cmdlet(使用Alias,首先解释),然后还撤消该过程。
这允许某人显式调用该函数而无需使用-Prefix
也不使用\
语法,使用新名称和新代码,但它也允许使用我的函数作为drop -in通过调用单个新命令替换现有代码。
如果你想看一下这个模块: DnsCmdletFixes