PowerShell Cmdlet - Set-AuthenticodeSignature
 記事記号:[mg1982] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Set-AuthenticodeSignature
    
概要
    Authenticode 署名を Windows PowerShell スクリプトまたはその他のファイルに追
    加します。
    
構文
    Set-AuthenticodeSignature [-FilePath] <string[]> [-Certificate] <X509Certifi
    cate2> [-Force] [-HashAlgorithm <string>] [-IncludeChain <string>] [-Timesta
    mpServer <string>] [-Confirm] [-WhatIf] [<CommonParameters>]
    
説明
    Set-AuthenticodeSignature コマンドレットは、サブジェクト インターフェイス パ
    ッケージ (SIP) をサポートするファイルに Authenticode 署名を追加します。
    
    Windows PowerShell スクリプト ファイルでは、この署名が、スクリプトで実行され
    る命令の終了を示すテキストのブロックの形式となります。このコマンドレットを実
    行したときに、ファイルに署名が存在する場合、その署名は削除されます。

パラメーター
    -Certificate <X509Certificate2>
        スクリプトまたはファイルに署名するために使用される証明書を指定します。証
        明書を表すオブジェクトを保存する変数、または証明書を取得する式を入力しま
        す。
        
        証明書を検索するには、証明書 (Cert:) ドライブで Get-PfxCertificate また
        は Get-ChildItem コマンドレットを使用します。証明書が有効でないか、コー
        ド署名機関がない場合、このコマンドは失敗します。
        
        必須                         true
        位置                         2
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -FilePath <string[]>
        署名するファイルのパスを指定します。
        
        必須                         true
        位置                         1
        既定値                       
        パイプライン入力を許可する   true (ByValue, ByPropertyName)
        ワイルドカード文字を許可する false
        
    -Force [<SwitchParameter>]
        コマンドレットが読み取り専用ファイルに署名を追加するのを許可します。Forc
        e パラメーターを使用しても、コマンドレットはセキュリティ制限を上書きでき
        ません。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -HashAlgorithm <string>
        Windows がファイルのデジタル署名の計算に使用するハッシュ アルゴリズムを
        指定します。既定は、Windows の既定のハッシュ アルゴリズムの SHA1 です。
        
        異なるハッシュ アルゴリズムを使用して署名されたファイルは、他のシステム
        で認識されない場合があります。
        
        必須                         false
        位置                         named
        既定値                       SHA1
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -IncludeChain <string>
        証明書信頼チェーンのうち、どの証明書をデジタル署名に含めるかを決定します。
        既定値は "NotRoot" です。
        
        有効な値は次のとおりです。
        
        -- Signer: 署名者の証明書のみを含めます。
        
        -- NotRoot: ルート機関を除き、証明書チェーンに含まれるすべての証明書を含
           めます。
        
        --All: 証明書チェーンに含まれるすべての証明書を含めます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -TimestampServer <string>
        指定したタイム スタンプ サーバーを使用して、タイムスタンプを署名に追加し
        ます。タイム スタンプ サーバーの URL を文字列として入力します。
        
        タイム スタンプは、証明書がファイルに追加された正確な時刻を表します。タ
        イム スタンプによって、ユーザーおよびプログラムは証明書が署名の時点で有
        効であったことを確認できるため、証明書が期限切れになった場合にスクリプト
        が失敗することを防止できます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Confirm [<SwitchParameter>]
        コマンドを実行する前に確認メッセージを表示します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -WhatIf [<SwitchParameter>]
        実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help about_commonparameters」と入力してヘルプを参照してください。
    
入力
    System.String
        パイプを使用してファイル パスを含む文字列を Set-AuthenticodeSignature に
        渡すことができます。
    
出力
    System.Management.Automation.Signature
        
メモ
    -------------------------- 例 1 --------------------------
    
    C:\PS>$cert=Get-ChildItem -Path cert:\CurrentUser\my -CodeSigningCert
    
    C:\PS>Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -certificate 
    $cert
    
    説明
    -----------
    これらのコマンドは、Windows PowerShell 証明書プロバイダーからコード署名証明
    書を取得し、それを使用して Windows PowerShell スクリプトに署名します。
    
    最初のコマンドは、Get-ChildItem コマンドレットと Windows PowerShell 証明書プ
    ロバイダーを使用して、証明書ストアの Cert:\CurrentUser\My subdirectory にあ
    る証明書を取得します (Cert: ドライブは、証明書プロバイダーによって公開されて
    いるドライブです)。CodeSigningCert パラメーターは証明書プロバイダーによって
    のみサポートされ、取得する証明書をコード署名機関を持つものに制限します。この 
    コマンドは、結果を $cert 変数に保存します。
    
    2 番目のコマンドは、Set-AuthenticodeSignature コマンドレットを使用して、PSTe
    stInternet2.ps1 スクリプトに署名します。このコマンドは、FilePath パラメータ
    ーを使用してスクリプト名を指定し、Certificate パラメーターを使用して証明書を 
    $cert 変数に保存するように指定します。
    
    -------------------------- 例 2 --------------------------
    
    C:\PS>$cert = Get-PfxCertificate C:\Test\Mysign.pfx 
    
    C:\PS>Set-AuthenticodeSignature -Filepath ServerProps.ps1 -Cert $cert
    
    説明
    -----------
    これらのコマンドは、Get-PfxCertificate コマンドレットを使用してコード署名用
    の証明書を検索します。次に、そのコマンドレットを使用して Windows PowerShell 
    スクリプトに署名します。
    
    最初のコマンドは、Get-PfxCertificate コマンドレットを使用して C:\Test\MySign
    .pfx 証明書を検索し、$cert 変数に保存します。
    
    2 番目のコマンドは、Set-AuthenticodeSignature を使用してスクリプトに署名しま
    す。Set-AuthenticodeSignature の FilePath パラメーターは、署名するスクリプト 
    ファイルのパスを指定し、Cert パラメーターは証明書を含む $cert 変数を Set-Aut
    henticodeSignature に渡します。
    
    証明書ファイルがパスワードで保護されている場合、パスワードの入力が求められま
    す。
    
    -------------------------- 例 3 --------------------------
    
    C:\PS>Set-AuthenticodeSignature -filepath c:\scripts\Remodel.ps1 -certificat
    e $cert -IncludeChain All -TimeStampServer "http://timestamp.fabrikam.com/sc
    ripts/timstamper.dll"
    
    説明
    -----------
    このコマンドは、信頼チェーンのルート機関を含み、サードパーティーのタイムスタ
    ンプ サーバーによって署名されているデジタル署名を追加します。
    
    このコマンドは、FilePath パラメーターを使用して署名対象のスクリプトを指定し、
    Certificate パラメーターを使用して $cert 変数に保存する証明書を指定します。I
    ncludeChain パラメーターを使用して、信頼チェーン (ルート機関を含む) のすべて
    の署名を含めています。また、TimeStampServer パラメーターを使用して、タイムス
    タンプを署名に追加しています。これにより、証明書の期限切れ時にスクリプトが失
    敗するのを防止できます。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113391
    about_Signing 
    about_Execution_Policies 
    Get-AuthenticodeSignature 
    Get-PfxCertificate 
    Get-ExecutionPolicy 
    Set-ExecutionPolicy 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Set-AuthenticodeSignature
ご利用数: 1859002
感想・要望・問い合わせは こちら