ja-JP/about_Requires.help.txt

TOPIC
    about_Requires

簡単な説明
    必要な要素がそろっていない場合にスクリプトの実行を防ぎます。

詳細な説明
    #Requires ステートメントは、PowerShell のバージョン、モジュール
    (およびそのバージョン)、エディションの前提条件が満たされていない限り、
    スクリプトの実行を防ぎます。前提条件が満たされていない場合、PowerShell
    はスクリプトを実行せず、タブ補完などの他のランタイム機能も提供しません。

  構文
        #Requires -Version <N>[.<n>]
        #Requires -Modules { <Module-Name> | <Hashtable> }
        #Requires -PSEdition <PSEdition-Name>
        #Requires -RunAsAdministrator

    構文の詳細については、.NET ドキュメントの ScriptRequirements を参照して
    ください。

  使用上の規則
    スクリプトには複数の #Requires ステートメントを含めることができます。
    #Requires ステートメントはスクリプト内の任意の行に記述できます。

    関数内に #Requires ステートメントを配置しても、そのスコープは限定され
    ません。すべての #Requires ステートメントは常にグローバルに適用され、
    スクリプトを実行できるようになる前に満たされていなければなりません。

    警告: #Requires ステートメントはスクリプト内の任意の行に記述できますが、
    スクリプト内での位置はその適用の順序に影響しません。#Requires ステート
    メントが表すグローバルな状態は、スクリプトの実行前に満たされていなければ
    なりません。

    例:

        Get-Module AzureRM.Netcore | Remove-Module
        #Requires -Modules AzureRM.Netcore

    上記のコードは、必要なモジュールが #Requires ステートメントの前に削除
    されているため実行されないと思うかもしれません。しかし、#Requires の
    状態はスクリプトが実行を開始できる前に満たされている必要がありました。
    その後、スクリプトの最初の行が必要な状態を無効化したのです。

  パラメーター

  -Assembly <アセンブリのパス> | <.NET アセンブリの指定>
    重要: -Assembly 構文は非推奨です。何の機能も果たしません。この構文は
    PowerShell 5.1 で追加されましたが、それをサポートするコードは実装されま
    せんでした。この構文は下位互換性のために引き続き受け付けられます。

    アセンブリ DLL ファイルのパス、または .NET アセンブリ名を指定します。
    Assembly パラメーターは PowerShell 5.0 で導入されました。.NET アセンブリ
    の詳細については、.NET ドキュメントの「アセンブリ名」を参照してください。

    例:

        #Requires -Assembly path\to\foo.dll

        #Requires -Assembly "System.Management.Automation, Version=3.0.0.0,
          Culture=neutral, PublicKeyToken=31bf3856ad364e35"

  -Version <N>[.<n>]
    スクリプトが必要とする PowerShell の最小バージョンを指定します。メジャー
    バージョン番号と、省略可能なマイナーバージョン番号を入力します。

    例:

        #Requires -Version 6.0

  -Modules <Module-Name> | <Hashtable>
    スクリプトが必要とする PowerShell モジュールを指定します。モジュール名
    と、省略可能なバージョン番号を入力します。

    必要なモジュールが現在のセッションにない場合、PowerShell はそれらを
    インポートします。モジュールをインポートできない場合、PowerShell は
    終了エラーをスローします。

    #Requires ステートメントは、モジュール内のクラスおよび列挙型の定義を
    読み込みません。クラスおよび列挙型の定義を含めてモジュールをインポート
    するには、スクリプトの先頭で using module ステートメントを使用してくだ
    さい。詳細については about_Using を参照してください。

    各モジュールについて、モジュール名 (<String>) またはハッシュテーブルを
    入力します。値は文字列とハッシュテーブルの組み合わせにできます。
    ハッシュテーブルには次のキーがあります。

    - ModuleName - 必須。モジュール名を指定します。
    - GUID - 省略可能。モジュールの GUID を指定します。
    - また、以下の 3 つのキーのうち少なくとも 1 つを指定することが必須です。
      - ModuleVersion - 受け付ける最小バージョンを指定します。
      - MaximumVersion - 受け付ける最大バージョンを指定します。
      - RequiredVersion - 正確に必要なバージョンを指定します。これは他の
        Version キーと併用できません。

    メモ: RequiredVersion は Windows PowerShell 5.0 で追加されました。
    MaximumVersion は Windows PowerShell 5.1 で追加されました。

    例:

    AzureRM.Netcore (バージョン 0.12.0 以上) がインストールされていることを
    必須とします。

        #Requires -Modules @{ ModuleName="AzureRM.Netcore"; ModuleVersion="0.12.0" }

    AzureRM.Netcore (バージョン 0.12.0 のみ) がインストールされていることを
    必須とします。

        #Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12.0" }

    AzureRM.Netcore (バージョン 0.12.0 以下) がインストールされていることを
    必須とします。

        #Requires -Modules @{ ModuleName="AzureRM.Netcore"; MaximumVersion="0.12.0" }

    AzureRM.Netcore と PowerShellGet の任意のバージョンがインストールされて
    いることを必須とします。

        #Requires -Modules AzureRM.Netcore, PowerShellGet

    RequiredVersion キーを使用する場合は、バージョン文字列が必要とする
    バージョン文字列と正確に一致していることを確認してください。

        Get-Module AzureRM.Netcore -ListAvailable

        Directory: /home/azureuser/.local/share/powershell/Modules

        ModuleType Version Name PSEdition ExportedCommands
        ---------- ------- ---- --------- ----------------
        Script 0.12.0 AzureRM.Netcore Core

    次の例は、0.12 が 0.12.0 と正確に一致しないため失敗します。

        #Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12" }

  -PSEdition <PSEdition-Name>
    スクリプトが必要とする PowerShell エディションを指定します。有効な値は、
    PowerShell の場合は Core、Windows PowerShell の場合は Desktop です。

    例:

        #Requires -PSEdition Core

  -RunAsAdministrator
    この [switch] パラメーターを #Requires ステートメントに追加すると、
    スクリプトを実行する PowerShell セッションが、昇格されたユーザー権限で
    開始されている必要があることを指定します。RunAsAdministrator パラメー
    ターは Windows 以外のオペレーティングシステムでは無視されます。
    RunAsAdministrator パラメーターは PowerShell 4.0 で導入されました。

    例:

        #Requires -RunAsAdministrator

  例
    次のスクリプトには 2 つの #Requires ステートメントがあります。両方の
    ステートメントで指定された要件が満たされていない場合、スクリプトは実行
    されません。各 #Requires ステートメントは行の先頭に記述する必要があり
    ます。

        #Requires -Modules AzureRM.Netcore
        #Requires -Version 6.0
        param
        (
            [Parameter(Mandatory=$true)]
            [string[]]
            $Path
        )
        ...

関連項目
    about_Automatic_Variables
    about_Language_Keywords

----
原文: PowerShell-Docs (CC BY 4.0) の翻訳 / PSHelpJaJP