Powershell Best Practice #21: Use #Requires statement

By | October 5, 2015

Best Practice: You should use the #Requires statement in your scripts or modules (recommended at the top of the script).

Explanation: The #Requires statement will run a script only if the prerequisites are met.

For example, you created a script using classes (PowerShell v5), using activedirectory module and administrative rights are needed.

PowerShell version : #Requires -Version 5.0

It is recommended to write PowerShell code for the oldest version possible (nowadays the latest version is 5.0 so you should try to write for 3.0 minimum).


Module : #Requires -Modules activedirectory


RunAsAdministrator: #Requires -RunAsAdministrator


You can have several requirements in the same line:  #Requires -Version 3.0 -Modules ActiveDirectory, DnsClient -RunAsAdministrator

or in several lines (I prefer having that in several lines, it is clearer to read).

There is no specific order and you can put the #Requires statement where you want (here in line 2).
It is case insensitive (#REQUIRES #Requires or #requires, all work).


It is much better to use #Requires statement instead of writing additional code (to check specific version, module, etc.) or custom messsages (moreover the error will be in the local language of the user).



Leave a Reply

Your email address will not be published. Required fields are marked *