PowerShell Cmdlet - Complete-Transaction
 記事記号:[mf1917] 初版:2011/Sep/30

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

名前
    Complete-Transaction
    
概要
    有効なトランザクションをコミットします。
    
構文
    Complete-Transaction [-Confirm] [-WhatIf] [<CommonParameters>]
    
説明
    Complete-Transaction コマンドレットは、有効なトランザクションをコミットしま
    す。トランザクションをコミットすると、トランザクション内のコマンドの最終処理
    が実行され、コマンドの対象のデータが変更されます。
    
    トランザクションに複数のサブスクライバーが含まれている場合、トランザクション
    をコミットするには、各 Start-Transaction コマンドに対して Complete-Transacti
    on コマンドを入力する必要があります。
    
    Complete-Transaction コマンドレットは、Windows PowerShell のトランザクション
    機能をサポートする一連のコマンドレットの 1 つです。詳細については、「about_T
    ransactions」を参照してください。
    
パラメーター
    -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」と入力してヘルプを参照してください。
    
入力
    なし
        パイプを使用してオブジェクトを Complete-Transaction に渡すことはできませ
        ん。
    
出力
    なし
        このコマンドレットはオブジェクトを返しません。
    
メモ
        コミットされたトランザクションのロールバック、またはロールバックされたト
        ランザクションのコミットを行うことはできません。
        
        有効でないトランザクションはロールバックできません。別のトランザクション
        をロールバックするには、有効なトランザクションを先にコミットするかロール
        バックする必要があります。
        
        既定では、トランザクションのコマンドがエラーになったなどでトランザクショ
        ンの一部をコミットできない場合、トランザクション全体がロールバックされま
        す。
        
    -------------------------- 例 1 --------------------------
    
    C:\PS>cd hkcu:\software
    
    PS HKCU:\software> start-transaction
    
    PS HKCU:\software> new-item MyCompany -UseTransaction
    PS HKCU:\software> dir m*
    
       Hive: HKEY_CURRENT_USER\software
    
    SKC  VC Name                           Property
    ---  -- ----                           --------
     82   1 Microsoft                      {(default)}
    
    PS HKCU:\software> complete-transaction
    PS HKCU:\software> dir m*
    
       Hive: HKEY_CURRENT_USER\Software
    
    SKC  VC Name                           Property
    ---  -- ----                           --------
     82   1 Microsoft                      {(default)}
      0   0 MyCompany                      {}
    
    説明
    -----------
    この例では、Complete-Transaction コマンドレットを使用してトランザクションを
    コミットした結果を示します。
    
    Start-Transaction コマンドを実行すると、トランザクションが開始されます。New-
    Item コマンドで UseTransaction パラメーターを使用して、コマンドをトランザク
    ションに含めます。
    
    最初の "dir" (Get-ChildItem) コマンドは、新しい項目がまだレジストリに追加さ
    れていないことを示します。
    
    Complete-Transaction コマンドによってトランザクションをコミットし、レジスト
    リの変更を有効にします。その結果、2 番目の "dir" コマンドで、レジストリが変
    更されたことがわかります。
    
    -------------------------- 例 2 --------------------------
    
    C:\PS>cd hkcu:\software
    
    PS HKCU:\software> start-transaction
    PS HKCU:\software> new-item MyCompany -UseTransaction
    
       Hive: HKEY_CURRENT_USER\Software
    
    SKC  VC Name                           Property
    ---  -- ----                           --------
      0   0 MyCompany                      {}
    
    PS HKCU:\software> start-transaction
    PS HKCU:\Software> Get-Transaction
    
    RollbackPreference   SubscriberCount  Status
    ------------------   ---------------  ------
    Error                2                Active
    
    PS HKCU:\software> new-itemproperty -path MyCompany -name MyKey -value -UseT
    ransaction
    
    MyKey
    -----
    123
    
    PS HKCU:\software> complete-transaction
    PS HKCU:\software> get-transaction
    
    RollbackPreference   SubscriberCount  Status
    ------------------   ---------------  ------
    Error                1                Active
    
    PS HKCU:\software> dir m*
    
       Hive: HKEY_CURRENT_USER\Software
    
    SKC  VC Name                           Property
    ---  -- ----                           --------
     82   1 Microsoft                      {(default)}
    
    PS HKCU:\software> complete-transaction
    PS HKCU:\software> dir m*
    
       Hive: HKEY_CURRENT_USER\Software
    
    SKC  VC Name                           Property
    ---  -- ----                           --------
     82   1 Microsoft                      {(default)}
      0   1 MyCompany                      {MyKey}
    
    説明
    -----------
    この例では、Complete-Transaction を使用して、複数のサブスクライバーを持つト
    ランザクションをコミットする方法を示します。
    
    マルチサブスクライバー トランザクションをコミットするには、各 Start-Transac
    tion コマンドに対して Complete-Transaction コマンドを入力する必要があります。
    データは最後の Complete-Transaction コマンドが送信されたときにのみ変更されま
    す。
    
    具体的な方法を示すために、この例ではコマンド ラインに入力される一連のコマン
    ドを示します。実際には通常、トランザクションはスクリプト内で実行され、メイン 
    スクリプトによって呼び出される関数または補助的なスクリプトによって実行される
    2 次的なトランザクションを伴います。
    
    この例では、Start-Transaction コマンドによってトランザクションが開始されます。
    UseTransaction パラメーターを使用する New-Item コマンドによって、MyCompany キ
    ーを Software キーに追加します。New-Item コマンドによってキー オブジェクトが
    返されますが、レジストリ内のデータはまだ変更されません。
    
    2 番目の Start-Transaction コマンドを実行すると、既存のトランザクションに 2 
    番目のサブスクライバーが追加されます。Get-Transaction コマンドによってサブス
    クライバーの数が 2 であることを確認します。UseTransaction パラメーターを使用
    する New-ItemProperty コマンドによって、新しい MyCompany キーにレジストリ エ
    ントリが追加されます。再びコマンドから値が返されますが、レジストリは変更され
    ません。
    
    最初の Complete-Transaction コマンドによってサブスクライバーの数が 1 つ減り
    ます。これは Get-Transaction コマンドによって確認されます。ただし、"dir m*" 
    (Get-ChildItem) コマンドが示すように、データは変更されません。
    
    2 番目の Complete-Transaction コマンドによってトランザクション全体がコミット
    され、レジストリ内のデータが変更されます。2 番目の "dir m*" コマンドによって、
    変更を確認します。
    
    -------------------------- 例 3 --------------------------
    
    C:\PS>cd hkcu:\software
    
    PS HKCU:\software> start-transaction
    
    PS HKCU:\software> new-item MyCompany -UseTransaction
    
    PS HKCU:\software> dir m*
    
       Hive: HKEY_CURRENT_USER\Software
    
    SKC  VC Name                           Property
    ---  -- ----                           --------
     82   1 Microsoft                      {(default)}
    
    
    PS HKCU:\software> dir m* -UseTransaction
    
       Hive: HKEY_CURRENT_USER\Software
    
    SKC  VC Name                           Property
    ---  -- ----                           --------
     82   1 Microsoft                      {(default)}
      0   0 MyCompany                      {}
    
    PS HKCU:\software> complete-transaction
    
    
    説明
    -----------
    この例では、トランザクション内の Get-* コマンドおよびデータを変更しない他の
    コマンドを使用する値を示します。トランザクション内で Get-* コマンドを使用し
    た場合は、コマンドはトランザクションの一部であるオブジェクトを取得します。
    これによって、変更をコミットする前にトランザクション内の変更をプレビューで
    きます。
    
    この例では、トランザクションが開始されます。UseTransaction パラメーターを使
    用する New-Item コマンドによって、トランザクションの一部として新しいキーが
    レジストリに追加されます。
    
    Complete-Transaction コマンドが実行されるまではレジストリに新しいレジストリ 
    キーは追加されないので、単に "dir" (Get-ChildItem) コマンドを使用した場合は
    新しいキーのないレジストリが表示されます。
    
    ただし、"dir" コマンドに UseTransaction パラメーターを追加した場合は、コマ
    ンドはトランザクションの一部になり、トランザクション内の項目がまだデータに
    追加されていない場合も項目が取得されます。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=135200
    about_Transactions 
    Start-Transaction 
    Get-Transaction 
    Undo-Transaction 
    Use-Transaction 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Complete-Transaction
ご利用数: 1919675
感想・要望・問い合わせは こちら