PowerShell can be extremely useful for a lot of everyday tasks as is, but if you need to tweak some functions with a bit of safety in mind, then how do you define a function so that it requires elevation? Today’s SuperUser Q&A post has the answer to a curious reader’s question.

Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.

The Question

SuperUser reader Vlastimil wants to know how to define a PowerShell function that requires elevation:

How do you define a PowerShell function that requires elevation?

With the following results:

To be completely clear, if I run PowerShell as “user”, then run the aforementioned function system-check, I want the function to elevate in order to be able to execute the command (I want the UAC prompt to appear).

The Answer

SuperUser contributor Ashton has the answer for us:

Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.

For example:

To run a specific script from an elevated window:

To run an entire PowerShell session that prompts the UAC:

A function to return $True or $False if the current window is running with elevated permissions:

To ensure a script is only run As Admin, add this to the beginning:

In PowerShell v4.0, the above can be simplified by using a #Requires statement:

Source: Run with Elevated Permissions [SS64.com]