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
[参考]
- Format-SecureBootUEFI – Windows Server 2012 and Windows 8
https://technet.microsoft.com/en-us/library/jj603044(v=wps.620).aspx - Format-SecureBootUEFI – Windows Server 2012 R2 and Windows 8.1
https://technet.microsoft.com/en-us/library/jj603044(v=wps.630).aspx