Import-Clixml
CLIXML ファイルをインポートし、PowerShell で対応するオブジェクトを作成します。
構文
Import-Clixml
[-Path] <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Import-Clixml
-LiteralPath <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
説明
コマンドレットは Import-Clixml
、シリアル化されたオブジェクトを共通言語インフラストラクチャ (CLI) XML ファイルにインポートします。 Windows コンピューターでの重要な用途 Import-Clixml
は、セキュリティで保護された XML としてエクスポートされた資格情報とセキュリティで保護された文字列を Export-Clixml
インポートすることです。
例 2 は、セキュリティで保護された資格情報オブジェクトを Import-Clixml
インポートする方法を示しています。
CLIXML データは PowerShell オブジェクトに逆シリアル化されます。 ただし、逆シリアル化されたオブジェクトはライブ オブジェクトではありません。 これらは、シリアル化時のオブジェクトのスナップショットです。 逆シリアル化されたオブジェクトにはプロパティが含まれますが、メソッドは含まれていません。
TypeNames プロパティには、プレフィックスが付いた元の型名がDeserialized
含まれています。
例 3 は、 逆シリアル化されたオブジェクトの TypeNames プロパティを示しています。
Import-Clixml
では、バイトオーダー マーク (BOM) を使用してファイルのエンコード形式を検出します。 ファイルに BOM がない場合は、エンコードが UTF8 であると見なされます。
CLI の詳細については、「言語の独立」を参照してください。
例
例 1: シリアル化されたファイルをインポートし、オブジェクトを再作成する
この例では、コマンドレットを Export-Clixml
使用して、返されるプロセス情報のシリアル化されたコピーを Get-Process
保存します。 Import-Clixml
は、シリアル化されたファイルの内容を取得し、変数に格納されているオブジェクトを $Processes
再作成します。
Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml
例 2: セキュリティで保護された資格情報オブジェクトをインポートする
この例では、コマンドレットを実行Get-Credential
して変数に$Credential
格納した資格情報を指定すると、コマンドレットをExport-Clixml
実行して資格情報をディスクに保存できます。
重要
Export-Clixml
は、Windows で暗号化された資格情報のみをエクスポートします。 macOS や Linux などの Windows 以外のオペレーティング システムでは、資格情報はプレーン テキストでエクスポートされます。
$Credxmlpath = Join-Path (Split-Path $Profile) TestScript.ps1.credential
$Credential | Export-Clixml $Credxmlpath
$Credxmlpath = Join-Path (Split-Path $Profile) TestScript.ps1.credential
$Credential = Import-Clixml $Credxmlpath
このコマンドレットは Export-Clixml
、Windows Data Protection API を使用して資格情報オブジェクトを暗号化します。 暗号化により、ユーザー アカウントのみが資格情報オブジェクトの内容を暗号化解除できるようになります。 エクスポートされた CLIXML
ファイルは、別のコンピューターや別のユーザーで使用することはできません。
この例では、資格情報が格納されているファイルは TestScript.ps1.credential
. TestScript を、資格情報を読み込むスクリプトの名前に置き換えます。
パイプラインの下に資格情報オブジェクトを Export-Clixml
送信し、 $Credxmlpath
最初のコマンドで指定したパスに保存します。
資格情報をスクリプトに自動的にインポートするには、最後の 2 つのコマンドを実行します。 実行 Import-Clixml
して、セキュリティで保護された資格情報オブジェクトをスクリプトにインポートします。 このインポートにより、スクリプト内のプレーンテキスト パスワードが公開されるリスクがなくなります。
例 3: 逆シリアル化されたオブジェクトの TypeNames プロパティを調べる
この例では、CLIXML データとして格納されているオブジェクトのインポートを示します。 データは PowerShell オブジェクトに逆シリアル化されます。 ただし、逆シリアル化されたオブジェクトはライブ オブジェクトではありません。 これらは、シリアル化時のオブジェクトのスナップショットです。 逆シリアル化されたオブジェクトにはプロパティが含まれますが、メソッドは含まれていません。
$original = [pscustomobject] @{
Timestamp = Get-Date
Label = 'Meeting event'
}
$original | Add-Member -MemberType ScriptMethod -Name GetDisplay -Value {
'{0:yyyy-MM-dd HH:mm} {1}' -f $this.Timestamp, $this.Label
}
$original | Get-Member -MemberType ScriptMethod
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Label NoteProperty string Label=Meeting event
Timestamp NoteProperty System.DateTime Timestamp=1/31/2024 2:27:59 PM
GetDisplay ScriptMethod System.Object GetDisplay();
$original | Export-Clixml -Path event.clixml
$deserialized = Import-CliXml -Path event.clixml
$deserialized | Get-Member
TypeName: Deserialized.System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Label NoteProperty string Label=Meeting event
Timestamp NoteProperty System.DateTime Timestamp=1/31/2024 2:27:59 PM
オブジェクト $original
の型は System.Management.Automation.PSCustomObject ですが、オブジェクトの $deserialized
型は Deserialized.System.Management.Automation.PSCustomObject であることに注意してください。 また、 GetDisplay()
逆シリアル化されたオブジェクトにメソッドがありません。
パラメーター
-First
指定された数のオブジェクトのみを取得します。 取得するオブジェクトの数を入力します。
Type: | UInt64 |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IncludeTotalCount
データ セット内のオブジェクトの合計数を報告し、その後に選択したオブジェクトを報告します。 コマンドレットが合計カウントを特定できない場合は、不明な合計カウントが表示されます。 整数には、 合計カウント値の信頼性を示す Accuracy プロパティがあります。 Accuracy の値の範囲1.0
0.0
0.0
は、コマンドレットがオブジェクトをカウントできなかったことを意味し、1.0
カウントが正確であることを意味し、その間0.0
の値と1.0
信頼性の高い推定値を示します。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
XML ファイルへのパスを指定します。 Path とは異なり、LiteralPath パラメーターの値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
XML ファイルへのパスを指定します。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Skip
指定された数のオブジェクトを無視してから、残りのオブジェクトを取得します。 スキップするオブジェクトの数を入力します。
Type: | UInt64 |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
このコマンドレットへのパスを含む文字列をパイプ処理できます。
出力
このコマンドレットは、格納されている XML ファイルから逆シリアル化されたオブジェクトを返します。
メモ
パラメーターの複数の値を指定する場合は、コンマを使用して値を区切ります。 たとえば、<parameter-name> <value1>, <value2>
のようにします。
関連リンク
PowerShell
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示