about_Requiresに関する情報

簡単な説明

スクリプトが必要な要素なしで実行されないようにします。

長い説明

#Requires ステートメントは、PowerShell のバージョン、モジュール (およびバージョン)、またはスナップイン (およびバージョン)、およびエディションの前提条件が満たされない限り、スクリプトが実行されないようにします。 前提条件が満たされていない場合、PowerShell はスクリプトを実行しません。

構文

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

構文の詳細については、「ScriptRequirements」を参照してください。

使用する規則

スクリプトには、複数の #Requires ステートメントを含めることができます。 #Requires ステートメントは、スクリプト内の任意の行に表示できます。

関数内に #Requires ステートメントを配置しても、そのスコープは制限されません。 すべての #Requires ステートメントは常にグローバルに適用され、スクリプトを実行する前に満たす必要があります。

Warnung

#Requires ステートメントはスクリプトのどの行にも記述できますが、スクリプト内の位置は適用の順序に影響しません。 #Requires ステートメントが提示するグローバル状態は、スクリプトの実行前に満たす必要があります。

例:

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

#Requires ステートメントの前に必要なモジュールが削除されたため、上記のコードを実行しないでください。 ただし、スクリプトを実行する前に、#Requires の状態を満たす必要がありました。 その後、スクリプトの最初の行で必要な状態が無効になりました。

パラメーター

-Assembly <アセンブリ パス> |.NET アセンブリの仕様< を >する

Von Bedeutung

-Assembly 構文は非推奨です。 これは関数を提供しません。 構文は PowerShell 5.1 で追加されましたが、サポート コードは実装されませんでした。 構文は下位互換性のために引き続き受け入れられます。

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

例えば次が挙げられます。

#Requires -Assembly path\to\foo.dll
#Requires -Assembly "System.Management.Automation, Version=3.0.0.0,
  Culture=neutral, PublicKeyToken=31bf3856ad364e35"

●バージョン <N>[.<N>]

スクリプトに必要な PowerShell の最小バージョンを指定します。 メジャー バージョン番号とオプションのマイナー バージョン番号を入力します。

例えば次が挙げられます。

#Requires -Version 6.0

-PSSnapin <PSSnapin-Name> [-バージョン <N>[.<n>]]

スクリプトに必要な PowerShell スナップインを指定します。 スナップイン名とオプションのバージョン番号を入力します。

例えば次が挙げられます。

#Requires -PSSnapin DiskSnapin -Version 1.2

-Modules <Module-Name> |ハッシュテーブル< の >

スクリプトに必要な PowerShell モジュールを指定します。 モジュール名とオプションのバージョン番号を入力します。

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

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

  • ModuleName - 必須 モジュール名を指定します。
  • GUID - 省略可能 モジュールの GUID を指定します。
  • また、以下の 3 つのキーのいずれかを指定する必要があります。 これらのキーを一緒に使用することはできません。
    • ModuleVersion - モジュールの最小許容バージョンを指定します。
    • RequiredVersion - モジュールの正確で必要なバージョンを指定します。
    • MaximumVersion - モジュールの許容される最大バージョンを指定します。

注

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

-シェルID

スクリプトに必要なシェルを指定します。 シェル ID を入力します。 ShellId パラメーターを使用する場合は、PSSnapin パラメーターも含める必要があります。 現在の ShellId を見つけるには、 $ShellId 自動変数に対してクエリを実行します。

例えば次が挙げられます。

#Requires -ShellId MyLocalShell -PSSnapin Microsoft.PowerShell.Core

注

このパラメーターは、非推奨となったミニシェルでの使用を目的としています。

-管理者として実行

この 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
)
...

こちらも参照ください