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