How Do You Override a Function in Powershell


All I can find online about doing this is to override a cmdlet, but I need to override a windows form event. Here is the C# equivalent of what I need:

They were saying that you just use the name of the function in the same scope and it will automatically override it, but that is not working for me.


If you’re referring to a method, Chris Dent’s answer covers that nicely!

For native PowerShell cmdlets/functions I will copy my answer from ServerFault here:

Yes, you can override Get-ChildItem or any other cmdlet in Powershell.

Name Your Function The Same

If you make a function with the same name in the same scope, yours will be used.


Using Aliases

Create your own function, and then create an alias to that function, with the same name as the cmdlet you want to override.


This way is nice because it’s easier to test your function without stomping on the built-in function, and you can control when the cmdlet is overridden or not within your code.

To remove the alias:

Know the Command Precedence

about_Command_Precedence lists the order in which commands of different types are interpreted:

If you do not specify a path, Windows PowerShell uses the following
precedence order when it runs commands:

  1. Alias
  2. Function
  3. Cmdlet
  4. Native Windows commands


How Do You Override a Function in Powershell by licensed under CC BY-SA | With most appropriate answer!

Leave a Reply