fejesjoco fejesjoco - 1 year ago 168
PowerShell Question

Powershell naming conventions/scoping

I want to create a Powershell function/cmdlet which installs (and one that uninstalls) a web application: copies files, creates an app pool, creates the web application, sets up all kinds of IIS properties, does some web.config modifications, etc. I'm confused about how I should name it. Powershell has this verb-object naming convention, and it's all nice, but the names I want to use (New-WebApplication, etc.) are already taken by the WebAdministration module (which this new function will use internally). Is there a nice way to scope my functions to make it clear that it's a different module? Like mymodule.New-WebApplication, My-New-WebApplication, New-MyWebApplication? Or I could call it Install-WebApplication but that could lead to confusion because of reusing the same name.

Answer Source

I just ran into this recently for a similar issue. This could have many opinionated answers but this would handle the way to scope my functions to make it clear that it's a different module.

You could use the -Prefix parameter of Import-Module

Import-Module mymodule -Prefix Super

So when you go to use your cmdlet you would call it with


Alternatively, you can also explicitly call the cmdlet with the module path

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download