4. 型

PowerShell では、各値に型があり、型は、値型参照型 の 2 つの主なカテゴリの 1 つに分類されます。 一般的な値型である int 型について考えます。 int 型の値は完全に自己完結しています。その値を表すために必要なすべてのビットがその値に格納されており、その値のすべてのビット パターンがその型の有効な値を表します。 今度は、一般的な参照型である配列型 int[] について考えます。 配列型のいわゆる値は、配列要素が実際に格納されているオブジェクトへの参照、または値が $null である null 参照 を保持できます。 型の 2 つのカテゴリの重要な違いは、割り当ての際のセマンティクスの違いを見ると最もよくわかります。 たとえば、次のように入力します。

$i = 100 # $i designates an int value 100
$j = $i # $j designates an int value 100, which is a copy

$a = 10,20,30 # $a designates an object[], Length 3, value 10,20,30
$b = $a # $b designates exactly the same array as does $a, not a copy
$a[1] = 50 # element 1 (which has a value type) is changed from 20 to 50
$b[1] # $b refers to the same array as $a, so $b[1] is 50

このように、参照型の値の割り当てには、シャロー コピー が含まれます。つまり、実際の値ではなく、オブジェクトへの参照のコピーです。 これに対し、ディープ コピー では、オブジェクトのコピーも作成する必要があります。

数値 型は、整数または小数の値を表現することができ、それらの値に対する算術演算がサポートされている型です。 数値型のセットには、整数 (§4.2.3) 型や実数 (§4.2.4) 型は含まれますが、ブール (§4.2.1) や文字 (§4.2.2) は含まれません。 実装によっては、他の数値型 (符号付きバイト、符号なし整数、他のサイズの整数など) が提供される場合があります。

コレクション は 1 つ以上の関連する項目のグループであり、同じ型である必要はありません。 コレクション型の例としては、配列、スタック、キュー、リスト、ハッシュ テーブルなどがあります。 プログラムでは、コレクション内の要素を "列挙" (または "反復") することで、一度に 1 つの要素にアクセスできます。 これを行うための一般的な方法は、foreach ステートメント (§8.4.4) と ForEach-Object コマンドレットを使用することです。 列挙子を表すオブジェクトの型については、§4.5.16 を参照してください。

この章には、特定の型のアクセス可能なメンバーの一覧を示すテーブルがあります。 メソッドの場合、returnType/argumentTypeList という形式で書かれています。 引数型のリストが長すぎてその列に収まらない場合は、代わりに "目的" 列に示されています。

他の整数型は SByteInt16UInt16UInt32UInt64 であり、すべて System 名前空間に存在します。

多くのコレクション クラスは、System.Collections または System.Collections.Generic 名前空間の一部として定義されています。 ほとんどのコレクション クラスでは、ICollectionIComparerIEnumerableIListIDictionaryIDictionaryEnumerator の各インターフェイスと、それらに相当するジェネリックが実装されています。

4.1 特殊な型

4.1.1 void 型

この型のインスタンスを作成することはできません。 キャスト演算子 (§7.2.9) を使用して値を明示的に破棄する手段を提供します。

4.1.2 null 型

"null 型" には、自動変数 $null (§2.3.2.2、null 値とも呼ばれます) という 1 つのインスタンスがあります。 この値により、参照コンテキストに "何もないこと" を表現するための手段が提供されます。 この型の特徴は指定されていません。

4.1.3 オブジェクト型

null 型 (§4.1.2) を除く PowerShell のすべての型は、型オブジェクトから直接的または間接的に派生しているので、オブジェクトは null 以外のすべての型の最終的な基本データ型です。 型オブジェクトに制約されている (§5.3) 変数は、任意の型の値を格納できるため、実際にはまったく制約されていません。

4.2 値型

4.2.1 ブール

ブール型は bool です。 この型の値は FalseTrue の 2 つだけであり、それぞれ自動変数 $false$true によって表されます (§2.3.2.2)。

PowerShell では、boolSystem.Boolean にマップされます。

4.2.2 文字

文字値は char 型であり、UTF-16 でエンコードされた任意の 16 ビット Unicode コード ポイントを格納できます。

char 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
MaxValue 静的プロパティ (読み取り専用) char char 型に格納できる最大の値
MinValue 静的プロパティ (読み取り専用) char char 型に格納できる最小の値
IsControl 静的メソッド bool/char 文字が制御文字かどうかをテストします
IsDigit 静的メソッド bool/char 文字が 10 進数の数字かどうかをテストします
IsLetter 静的メソッド bool/char 文字がアルファベットの文字かどうかをテストします
IsLetterOrDigit 静的メソッド bool/char 文字が 10 進数の数字またはアルファベットの文字かどうかをテストします
IsLower 静的メソッド bool/char 文字がアルファベットの小文字かどうかをテストします
IsPunctuation 静的メソッド bool/char 文字が句読点かどうかをテストします
IsUpper 静的メソッド bool/char 文字がアルファベットの大文字かどうかをテストします
IsWhiteSpace 静的メソッド bool/char 文字が空白文字かどうかをテストします。
ToLower 静的メソッド char/string 文字を小文字に変換します
ToUpper 静的メソッド char/string 文字を大文字に変換します

Windows PowerShell: char は System.Char にマップされます。

4.2.3 整数

2 つの符号付き整数型があり、どちらも負の値には 2 の補数表現が使用されます。

  • int 型では、32 ビットが使用され、-2147483648 から +2147483647 の範囲が表されます (両端を含む)。
  • long 型では、64 ビットが使用され、-9223372036854775808 から +9223372036854775807 の範囲が表されます (両端を含む)。

int 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
MaxValue 静的プロパティ (読み取り専用) INT int 型に格納できる最大の値
MinValue 静的プロパティ (読み取り専用) INT int 型に格納できる最小の値

long 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
MaxValue 静的プロパティ (読み取り専用) long long 型に格納できる最大の値
MinValue 静的プロパティ (読み取り専用) long long 型に格納できる最小の値

符号なし整数型は 1 つです。

  • byte 型では、8 ビットが使用され、0 から 255 の範囲が表されます (両端を含む)。

byte 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
MaxValue 静的プロパティ (読み取り専用) byte byte 型に格納できる最大の値
MinValue 静的プロパティ (読み取り専用) byte byte 型に格納できる最小の値

PowerShell では、byteintlong は、それぞれ System.ByteSystem.Int32System.Int64 にマップされます。

4.2.4 実数

4.2.4.1 float と double

実数 (または浮動小数点) 型は 2 種類です。

  • float 型では、32 ビットの IEEE 単精度表現が使用されます。
  • double 型では、64 ビットの IEEE 倍精度表現が使用されます。

3 番目の型の名前 singlefloat 型の同意語です。この仕様では、全体を通して float を使用します。

この仕様では float 型と double 型のサイズと表現が定義されていますが、実装では中間結果のために拡張精度が使用される場合があります。

float 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
MaxValue 静的プロパティ (読み取り専用) float float 型に格納できる最大の値
MinValue 静的プロパティ (読み取り専用) float float 型に格納できる最小の値
NaN 静的プロパティ (読み取り専用) float 定数値 Not-a-Number (非数)
NegativeInfinity 静的プロパティ (読み取り専用) float 負の無限大の定数値
PositiveInfinity 静的プロパティ (読み取り専用) float 正の無限大の定数値

double 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
MaxValue 静的プロパティ (読み取り専用) double double 型に格納できる最大の値
MinValue 静的プロパティ (読み取り専用) double double 型に格納できる最小の値
NaN 静的プロパティ (読み取り専用) double 定数値 Not-a-Number (非数)
NegativeInfinity 静的プロパティ (読み取り専用) double 負の無限大の定数値
PositiveInfinity 静的プロパティ (読み取り専用) double 正の無限大の定数値

PowerShell では、floatdouble は、それぞれ System.SingleSystem.Double にマップされます。

4.2.4.2 10 進数

decimal 型では、128 ビット表現が使用されます。 少なくとも、0 <= s <= 28 以上であるスケール s をサポートする必要があり、値の範囲は -79228162514264337593543950335 から 79228162514264337593543950335. 10 進数の実際の表現は実装で定義されます。

decimal 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
MaxValue 静的プロパティ (読み取り専用) decimal decimal 型に格納できる最大の値
MinValue 静的プロパティ (読み取り専用) decimal decimal 型に格納できる最小の値

注意

10 進の実数には "スケール" という特性があり、小数点の右側の桁数を表します。 たとえば、値 2.340 のスケールは 3 で、末尾のゼロは有意です。 2 つの 10 進実数を加算または減算すると、結果のスケールは 2 つのスケールの大きい方になります。 たとえば、1.0 + 2.000 は 3.000 ですが、5.0 - 2.00 は 3.00 です。 2 つの 10 進実数を乗算した場合、結果のスケールは 2 つのスケールの合計になります。 たとえば、1.0 * 2.000 は 2.0000 です。 2 つの 10 進実数を除算した場合、結果のスケールは、1 番目のスケールから 2 番目のスケールを引いたものになります。 たとえば、4.00000/2.000 は 2.00 です。 ただし、正しい結果を保持するために必要なスケールより小さくすることはできません。 たとえば、3.000/2.000、3.00/2.000、3.0/2.000、3/2 はすべて 1.5 です。

PowerShell では、decimalSystem.Decimal にマップされます。 decimal の表現は次のとおりです。

  • 4 つの int 値の配列として考えると、次の要素が含まれます。
    • インデックス 0 (ビット 0 から 31) には、10 進数の係数の下位の 32 ビットが含まれます。
    • インデックス 1 (ビット 32 から 63) には、10 進数の係数の中央の 32 ビットが含まれます。
    • インデックス 2 (ビット 64 から 95) には、10 進数の係数の上位の 32 ビットが含まれます。
    • インデックス 3 (ビット 96 から 127) には、次のように符号ビットとスケールが含まれます。
      • ビット 0 から 15 は 0 です
      • ビット 16 から 23 には、値 0 から 28 としてスケールが含まれます
      • ビット 24 から 30 は 0 です
      • ビット 31 は符号です (正の場合は 0、負の場合は 1)

4.2.5 スイッチ型

この型は、コマンドのパラメーターの型を制約するために使用されます (§8.10.5)。 対応するパラメーター名を持つ引数が存在する場合は、パラメーターで $true がテストされます。それ以外の場合は、$false がテストされます。

PowerShell では、switchSystem.Management.Automation.SwitchParameter にマップされます。

4.2.6 列挙型

列挙型は、その列挙型のオブジェクトに割り当てることができるすべての値を表す名前付き定数のセットを定義する型です。 場合によっては、値のセットに含まれる値を一度に 1 つのみ表すことができます。 また、場合によっては、セットの個々の値が 2 の累乗になっていて、-bor 演算子 (§7.8.5) を使用することにより、同じオブジェクトで複数の値をエンコードできます。

PowerShell 環境では、以下のセクションで説明するように、多数の列挙型が提供されています。

4.2.6.1 Action-Preference 型

この実装定義型には、次の相互に排他的な値を持つアクセス可能なメンバーが含まれます。

メンバー メンバーの種類 目的
続行 列挙定数 PowerShell ランタイムは処理を続行し、アクションが発生したらユーザーに通知します。
照会 列挙定数 PowerShell ランタイムは処理を停止し、続行方法をユーザーに確認します。
SilentlyContinue 列挙定数 PowerShell ランタイムは処理を続行し、アクションが発生してもユーザーに通知しません。
Stop 列挙定数 アクションが発生すると、PowerShell ランタイムは処理を停止します。

PowerShell では、この型は System.Management.Automation.ActionPreference です。

4.2.6.2 Confirm-Impact 型

この実装定義型には、次の相互に排他的な値を持つアクセス可能なメンバーが含まれます。

メンバー メンバーの種類 目的
列挙定数 データが失われるリスクが高いアクションが実行されます (ハード ディスクの再フォーマットなど)。
列挙定数 データが失われるリスクが低いアクションが実行されます。
Medium 列挙定数 データが失われるリスクが中程度のアクションが実行されます。
None 列挙定数 どのアクションも確認しません (すべての確認要求を抑制します)。

PowerShell では、この型は System.Management.Automation.ConfirmImpact です。

4.2.6.3 File-Attributes 型

この実装定義型には、次のアクセス可能なメンバーが含まれ、それらを組み合わせることができます。

メンバー メンバーの種類 目的
Archive 列挙定数 ファイルのアーカイブの状態。 アプリケーションでは、この属性を使用して、バックアップまたは削除の対象にファイルをマークします。
Compressed 列挙定数 ファイルは圧縮ファイルです。
Device 将来利用するために予約されています。
ディレクトリ 列挙定数 ファイルはディレクトリです。
暗号化 列挙定数 ファイルまたはディレクトリは暗号化されています。 ファイルの場合は、ファイルのすべてのデータが暗号化されています。 ディレクトリの場合は、新規作成されるファイルおよびディレクトリが既定で暗号化されます。
[非表示] 列挙定数 ファイルは隠しファイルです。したがって通常のディレクトリ リストには表示されません。
Normal 列挙定数 ファイルは通常のものであり、他の属性は設定されていません。 この属性は、単独で使用された場合にのみ有効です。
NotContentIndexed 列挙定数 ファイルは、オペレーティング システムによるコンテンツ インデックス サービスでインデックスされません。
オフライン 列挙定数 ファイルはオフラインです。 オフラインのファイルのデータは、即時には使用できません。
ReadOnly 列挙定数 ファイルが読み取り専用です。
ReparsePoint 列挙定数 ファイルには、ファイルまたはディレクトリに関連付けられたユーザー定義のデータ ブロックである、リパース ポイントが含まれています。
SparseFile 列挙定数 ファイルはスパース ファイルです。 スパース ファイルは、通常、データの大部分が 0 である大きなファイルです。
システム 列挙定数 ファイルはシステム ファイルです。 ファイルはオペレーティング システムの一部であるか、オペレーティング システムによって排他的に使用されます。
一時 列挙定数 一時ファイルです。 ファイル システムは、データを大容量ストレージにフラッシュするのではなく、すべてのデータをメモリに保持するよう試みて、すばやくアクセスできるようにします。 一時ファイルが不要になったら、アプリケーションが直ちに削除する必要があります。

PowerShell では、この型は属性 FlagsAttribute を持つ System.IO.FileAttributes です。

4.2.6.4 Regular-Expression-Option 型

この実装定義型には、次のアクセス可能なメンバーが含まれ、それらを組み合わせることができます。

メンバー メンバーの種類 目的
IgnoreCase 列挙定数 照合で大文字と小文字を区別しないことを指定します。
None 列挙定数 オプションが何も設定されないことを指定します。

実装によって、他の値が提供される場合があります。

PowerShell では、この型は FlagsAttribute 属性を持つ System.Text.RegularExpressions.RegexOptions です。 追加の値として、CompiledCultureInvariantECMAScriptExplicitCaptureIgnorePatternWhitespaceMultilineRightToLeftSingleline が定義されています。

4.3 参照型

4.3.1 文字列

文字列値は string 型で、char 型の 0 個以上の文字の変更できないシーケンスであり、それぞれに UTF-16 でエンコードされた 16 ビットの Unicode コード ポイントが含まれます。

string 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
長さ インスタンス プロパティ int (読み取り専用) 文字列の文字数を取得します
ToLower インスタンス メソッド string 対応する小文字が含まれる新しい文字列を作成します
ToUpper インスタンス メソッド string 対応する大文字が含まれる新しい文字列を作成します

PowerShell では、stringSystem.String にマップされます。

4.3.2 配列

すべての配列型は、Array 型から派生します。 この型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
長さ インスタンス プロパティ (読み取り専用) INT 配列内の要素の数
順位 インスタンス プロパティ (読み取り専用) INT 配列の次元数
コピー 静的メソッド void/目的列を参照

ある配列から別の配列に要素の範囲をコピーします。 4 つのバージョンがあり、source はコピー元の配列、destination はコピー先の配列、count はコピーする要素の数、sourceIndexdestinationIndex はそれぞれの配列での開始位置です。

Copy(source, destination, int count)
Copy(source, destination, long count)
Copy(source, sourceIndex, destination, destinationIndex, int count)
Copy(source, sourceIndex, destination, destinationIndex, long count)

GetLength インスタンス メソッド (読み取り専用) int/なし

特定の次元の要素の数

GetLength(int dimension)

配列の詳細については、§9 を参照してください。

PowerShell では、ArraySystem.Array にマップされます。

4.3.3 ハッシュテーブル

Hashtable 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
Count インスタンス プロパティ INT Hashtable のキーと値のペアの数を取得します
[キー] インスタンス プロパティ 実装定義 すべてのキーのコレクションを取得します
インスタンス プロパティ 実装定義 すべての値のコレクションを取得します
削除 インスタンス メソッド void/なし 指定されたキーと値を削除します

ハッシュテーブルの詳細については、§10 を参照してください。

PowerShell では、HashtableSystem.Collections.Hashtable にマップされます。 Hashtable 要素は DictionaryEntry 型のオブジェクトに格納され、Keys と Values によって返されるコレクションは ICollection 型です。

4.3.4 xml 型

xml 型は、W3C ドキュメント オブジェクト モデル (DOM) の Level 1 Core と Core DOM Level 2 を実装します。 DOM は、XML ドキュメントのメモリ内 (キャッシュ) ツリー表現であり、このドキュメントのナビゲーションと編集を可能にします。 この型では、添字演算子 (§7.1.4.4) がサポートされます。

PowerShell では、xmlSystem.Xml.XmlDocument にマップされます。

4.3.5 regex 型

regex 型では、正規表現の処理をサポートするための仕組みが提供されます。 対応する引数に正規表現が含まれている可能性があるパラメーター (§5.3) の型を制限するために使用されます。

PowerShell では、regexSystem.Text.RegularExpressions.Regex にマップされます。

4.3.6 ref 型

通常、引数は値でコマンドに渡されます。 値型を持つ引数の場合は、値のコピーが渡されます。 参照型を持つ引数の場合は、参照のコピーが渡されます。

ref 型は、引数を参照でコマンドに渡すことにより、コマンドで引数の値を変更できるようにする仕組みを提供します。 ref 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
インスタンス プロパティ (読み取り/書き込み) 参照される値の型。 参照される値を取得または設定します。

次のような関数定義と呼び出しを考えてください。

function Doubler {
    param ([ref]$x) # parameter received by reference
    $x.Value *= 2.0 # note that 2.0 has type double
}

$number = 8 # designates a value of type int, value 8
Doubler([ref]$number) # argument received by reference
$number # designates a value of type double, value 8.0

$number が型制約されている場合を考えてください。

[int]$number = 8 # designates a value of type int, value 8
Doubler([ref]$number) # argument received by reference
$number # designates a value of type int, value 8

示されているように、引数とそれに対応するパラメーターの両方を、ref と宣言する必要があります。

PowerShell では、refSystem.Management.Automation.PSReference にマップされます。

4.3.7 scriptblock 型

scriptblock 型は、1 つの単位として使用できるスクリプト テキスト (§7.1.8) のプリコンパイル済みブロックを表します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
属性 インスタンス プロパティ (読み取り専用) 属性のコレクション スクリプト ブロックの属性を取得します。
ファイル インスタンス プロパティ (読み取り専用) string スクリプト ブロックが定義されているファイルの名前を取得します。
モジュール インスタンス プロパティ (読み取り専用) 実装定義 ([§4.5.12][§4.5.12]) スクリプト ブロックが定義されているモジュールに関する情報を取得します。
GetNewClosure インスタンス メソッド scriptblock
/なし
モジュールにバインドされているスクリプト ブロックを取得します。 呼び出し元のコンテキスト内にあるすべてのローカル変数がモジュールにコピーされます。
Invoke インスタンス メソッド object/object[] のコレクション 指定された引数を使用してスクリプト ブロックを呼び出し、結果を返します。
InvokeReturnAsIs インスタンス メソッド object/object[] 指定された引数を使用してスクリプト ブロックを呼び出し、生成されたすべてのオブジェクトを返します。
作成 静的メソッド scriptblock
/string
指定されたスクリプトを含む新しい scriptblock オブジェクトを作成します。

PowerShell では、scriptblockSystem.Management.Automation.ScriptBlock にマップされます。 Invoke からは PsObject のコレクションが返されます。

4.3.8 math 型

math 型を使用すると、数学的計算に役立つ定数とメソッドにアクセスできます。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
E 静的プロパティ (読み取り専用) double 自然対数の底
PI 静的プロパティ (読み取り専用) double 円の直径に対する円周の比率
Abs 静的メソッド numeric/numeric 絶対値 (戻り値の型は、渡された引数の型と同じです)
Acos 静的メソッド double/double コサインが指定された値になる角度
Asin 静的メソッド double/double サインが指定された値になる角度
Atan 静的メソッド double/double タンジェントが指定された値になる角度
Atan2 静的メソッド double/double y、double x タンジェントが指定された 2 つの値 xy の商になる角度
Ceiling 静的メソッド

decimal/decimal

double/double

指定された値以上で最小の整数
Cos 静的メソッド double/double 指定された角度のコサイン
Cosh 静的メソッド double/double 指定された角度の双曲線コサイン
Exp 静的メソッド double/double 指定された値で e を累乗した値
静的メソッド

decimal/decimal

double/double

指定された値以下で最大の整数
ログ 静的メソッド

double/double number

double/double number、double base

base e または base base を使用した number の対数
Log10 静的メソッド double/double 指定された数値の底が 10 の対数
Max 静的メソッド numeric/numeric 指定された 2 つの数値のうち大きい方 (戻り値の型は、渡された引数の型と同じです)
Min 静的メソッド numeric/numeric、numeric 指定された 2 つの数値のうち小さい方 (戻り値の型は、渡された引数の型と同じです)
Pow 静的メソッド double/double x、double y 指定された数値 xy 乗した値
Sin 静的メソッド double/double 指定された角度のサイン
Sinh 静的メソッド double/double 指定された角度の双曲線サイン
Sqrt 静的メソッド double/double 指定された数値の平方根
Tan 静的メソッド double/double 指定された角度のタンジェント
Tanh 静的メソッド double/double 指定された角度の双曲線タンジェント

PowerShell では、MathSystem.Math にマップされます。

4.3.9 ordered 型

ordered 型は、変換にのみ使用される擬似型です。

4.3.10 pscustomobject 型

pscustomobject 型は、変換にのみ使用される擬似型です。

4.4 ジェネリック型

多くのプログラミング言語と環境には、"特殊化" できる型が用意されています。 これらの型の多くは、そのインスタンスが他の型のオブジェクトを格納できるため、"コンテナー型" と呼ばれています。 値のスタックを表すことができる Stack という名前の型を考えます。これは、プッシュしてポップすることができます。 通常、スタックのユーザーは、そのスタックに 1 種類のオブジェクトだけを格納する必要があります。 しかし、言語または環境で型の特殊化がサポートされていない場合は、すべてが同じタスクを実行し、型の要素だけが異なる場合であっても、Stack 型の複数の異なるバリエーションを実装する必要があります。

型の特殊化を使用すると、"ジェネリック型" を実装して、使用時に型の一部のサブセットを処理するように制限することができます。 たとえば、次のように入力します。

  • 文字列を保持するように特殊化されたジェネリック スタック型は、Stack[string] のように記述される場合があります。
  • 整数キーとそれに関連する文字列値を保持するように特殊化されたジェネリック ディクショナリ型は、Dictionary[int,string] のように記述される場合があります。
  • 文字列のスタックのスタックは、Stack[Stack[string]] のように記述される場合があります。

PowerShell では、組み込みのジェネリック型は定義されていませんが、ホスト環境によって提供されている場合は、そのような型を使用できます。 構文については §7.1.10 を参照してください。

上で示されている Stack[string] 型の完全な名前は System.Collections.Generic.Stack[string] です。 上で示されている Dictionary[int,string] 型の完全な名前は System.Collections.Generic.Dictionary[int,string] です。

4.5 匿名型

場合によっては、PowerShell の実装によって何らかの型のオブジェクトが作成され、それらのオブジェクトにスクリプトでアクセスできるメンバーが含まれることがあります。 ただし、使用するアクセス可能なメンバーを指定するのに十分であれば、それらの型の実際の名前を指定する必要はありません。 つまり、スクリプトでそれらの型のオブジェクトを保存し、それらの型の名前を実際に知らなくてもメンバーにアクセスできます。 以下のサブセクションでは、そのような型を指定します。

4.5.1 プロバイダー記述型

この型は、プロバイダーの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
ドライブ インスタンス プロパティ (読み取り専用) 実装定義 (§4.5.2) ドライブ記述オブジェクトのコレクション
名前 インスタンス プロパティ (読み取り専用) string プロバイダーの名前です。

PowerShell では、この型は System.Management.Automation.ProviderInfo です。

4.5.2 ドライブ記述型

この型は、ドライブの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
CurrentLocation インスタンス プロパティ (読み取り/書き込み) string ドライブの現在の作業場所 (§3.1.4)
Description インスタンス プロパティ (読み取り/書き込み) string ドライブの説明
名前 インスタンス プロパティ (読み取り専用) string ドライブの名前
Root インスタンス プロパティ (読み取り専用) string ドライブの名前

PowerShell では、この型は System.Management.Automation.PSDriveInfo です。

4.5.3 変数記述型

この型は、変数の状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
属性 インスタンス プロパティ (読み取り専用) 実装定義 属性のコレクション。
Description インスタンス プロパティ (読み取り/書き込み) string New-Variable または Set-Variable コマンドレットによって変数に割り当てられた説明。
モジュール インスタンス プロパティ (読み取り専用) 実装定義 (§4.5.12) この変数がエクスポートされたモジュール
ModuleName インスタンス プロパティ (読み取り専用) string この変数が定義されたモジュール
名前 インスタンス プロパティ (読み取り専用) string PowerShell 言語または New-VariableSet-Variable とコマンドレットで変数が作成されたときに割り当てられた名前。
Options インスタンス プロパティ (読み取り/書き込み) string New-Variable および Set-Variable コマンドレットを使用して変数に割り当てられたオプション。
インスタンス プロパティ (読み取り/書き込み) object PowerShell 言語または New-VariableSet-Variable とコマンドレットで変数に割り当てられた値。

PowerShell では、この型は System.Management.Automation.PSVariable です。

Windows PowerShell: 属性コレクションの型は System.Management.Automation.PSVariableAttributeCollection です。

4.5.4 エイリアス記述型

この型は、エイリアスの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
CommandType インスタンス プロパティ (読み取り専用) 実装定義 "Alias" と等しいかどうか比較する必要があります。
定義 インスタンス プロパティ (読み取り専用) string New-Alias または Set-Alias コマンドレットによってエイリアスが割り当てられたコマンドまたはエイリアス。
Description インスタンス プロパティ (読み取り/書き込み) string New-Alias または Set-Alias コマンドレットによってエイリアスに割り当てられた説明。
モジュール インスタンス プロパティ (読み取り専用) 実装定義 (§4.5.12) このエイリアスがエクスポートされたモジュール
ModuleName インスタンス プロパティ (読み取り専用) string このエイリアスが定義されたモジュール
名前 インスタンス プロパティ (読み取り専用) string New-Alias または Set-Alias コマンドレットによって作成されたときにエイリアスに割り当てられた名前。
Options インスタンス プロパティ (読み取り/書き込み) string New-Alias または Set-Alias コマンドレットによってエイリアスに割り当てられたオプション。
OutputType インスタンス プロパティ (読み取り専用) 実装定義のコレクション エイリアスが参照するコマンドによって出力される値の型を指定します。
パラメーター インスタンス プロパティ (読み取り専用) 実装定義のコレクション コマンドのパラメーター。
ParameterSets インスタンス プロパティ (読み取り専用) 実装定義のコレクション コマンドに関連付けられているパラメーター セットに関する情報。
ReferencedCommand インスタンス プロパティ (読み取り専用) 実装定義 このエイリアスによって直接参照されるコマンドに関する情報。
ResolvedCommand インスタンス プロパティ (読み取り専用) 実装定義 エイリアスが最終的に解決されるコマンドに関する情報。

PowerShell では、この型は System.Management.Automation.AliasInfo です。

4.5.5 作業場所記述型

この型は、作業場所の状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
ドライブ インスタンス プロパティ (読み取り専用) 実装定義 (§4.5.2) ドライブ記述オブジェクト
パス インスタンス プロパティ (読み取り専用) string 作業場所
プロバイダー インスタンス プロパティ (読み取り専用) 実装定義 (§4.5.1) プロバイダー
ProviderPath インスタンス プロパティ (読み取り専用) string プロバイダーの現在のパス

作業場所のスタックは、前に説明したように、作業場所オブジェクトのコレクションです。

PowerShell では、現在の作業場所は System.Management.Automation.PathInfo 型のオブジェクトによって表されます。 作業場所のスタックは、System.Management.Automation.PathInfoStack 型のオブジェクトによって表され、これは PathInfo オブジェクトのコレクションです。

4.5.6 環境変数記述型

この型は、環境変数の状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
名前 インスタンス プロパティ (読み取り/書き込み) string 環境変数の名前
インスタンス プロパティ (読み取り/書き込み) string 環境変数の値

PowerShell では、この型は System.Collections.DictionaryEntry です。 変数の名前はディクショナリ キーです。 環境変数の値はディクショナリ値です。 Name は、Key に相当する AliasProperty です。

4.5.7 アプリケーション記述型

この型は、アプリケーションの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
CommandType インスタンス プロパティ (読み取り専用) 実装定義 "Application" と等しいかどうか比較する必要があります。
定義 インスタンス プロパティ (読み取り専用) string アプリケーションの記述。
拡張機能 インスタンス プロパティ (読み取り/書き込み) string アプリケーション ファイルの拡張子。
モジュール インスタンス プロパティ (読み取り専用) 実装定義 (§4.5.12) このコマンドが定義されているモジュール。
ModuleName インスタンス プロパティ (読み取り専用) string コマンドが定義されているモジュールの名前。
名前 インスタンス プロパティ (読み取り専用) string コマンドの名前。
OutputType インスタンス プロパティ (読み取り専用) 実装定義のコレクション コマンドによって出力される値の型を指定します。
パラメーター インスタンス プロパティ (読み取り専用) 実装定義のコレクション コマンドのパラメーター。
ParameterSets インスタンス プロパティ (読み取り専用) 実装定義のコレクション コマンドに関連付けられているパラメーター セットに関する情報。
パス インスタンス プロパティ (読み取り専用) string アプリケーション ファイルのパスを取得します。

PowerShell では、この型は System.Management.Automation.ApplicationInfo です。

4.5.8 コマンドレット記述型

この型は、コマンドレットの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
CommandType インスタンス プロパティ (読み取り専用) 実装定義 "Cmdlet" と等しいかどうか比較する必要があります。
DefaultParameterSet インスタンス プロパティ (読み取り専用) 実装定義 指定された引数に基づいて使用するパラメーター セットを PowerShell で決定できない場合に使用される、既定のパラメーター セット。
定義 インスタンス プロパティ (読み取り専用) string コマンドレットの記述。
HelpFile インスタンス プロパティ (読み取り/書き込み) string コマンドレットのヘルプ ファイルへのパス。
ImplementingType インスタンス プロパティ (読み取り/書き込み) 実装定義 コマンドレットが実装されている型。
モジュール インスタンス プロパティ (読み取り専用) 実装定義 (§4.5.12) このコマンドレットが定義されているモジュール。
ModuleName インスタンス プロパティ (読み取り専用) string コマンドレットが定義されているモジュールの名前。
名前 インスタンス プロパティ (読み取り専用) string コマンドレットの名前。
[名詞] インスタンス プロパティ (読み取り専用) string コマンドレットの名詞形式の名前。
OutputType インスタンス プロパティ (読み取り専用) 実装定義のコレクション コマンドレットによって出力される値の型を指定します。
パラメーター インスタンス プロパティ (読み取り専用) 実装定義のコレクション コマンドレットのパラメーター。
ParameterSets インスタンス プロパティ (読み取り専用) 実装定義のコレクション コマンドレットに関連付けられているパラメーター セットに関する情報。
動詞 インスタンス プロパティ (読み取り専用) string コマンドレットの動詞形式の名前。
PSSnapIn インスタンス プロパティ (読み取り専用) 実装定義 Windows PowerShell: コマンドレットの登録に使用される Windows PowerShell スナップインに関する情報。

PowerShell では、この型は System.Management.Automation.CmdletInfo です。

4.5.9 外部スクリプト記述型

この型は、外部スクリプト (PowerShell によって直接実行可能だが、組み込まれてはいないもの) の状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
CommandType インスタンス プロパティ (読み取り専用) 実装定義 "ExternalScript" と等しいかどうか比較する必要があります。
定義 インスタンス プロパティ (読み取り専用) string スクリプトの定義。
モジュール インスタンス プロパティ (読み取り専用) 実装定義 (§4.5.12) このスクリプトが定義されているモジュール。
ModuleName インスタンス プロパティ (読み取り専用) string スクリプトが定義されているモジュールの名前。
名前 インスタンス プロパティ (読み取り専用) string スクリプトの名前。
OriginalEncoding インスタンス プロパティ (読み取り専用) 実装定義 スクリプトの文字をバイトに変換するために使用された元のエンコード。
OutputType インスタンス プロパティ (読み取り専用) 実装定義のコレクション スクリプトによって出力される値の型を指定します。
パラメーター インスタンス プロパティ (読み取り専用) 実装定義のコレクション スクリプトのパラメーター。
ParameterSets インスタンス プロパティ (読み取り専用) 実装定義のコレクション スクリプトに関連付けられているパラメーター セットに関する情報。
パス インスタンス プロパティ (読み取り専用) string スクリプト ファイルへのパス。
スクリプト ブロック インスタンス プロパティ (読み取り専用) scriptblock 外部スクリプト。
ScriptContents インスタンス プロパティ (読み取り専用) string スクリプトの元の内容。

PowerShell では、この型は System.Management.Automation.ExternalScriptInfo です。

4.5.10 関数記述型

この型は、関数の状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
CmdletBinding インスタンス プロパティ (読み取り専用) [bool] コンパイルされたコマンドレットで使用されるのと同じパラメーター バインドを関数が使用するかどうかを示します (§12.3.5 を参照)。
CommandType インスタンス プロパティ (読み取り専用) 実装定義 "Function" または "Filter" と等しいかどうかを比較して、このオブジェクトがそのどちらを表すかを確認できます。
DefaultParameterSet インスタンス プロパティ (読み取り専用) string 引数から決定できない場合に、使用するパラメーター セットを指定します (§12.3.5 を参照)。
定義 インスタンス プロパティ (読み取り専用) string ScriptBlock の文字列バージョン
Description インスタンス プロパティ (読み取り/書き込み) string 関数の説明。
モジュール インスタンス プロパティ (読み取り専用) 実装定義 (§4.5.12) この関数がエクスポートされたモジュール
ModuleName インスタンス プロパティ (読み取り専用) string この関数が定義されたモジュール
名前 インスタンス プロパティ (読み取り専用) string 関数の名前
Options インスタンス プロパティ (読み取り/書き込み) 実装定義 関数のスコープオプション (§3.5.4)。
OutputType インスタンス プロパティ (読み取り専用) 実装定義のコレクション 出力される値の型を順番に指定します (§12.3.6 を参照)。
パラメーター インスタンス プロパティ (読み取り専用) 実装定義のコレクション パラメーター名を順番に指定します。 関数がコマンドレットのように動作する場合 (上の CmdletBinding を参照)、共通パラメーターがコレクションの最後に含まれます。
ParameterSets インスタンス プロパティ (読み取り専用) 実装定義のコレクション コマンドに関連付けられているパラメーター セットに関する情報。 結果では、パラメーターごとに、パラメーターの名前と型、およびパラメーターが必須かどうかが、位置または switch パラメーターによって示されます。 関数がコマンドレットのように動作する場合 (上の CmdletBinding を参照)、共通パラメーターがコレクションの最後に含まれます。
スクリプト ブロック インスタンス プロパティ (読み取り専用) スクリプト ブロック (§4.3.6) 関数の本体

PowerShell では、この型は System.Management.Automation.FunctionInfo です。

  • CommandType には System.Management.Automation.CommandTypes 型があります。
  • Options には System.Management.Automation.ScopedItemOptions 型があります。
  • OutputType には System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]] 型があります。
  • Parameters には System.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]] 型があります。
  • ParameterSets には System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.CommandParameterSetInfo,System.Management.Automation]] 型があります。
  • 可視性は System.Management.Automation.SessionStateEntryVisibility 型です。
  • PowerShell には、Visibility というプロパティもあります。

4.5.11 フィルター記述型

この型は、フィルターの状態をカプセル化します。 関数記述型 (§4.5.10) と同じアクセス可能なメンバーのセットを持ちます。

PowerShell では、この型は System.Management.Automation.FilterInfo です。 プロパティのセットは System.Management.Automation.FunctionInfo (§4.5.11) と同じです。

4.5.12 モジュール記述型

この型は、モジュールの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
Description インスタンス プロパティ (読み取り/書き込み) string モジュールの説明 (マニフェストによって設定されます)
ModuleType インスタンス プロパティ (読み取り専用) 実装定義 モジュールの型 (マニフェスト、スクリプト、またはバイナリ)
名前 インスタンス プロパティ (読み取り専用) string モジュールの名前
パス インスタンス プロパティ (読み取り専用) string モジュールのパス

PowerShell では、この型は System.Management.Automation.PSModuleInfo です。 ModuleType の型は System.Management.Automation.ModuleType です。

4.5.13 カスタム オブジェクト記述型

この型は、カスタム オブジェクトの状態をカプセル化します。 アクセス可能なメンバーはありません。

PowerShell では、この型は System.Management.Automation.PSCustomObject です。 この型のオブジェクトは、コマンドレット Import-ModuleNew-Object で生成できます。

4.5.14 コマンド記述型

自動変数 $PsCmdlet は、実行されているコマンドレットまたは関数を表すオブジェクトです。 このオブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
ParameterSetName インスタンス プロパティ (読み取り専用) string 現在のパラメーター セットの名前 (ParameterSetName を参照)
ShouldContinue インスタンス メソッド

過負荷

/bool

ユーザーに操作の確認を要求します。
ShouldProcess インスタンス メソッド

過負荷

/bool

操作を実行する前に、ユーザーに確認を要求します。

PowerShell では、この型は System.Management.Automation.PSScriptCmdlet です。

4.5.15 エラー レコード記述型

自動変数 $Error には、最近のエラーを表すエラー レコードのコレクションが含まれます (§3.12)。 このコレクションの型は指定されていませんが、個々のエラー レコードにアクセスするための添字の指定がサポートされています。

PowerShell では、コレクション型は System.Collections.ArrayList です。 コレクション内の個々のエラー レコードの型は System.Management.Automation.ErrorRecord です。 この型には次のパブリック プロパティがあります。

  • CategoryInfo - エラーのカテゴリに関する情報を取得します。
  • ErrorDetails - 置換エラー メッセージなど、より詳細なエラー情報を取得および設定します。
  • Exception - このエラー レコードに関連付けられている例外を取得します。
  • FullyQualifiedErrorId - このエラー レコードの完全修飾エラー識別子を取得します。
  • InvocationInfo - エラーが発生したときに呼び出されていたコマンドに関する情報を取得します。
  • PipelineIterationInfo - このエラー レコードが作成されたときのパイプラインの状態を取得します
  • TargetObject - エラーが発生したときに処理されていたオブジェクトを取得します。

4.5.16 列挙子記述型

多くの変数は、コレクションの列挙子です (§4)。 自動変数 $foreach は、任意の foreach ステートメントに対して作成される列挙子です。 自動変数 $input は、パイプラインから関数に提供されるコレクションの列挙子です。 自動変数 $switch は、任意の switch ステートメントに対して作成される列挙子です。

列挙子の型は実装定義です。次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
Current インスタンス プロパティ (読み取り専用) object コレクション内の現在の要素を取得します。 列挙子がコレクションの要素に現在配置されていない場合、動作は実装定義です。
MoveNext インスタンス メソッド なし/bool 列挙子をコレクションの次の要素に進めます。 列挙子が次の要素に正常に進んだ場合は $true、列挙子がコレクションの末尾を越えた場合は $false が返されます。

PowerShell では、これらのメンバーは System.IEnumerator インターフェイスで定義されています。これは、次に示す型によって実装されます。 列挙子がコレクションの要素に現在配置されていない場合は、InvalidOperationException 型の例外が発生します。 $foreach の場合、この型は System.Array+SZArrayEnumerator です。 $input の場合、この型は System.Collections.ArrayList+ArrayListEnumeratorSimple です。 $switch の場合、この型は System.Array+SZArrayEnumerator です。

4.5.17 ディレクトリ記述型

FileSystem ディレクトリなどのさまざまな種類の項目を、コマンドレット New-Item で作成できます。 ディレクトリ記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
属性 インスタンス プロパティ (読み取り/書き込み) 実装定義 (§4.2.6.3) ディレクトリ オブジェクトの 1 つ以上の属性を取得または設定します。
CreationTime インスタンス プロパティ (読み取り/書き込み) 実装定義 (§4.5.19) ディレクトリ オブジェクトの作成日時を取得および設定します。
拡張機能 インスタンス プロパティ (読み取り専用) string ディレクトリ名の拡張部分を取得します。
FullName インスタンス プロパティ (読み取り専用) string ディレクトリの絶対パスを取得します。
最終書き込み時刻 インスタンス プロパティ (読み取り/書き込み) 実装定義 (§4.5.19) ディレクトリが最後に書き込まれた日時を取得および設定します。
名前 インスタンス プロパティ (読み取り専用) string ディレクトリの名前を取得します。

PowerShell では、この型は System.IO.DirectoryInfo です。 Attributes プロパティの型は System.IO.FileAttributes です。

4.5.18 ファイル記述型

New-Item コマンドレットを使用すると、FileSystem ファイルなどのさまざまな種類の項目を作成できます。 ファイル記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
属性 インスタンス プロパティ (読み取り/書き込み) 実装定義 (§4.2.6.3) ファイル オブジェクトの 1 つ以上の属性を取得または設定します。
BaseName インスタンス プロパティ (読み取り専用) string 拡張子を除いたファイルの名前を取得します。
CreationTime インスタンス プロパティ (読み取り/書き込み) 実装定義 (§4.5.19) ファイル オブジェクトの作成日時を取得および設定します。
拡張機能 インスタンス プロパティ (読み取り専用) string ファイル名の拡張部分を取得します。
FullName インスタンス プロパティ (読み取り専用) string ファイルの完全なパスを取得します。
最終書き込み時刻 インスタンス プロパティ (読み取り/書き込み) 実装定義 (§4.5.19) ファイルが最後に書き込まれた日時を取得および設定します。
長さ インスタンス プロパティ (読み取り専用) long ファイルのサイズ (バイト単位) を取得します。
名前 インスタンス プロパティ (読み取り専用) string ファイルの名前を取得します。
VersionInfo インスタンス プロパティ (読み取り専用) 実装定義 Windows PowerShell: この ScriptProperty からは、ファイルの System.Diagnostics.FileVersionInfo が返されます。

PowerShell では、この型は System.IO.FileInfo です。

4.5.19 日時記述型

日時記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
日間 インスタンス プロパティ (読み取り専用) INT このインスタンスで表される月の日の部分を取得します。
時間 インスタンス プロパティ (読み取り専用) INT このインスタンスで表される日付の時間の部分を取得します。
インスタンス プロパティ (読み取り専用) INT このインスタンスで表される日付の分の部分を取得します。
Month インスタンス プロパティ (読み取り専用) INT このインスタンスで表される日付の月の部分を取得します。
Second インスタンス プロパティ (読み取り専用) INT このインスタンスで表される日付の秒の部分を取得します。
Year インスタンス プロパティ (読み取り専用) INT このインスタンスで表される日付の年の部分を取得します。

この型のオブジェクトは、Get-Date コマンドレットで作成できます。

PowerShell では、この型は System.DateTime です。

4.5.20 グループ情報記述型

グループ情報 記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
Count インスタンス プロパティ (読み取り専用) INT グループ内の要素の数を取得します。
グループ インスタンス プロパティ (読み取り専用) 実装定義のコレクション グループの要素を取得します。
名前 インスタンス プロパティ (読み取り専用) string グループの名前を取得します。
インスタンス プロパティ (読み取り専用) 実装定義のコレクション グループの要素の値を取得します。

この型のオブジェクトは、Group-Object コマンドレットで作成できます。

PowerShell では、この型は Microsoft.PowerShell.Commands.GroupInfo です。

4.5.21 ジェネリック メジャー情報記述型

ジェネリック メジャー情報 記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
平均 インスタンス プロパティ (読み取り専用) double 測定されたプロパティの値の平均を取得します。
Count インスタンス プロパティ (読み取り専用) INT 指定されたプロパティを持つオブジェクトの数を取得します。
最大値 インスタンス プロパティ (読み取り専用) double 指定されたプロパティの最大値を取得します。
最小値 インスタンス プロパティ (読み取り専用) double 指定されたプロパティの最小値を取得します。
プロパティ インスタンス プロパティ (読み取り専用) string 測定するプロパティを取得します。
SUM インスタンス プロパティ (読み取り専用) double 指定されたプロパティの値の合計を取得します。

この型のオブジェクトは、Measure-Object コマンドレットで作成できます。

PowerShell では、この型は Microsoft.PowerShell.Commands.GenericMeasureInfo です。

4.5.22 テキスト メジャー情報記述型

テキスト情報 記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
文字 インスタンス プロパティ (読み取り専用) INT ターゲット オブジェクト内の文字数を取得します。
路線 インスタンス プロパティ (読み取り専用) INT ターゲット オブジェクト内の行数を取得します。
プロパティ インスタンス プロパティ (読み取り専用) string 測定するプロパティを取得します。
Words インスタンス プロパティ (読み取り専用) INT ターゲット オブジェクト内の単語数を取得します。

この型のオブジェクトは、Measure-Object コマンドレットで作成できます。

PowerShell では、この型は Microsoft.PowerShell.Commands.TextMeasureInfo です。

4.5.23 資格情報型

資格情報オブジェクトは、さまざまなセキュリティ操作で使用できます。 資格情報オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
Password インスタンス プロパティ (読み取り専用) 実装定義 パスワードを取得します。
UserName インスタンス プロパティ (読み取り専用) string ユーザー名を取得します。

この型のオブジェクトは、Get-Credential コマンドレットで作成できます。

PowerShell では、この型は System.Management.Automation.PSCredential です。

4.5.24 メソッド指定子型

メソッド指定子の型は実装定義です。次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
Invoke インスタンス メソッド object/可変の数と型 可変数の引数を受け取り、親メソッド指定子によって参照されるメソッドを間接的に呼び出して、引数を渡します。

この型のオブジェクトは、"呼び出し式" (§7.1.3) で作成できます。

PowerShell では、この型は System.Management.Automation.PSMethod です。

4.5.25 メンバー定義型

この型は、メンバーの定義をカプセル化します。 それには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 Type 目的
定義 インスタンス プロパティ (読み取り専用) string メンバーの定義を取得します。
MemberType インスタンス プロパティ (読み取り専用) 実装定義 メンバーの PowerShell 型を取得します。
名前 インスタンス プロパティ (読み取り専用) string メンバーの名前を取得します。
TypeName インスタンス プロパティ (読み取り専用) string メンバーの型名を取得します。

PowerShell では、この型は Microsoft.PowerShell.Commands.MemberDefinition です。

4.6 型の拡張と適応

PowerShell の実装には、コア型のファミリ (この章で説明します) が含まれており、それぞれに固有の "基本メンバー" のセットが含まれます。 それらのメンバーはメソッドまたはプロパティであり、インスタンス メンバーと静的メンバーがあります。 たとえば、string 型 (§4.3.1) の基本メンバーは、インスタンス プロパティ Length とインスタンス メソッド ToLower および ToUpper です。

作成されたオブジェクトには、そのオブジェクトの型のすべてのインスタンス プロパティが含まれ、その型のインスタンス メソッドをそのオブジェクトで呼び出すことができます。 実行時にインスタンス メンバーを追加することで、オブジェクトをカスタマイズできます。 その結果は "カスタム オブジェクト" と呼ばれます。 インスタンスに追加されたメンバーは、そのインスタンスの有効期間だけ存在します。同じコア型の他のインスタンスは影響を受けません。

型の基本メンバー セットは、次の種類のメンバーを追加することで拡張できます。

  • "適応メンバー"。"拡張型システム" (ETS) によるもので、その詳細のほとんどは指定されていません。
  • "拡張メンバー"。Add-Member コマンドレットによるもの。

PowerShell では、types.ps1xml ファイルを使用して拡張メンバーを追加することもできます。 適応メンバーと拡張メンバーは、総称して 合成 "メンバー" と呼ばれます。

ETS により、すべての PowerShell オブジェクトに次のメンバーが追加されます: psbasepsadaptedpsextendedpstypenames。 これらのメンバーの詳細については、Get-Member コマンドレットの Force パラメーターと View パラメーターを参照してください。

インスタンス メンバーにより、同じ名前の拡張メンバーや適応メンバーが隠ぺいされたり、拡張メンバーによって適応メンバーが隠ぺいされたりする場合があります。 そのような場合は、メンバー セット psadaptedpsextended を使用して、それらの隠ぺいされたメンバーにアクセスできます。

types.ps1xmlSupports という名前のメンバーが指定されている場合、obj.psextended を使用するとそのメンバーだけにアクセスでき、Add-Member によって追加されたメンバーにはアクセスできません。

新しいメンバー M を持つカスタム オブジェクトを作成するには、次の 3 つの方法があります。

  1. この方法を使用すると、1 つ以上の NoteProperty メンバーを追加できます。

    $x = New-Object PsObject -Property @{M = 123}`
    
  2. この方法を使用すると、NoteProperty または ScriptMethod メンバーを追加できます。

    $x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}`
    
  3. この方法を使用すると、任意の種類のメンバーを追加できます。

    $x = New-Object PsObject
    Add-Member -InputObject $x -Name M -MemberType NoteProperty -Value 123
    

PsObject は、PowerShell のすべての型の基本データ型です。