Windows Server 2012 / 2012 R2 におけるセキュア ブート関連のコマンドレット (Format-SecureBootUEFI) について

スポンサーリンク

Windows Server 2012 / 2012 R2 では「セキュア ブート」と呼ばれるコンピューター起動時にブートコードなどが改ざんされていないことが保証される機能を利用することができ、また PowerShell コマンドレットなどの関連ツールを提供しています。

セキュア ブート関連の PowerShell コマンドレットのヘルプに関しては英語のみとなっており、日本語による情報はあまり公開されていません。

ここでは、セキュア ブートに関する PowerShell コマンドレットの 1 つである「Format-SecureBootUEFI」について、日本語の情報として纏めてみました ((他の PowerShell コマンドレットについては、「Windows Server 2012 / 2012 R2 におけるセキュア ブート関連のコマンドレットについて」を参照)。

※Windows Server 2012 / 2012 R2 と比較した際、内容の相違がほとんどないことから、Windows Server 2012 R2 (内容については「Get-Help」コマンドレットの -Full オプションを用いて実行した結果を編集したものとなります) の情報を元に編集、意訳したものとなります。

■名前

Format-SecureBootUEFI

■概要

返されたコンテンツ オブジェクトに証明書、もしくはハッシュをフォーマットし、署名する準備ができているファイルを作成します。

■構文

Format-SecureBootUEFI [-AppendWrite] [-ContentFilePath <String>] -Algorithm <String> -Hash <String[]> -SignatureOwner <Guid> [<CommonParameters>]

Format-SecureBootUEFI [-AppendWrite] [-ContentFilePath <String>] [-FormatWithCert] -CertificateFilePath <String[]> -SignatureOwner <Guid> [<CommonParameters>]

Format-SecureBootUEFI -Delete [<CommonParameters>]

Format-SecureBootUEFI [-SignableFilePath <String>] [-Time <String>] -Name <String> [<CommonParameters>]

■説明

Format-SecureBootUEFI コマンドレットは、返されたコンテンツ オブジェクトに証明書、もしくはハッシュをフォーマットし、署名する準備ができているファイルを作成します。この返されたオブジェクトは、実際に変数を更新するために Set-SecureBootUEFI コマンドレットによって使用されます。署名可能ファイルが指定されている場合、このコマンドレットは、署名される必要がある指定された名前でファイルを作成します。

このコマンドレットは、UEFI および BIOS (UEFI ではない) の両方のコンピューター上で実行されます。

■パラメーター

-Algorithm <String>
このコマンドレットがハッシュをフォーマットする場合に使用されるアルゴリズムを指定します。このパラメーターで利用可能な値: SHA1、SHA256、SHA384、もしくは SHA512

必須 true
位置 named
既定値 none
パイプライン入力を許可する false
ワイルドカード文字を許可する false

-AppendWrite [<SwitchParameter>]
上書きの代わりに付与された現在の変数のコンテンツを示します。

必須 false
位置 named
既定値 none
パイプライン入力を許可する false
ワイルドカード文字を許可する false

-CertificateFilePath <String[]>
コンテンツ オブジェクトを生成するために使用される証明書がそれぞれ含まれる1つ以上のファイルのリストを指定します。

名前が指定されたのみの場合、ファイルは現在の作業ディレクトリ内である必要があります。そうでなければファイルのフル パスを指定する必要があります。

必須 true
位置 named
既定値 none
パイプライン入力を許可する false
ワイルドカード文字を許可する false

-ContentFilePath <String>
このコマンドレットによって生成されるコンテンツ オブジェクトに対して情報が含まれる、および作成されたファイル名を指定します。

必須 false
位置 named
既定値 none
パイプライン入力を許可する false
ワイルドカード文字を許可する false

-Delete [<SwitchParameter>]
適切な署名可能ファイルと同様にコンテンツ オブジェクトは、変数を削除することで作成されることを示します。

必須 false
位置 named
既定値 none
パイプライン入力を許可する false
ワイルドカード文字を許可する false

-FormatWithCert [<SwitchParameter>]
証明書が格納されているか、単に公開鍵かどうかを示します。このパラメータが設定されている場合、全体の証明書は、コンテンツ オブジェクトに格納されます。

必須 false
位置 named
既定値 none
パイプライン入力を許可する false
ワイルドカード文字を許可する false

-Hash <String[]>
コンテンツを生成するために使用するハッシュのリストを指定します。

必須 true
位置 named
既定値 none
パイプライン入力を許可する false
ワイルドカード文字を許可する false

-Name <String>
UEFI 環境変数名を指定します。このパラメーターに対する利用可能な値: PK、KEK、DB、もしくは DBX

必須 true
位置 named
既定値 none
パイプライン入力を許可する True (ByValue)
ワイルドカード文字を許可する false

-SignableFilePath <String>
署名される準備があるデータのコンテンツが含まれるファイルを指定します。

名前が指定されたのみの場合、ファイルは現在の作業ディレクトリ内である必要があります。そうでなければファイルのフル パスを指定する必要があります。

必須 false
位置 named
既定値 none
パイプライン入力を許可する false
ワイルドカード文字を許可する false

-SignatureOwner <Guid>
署名オーナーの GUID を指定します。

必須 false
位置 named
既定値 none
パイプライン入力を許可する false
ワイルドカード文字を許可する false

-Time <String>
署名で使用されるタイムスタンプを指定します。This このパラメーター値は、DateTime オブジェクトによって許容されるために次のようにフォーマットする必要があります。”2011-11-01T13:30:00Z”

必須 false
位置 named
既定値 none
パイプライン入力を許可する false
ワイルドカード文字を許可する false

<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: –Verbose、-Debug、-ErrorAction-ErrorVariable、-WarningAction、-WarningVariable、-OutBuffer、-PipelineVariable、および -OutVariable。詳細については、about_CommonParameters を参照してください。

■入力

  • System.String
    String オブジェクトは、Get-SecureBootUEFI コマンドレットから出力される UEFI 変数名を表します。

■出力

  • Microsoft.SecureBoot.Commands.UEFIFormattedVariable
    UEFIFormattedVariable オブジェクトは、設定されるまでに構築されるパッケージに関する情報が含まれます。以下のメンバーは、UEFIFormattedVariable オブジェクトの一部です。
    • Name (String)
    • Time (String) 
    • AppendWrite (Boolean)
    • Content (Byte 配列)

    UEFIFormattedVariable オブジェクトは、Set-SecureBootUEFI コマンドレット へパイプするために使用することが可能です。

■メモ

  • 詳細については、「Get-Help Format-SecureBootUEFI -detailed」と入力してください。
  • 技術情報については、「Get-Help Format-SecureBootUEFI -full」と入力してください。

■エイリアス

  • なし

■例

例 1:

 Format-SecureBootUefi -Name PK -SignatureOwner 12345678-1234-1234-1234-123456789abc -CertificateFilePath PK.cer -SignableFilePath GeneratedFileToSign.bin -Time 2011-11-01T13:30:00Z | Format-List 

    Name        : PK
    Time        : 2011-11-01T13:30:00Z
    AppendWrite : False
    Content     : {232, 102, 87, 60…}

    この例は、Set-SecureBootUEFI コマンドレットへパイプされた PK.cer 内の秘密鍵をフォーマットします。

    例 2:

     Format-SecureBootUEFI -Name DBX -SignatureOwner 12345678-1234-1234-1234-123456789abc -Algorithm SHA256 -Hash 0011223344556677889900112233445566778899001122334455667788990011 -SignableFilePath GeneratedFileToSign.bin -Time 2011-11-01T13:30:00Z -AppendWrite | Format-List 

    Name        : dbx
    Time        : 2011-11-01T13:30:00Z
    AppendWrite : True
    Content     : {18, 165, 108, 130…}

    この例は、Set-SecureBootUEFI コマンドレットへパイプされる場合、DBX UEFI 変数へ付与されるハッシュをフォーマットします。

    例 3:

     Format-SecureBootUEFI -Name KEK -Delete -SignableFilePath GeneratedFileToSign.bin -Time 2011-11-01T13:30:00Z | Format-List 

    Name        : KEK
    Time        : 2011-11-01T13:30:00Z
    AppendWrite : False
    Content     :

    この例は、Set-SecureBootUEFI コマンドレットへパイプされる場合、削除された KEK UEFI 変数をフォーマットします。

    ■関連するトピック

    • Confirm-SecureBootUEFI
    • Get-SecureBootPolicy
    • Get-SecureBootUEFI
    • Set-SecureBootUEFI

    [参考]

    スポンサーリンク
    スポンサーリンク
    スポンサーリンク