TOPIC about_Requires SHORT DESCRIPTION Prevents a script from running by requiring the specified snap-ins and version. LONG DESCRIPTION The #Requires statement prevents a script from running unless the Windows PowerShell version, snap-in, and snap-in version prerequisites are met. If the prerequisites are not met, Windows PowerShell does not run the script. You can use #Requires statements in any script. You cannot use them in functions, cmdlets, or snap-ins. Syntax Use the following syntax to specify the snap-in and the version of the snap-in that you want to require: #requires –PsSnapIn <PsSnapIn> [-Version <N>[.<n>]] Use the following syntax to specify the minimum version of Windows PowerShell that you want to require: #requires -Version <N>[.<n>] Use the following syntax to specify the shell that you want to require: #requires –ShellId <ShellId> Rules for Use - The #Requires statement must be the first item on a line in a script. - A script can include more than one #Requires statement. - The #Requires statements can appear on any line in a script. Examples The following statement requires the Microsoft.PowerShell.Security snap-in: #requires –PsSnapIn Microsoft.PowerShell.Security If the Microsoft.PowerShell.Security snap-in is not loaded, the script does not run, and Windows PowerShell displays the following error message: "The script '<script-name>' cannot be run because the following Windows PowerShell snap-ins that are specified by its "#requires" statements are missing: Microsoft.PowerShell.Security." The following statement requires the Windows PowerShell 2.0 version or any later version of the Microsoft.PowerShell.Security snap-in: #requires –PsSnapIn Microsoft.PowerShell.Security –Version 2 The following statement requires Windows PowerShell 2.0 or a later version: #requires –Version 2.0 The following script has two #Requires statements. The requirements specified in both statements must be met. Otherwise, the script will not run. Each #Requires statement must be the first item on a line: #requires –PsSnapIn Microsoft.PowerShell.Security –Version 2 Get-WMIObject WIN32_LogicalDisk | out-file K:\status\DiskStatus.txt #requires –Version 2 The following #Requires statement prevents a script from running if the specified shell ID does not match the current shell ID. The current shell ID is stored in the $ShellId variable: #requires –ShellId MyLocalShell SEE ALSO about_Automatic_Variables about_Language_Keywords about_PSSnapins get-PSSnapin