TEMA
    about_Transactions

DESCRIPCIÓN BREVE
    Describe cómo se administran las operaciones que admiten 
    transacciones en Windows PowerShell. 

DESCRIPCIÓN DETALLADA
    Las transacciones se admiten en Windows PowerShell a partir de Windows 
    PowerShell 2.0. Esta característica permite iniciar una transacción, 
    indicar qué comandos forman parte de la misma y confirmarla o revertirla.
    
    
  ACERCA DE LAS TRANSACCIONES

      En Windows PowerShell, una transacción es un conjunto de uno o 
      varios comandos que se administran como una unidad lógica. Una 
      transacción se puede completar ("confirmar"), con lo que se 
      cambian los datos afectados por la misma. También se puede deshacer 
      ("revertir") totalmente, con lo no se cambian los datos afectados por 
      la citada transacción. 

      Dado que los comandos de una transacción se administran como 
      una unidad, o todos se confirman o todos se revierten. 

      Las transacciones se utilizan bastante en el procesamiento de datos, 
      particularmente en operaciones de bases de datos y en transacciones 
      financieras. Las transacciones no suelen utilizarse cuando, en un 
      conjunto de comandos, se produce un error en la ejecución de todos 
      ellos, sino que se utilizan principalmente en los casos en que unos 
      comandos se ejecutan correctamente y otros no, con lo que el sistema 
      queda en un estado difícil de reparar debido a posibles daños, 
      comportamiento incorrecto o problemas de interpretación.

            
  CMDLETS DE TRANSACCIONES

      Windows PowerShell incluye varios cmdlets diseñados para administrar 
      transacciones.

      Cmdlet                 Descripción
      --------------         ---------------------------------   
      Start-Transaction      Inicia una nueva transacción. 

      Use-Transaction        Agrega un comando o una expresión a la transacción. 
                             El comando debe utilizar objetos habilitados para 
                             transacciones.

      Undo-Transaction       Revierte la transacción para que no se cambie 
                             ningún dato.

      Complete-Transaction   Confirma la transacción. Los datos afectados por 
                             la transacción se cambian.

      Get-Transaction        Obtiene información acerca de la transacción activa.


      Para obtener una lista de cmdlets de transacciones, escriba:

          get-command *transaction

      Para obtener información detallada acerca de los cmdlets, escriba:

	  get-help <nombreDeCmdlet> -detailed

      Por ejemplo:
	
	  get-help use-transaction -detailed


  ELEMENTOS HABILITADOS PARA TRANSACCIONES

      Para participar en una transacción, tanto el cmdlet como el 
      proveedor deben admitir transacciones. Esta característica está 
      integrada en los objetos afectados por la transacción.
   
      El proveedor del Registro de Windows PowerShell admite 
      transacciones en Windows Vista. El objeto TransactedString 
      (Microsoft.PowerShell.Commands.Management.TransactedString) funciona 
      con cualquier sistema operativo que ejecute Windows PowerShell. 

      Otros proveedores de Windows PowerShell pueden admitir 
      transacciones. Para buscar los proveedores de Windows 
      PowerShell de una sesión que admiten transacciones, utilice el 
      comando siguiente para buscar el valor "Transactions" en la 
      propiedad Capabilities de proveedores:

	  get-psprovider | where {$_.Capabilities -like "*transactions*"}

      Para obtener más información acerca de un proveedor, vea la Ayuda 
      correspondiente a dicho proveedor.
      Para ver la Ayuda de un proveedor, escriba:

	  get-help <nombreDeProveedor>

      Por ejemplo, para ver la Ayuda del proveedor del Registro, escriba:

	  get-help registry
  


  EL PARÁMETRO USETRANSACTION

      Los cmdlets que pueden admitir transacciones tienen un parámetro 
      UseTransaction. Este parámetro incluye el comando en la transacción 
      activa. Puede usar el nombre completo del parámetro o su alias, "usetx".

      El parámetro se puede utilizar sólo cuando la sesión contiene una 
      transacción activa. Si escribe un comando con el parámetro 
      UseTransaction sin que haya una transacción activa, se producirá un 
      error en el comando.

      Para buscar cmdlets con el parámetro UseTransaction, escriba:

	  get-help * -parameter UseTransaction  

      En Windows PowerShell, todos los cmdlets diseñados para 
      funcionar con proveedores de Windows PowerShell admiten 
      transacciones. Como consecuencia, se pueden utilizar los cmdlets de 
      proveedores para administrar transacciones. 

      Para obtener más información sobre los proveedores de Windows 
      PowerShell, vea about_Providers.  
 

  EL OBJETO DE TRANSACCIÓN

      En Windows PowerShell, el objeto de transacción 
      System.Management.Automation.Transaction representa las transacciones.

      Este objeto tiene las propiedades siguientes:

      RollbackPreference: 
          Contiene la preferencia de reversión establecida para la 
          transacción actual. Puede establecer la preferencia de 
          reversión al utilizar Start-Transaction para iniciar la 
          transacción. 

          La preferencia de reversión determina las condiciones bajo 
          las que la transacción se revierte automáticamente. Los 
          valores válidos son Error, TerminatingError y Never. El valor 
          predeterminado es Error.

      Status:              
         Contiene el estado actual de la transacción. Los valores 
         válidos son Active, Committed y RolledBack.


      SubscriberCount:              
         Contiene el número de suscriptores para la transacción. Un 
         suscriptor se agrega a una transacción cuando se inicia una 
         transacción mientras otra está en curso. El recuento de 
         suscriptores se reduce cuando un suscriptor confirma la 
         transacción.
    

  TRANSACCIONES ACTIVAS

      En Windows PowerShell, sólo hay una transacción activa a la vez 
      y solamente se puede administrar la transacción activa. Puede 
      haber varias transacciones en curso al mismo tiempo en la misma 
      sesión, pero únicamente la última transacción iniciada estará 
      activa. 

      Como consecuencia, no se puede especificar una transacción 
      concreta al utilizar los cmdlets de transacciones. Los comandos 
      siempre se aplican a la transacción activa.

      Esto se puede observar de forma evidente en el comportamiento 
      del cmdlet Get-Transaction. Cuando se escribe un comando 
      Get-Transaction, siempre obtiene un solo objeto de transacción. 
      Este objeto es el que representa la transacción activa. 

      Para administrar una transacción diferente, primero debe 
      finalizar la transacción activa, ya sea confirmándola o 
      revirtiéndola. Cuando se realiza esta acción, la transacción 
      anterior vuelve a estar activa automáticamente. Las 
      transacciones vuelven a activarse en orden inverso al orden en 
      que se iniciaron, por lo que la última transacción iniciada 
      siempre está activa.


  SUSCRIPTORES Y TRANSACCIONES INDEPENDIENTES

      Si inicia una transacción mientras otra está en curso, Windows 
      PowerShell no inicia la nueva transacción de forma 
      predeterminada. En su lugar, agrega un "suscriptor" a la 
      transacción actual.

      Cuando una transacción tiene varios suscriptores, un único comando 
      Undo-Transaction en cualquier punto revierte la transacción completa 
      para todos los suscriptores. Sin embargo, para confirmar la transacción, 
      se debe escribir un comando Complete-Transaction para cada suscriptor.

      Para buscar el número de suscriptores para una transacción, 
      compruebe la propiedad SubscriberCount del objeto de 
      transacción. Por ejemplo, el comando siguiente utiliza el cmdlet Get-
      Transaction para obtener el valor de la propiedad SubscriberCount de la 
      transacción activa:

          (Get-Transaction).SubscriberCount
        
      El comportamiento predeterminado es agregar un suscriptor, 
      porque la mayor parte de las transacciones que se inician 
      mientras otra está en curso están relacionadas con la 
      transacción original. En el modelo típico, un script que 
      contiene una transacción llama a un script auxiliar que 
      contiene su propia transacción. Como las transacciones están 
      relacionadas, se deben revertir o confirmar como una unidad.

      No obstante, se puede iniciar una transacción que sea 
      independiente de la transacción actual utilizando el parámetro 
      Independent del cmdlet Start-Transaction.

      Cuando se inicia una transacción independiente, Start-Transactio
      n crea un nuevo objeto de transacción y la nueva transacción se 
      convierte en la transacción activa. La transacción 
      independiente se puede confirmar o revertir sin afectar a la 
      transacción original.

      Cuando la transacción independiente se finaliza (se confirma o 
      se revierte), la transacción original vuelve a convertirse en 
      la transacción activa.


  CAMBIAR DATOS

      Cuando se usa una transacción para cambiar datos, los datos 
      afectados no se cambian hasta que se confirma la transacción.
      Sin embargo, los mismos datos pueden ser cambiados por comandos 
      que no forman parte de la transacción. 

      Tenga esto presente cuando esté utilizando transacciones para 
      administrar datos compartidos. Normalmente, las bases de datos 
      tienen mecanismos que bloquean los datos mientras se está 
      trabajando con ellos, evitando que otros usuarios, y otros 
      comandos, scripts y funciones, los cambien.

      Sin embargo, el bloqueo es una característica de la base de 
      datos. No está relacionado con las transacciones. Si está 
      trabajando en un sistema de archivos habilitado para 
      transacciones o en otro almacén de datos, los datos pueden cambiarse 
      mientras la transacción está en curso.


EJEMPLOS
    En los ejemplos de esta sección se usa el proveedor del Registro 
    de Windows PowerShell y se supone que se está familiarizado con 
    este proveedor. Para obtener información acerca del proveedor del 
    Registro, escriba "get-help registry".

  EJEMPLO 1: CONFIRMAR UNA TRANSACCIÓN

    Para crear una transacción, utilice el cmdlet Start-Transaction. 
    El comando siguiente inicia una transacción con la configuración 
    predeterminada.
 
 	start-transaction

    Para incluir comandos en la transacción, utilice el parámetro 
    UseTransaction del cmdlet. De forma predeterminada, no se 
    incluyen comandos en la transacción. 

    Por ejemplo, el comando siguiente, que establece la ubicación 
    actual en la clave Software de la unidad HKCU:, no se incluye en la 
    transacción.

        cd hkcu:\Software

    El comando siguiente, que crea la clave MyCompany, utiliza el 
    parámetro UseTransaction del cmdlet New-Item para incluir el 
    comando en la transacción activa.

        new-item MyCompany -UseTransaction

    El comando devuelve un objeto que representa la nueva clave, pero 
    como el comando forma parte de la transacción, el Registro no se 
    cambia todavía.

        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Nombre                         Propiedad
        ---  -- ----                           --------
          0   0 MyCompany                      {}

    Para confirmar la transacción, utilice el cmdlet Complete-Transaction.
    Como siempre afecta a la transacción activa, no se puede 
    especificar la transacción.

	complete-transaction  


    Como consecuencia, la clave MyCompany se agrega al Registro.

	dir m*
       
        Hive: HKEY_CURRENT_USER\software

        SKC  VC Nombre                         Propiedad
        ---  -- ----                           --------
         83   1 Microsoft                      {(Valor predeterminado)}
          0   0 MyCompany                      {}



  EJEMPLO 2: REVERTIR UNA TRANSACCIÓN

    Para crear una transacción, utilice el cmdlet Start-Transaction. 
    El comando siguiente inicia una transacción con la configuración 
    predeterminada.
 
 	start-transaction

    El comando siguiente, que crea la clave MyOtherCompany, utiliza 
    el parámetro UseTransaction del cmdlet New-Item para incluir el 
    comando en la transacción activa.

        new-item MyOtherCompany -UseTransaction

    El comando devuelve un objeto que representa la nueva clave, pero 
    como el comando forma parte de la transacción, el Registro no se 
    cambia todavía.

        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Nombre                         Propiedad
        ---  -- ----                           --------
          0   0 MyOtherCompany                 {}


    Para revertir la transacción, utilice el cmdlet Undo-Transaction.
    Como siempre afecta a la transacción activa, no se puede 
    especificar la transacción.

	Undo-transaction  

    El resultado es que la clave MyOtherCompany no se agrega al Registro.

	dir m*
       
        Hive: HKEY_CURRENT_USER\software

        SKC  VC Nombre                         Propiedad
        ---  -- ----                           --------
         83   1 Microsoft                      {(Valor predeterminado)}
          0   0 MyCompany                      {}


 
  EJEMPLO 3: TENER UNA VISTA PREVIA DE UNA TRANSACCIÓN

    Normalmente, los comandos utilizados en una transacción cambian 
    datos. Sin embargo, los comandos que obtienen datos también son 
    útiles en una transacción, porque obtienen datos dentro de la 
    misma. Esto proporciona una vista previa de los cambios que se 
    producirían al confirmar la transacción.

    En el ejemplo siguiente se muestra la forma de utilizar el comando Get-
    ChildItem (el alias es "dir") para tener una vista previa de los cambios 
    producidos en una transacción.


    El comando siguiente inicia una transacción.

	start-transaction

    El comando siguiente utiliza el cmdlet New-ItemProperty para 
    agregar la entrada del Registro MyKey a la clave MyCompany. Utiliza el 
    parámetro UseTransaction para incluir el comando en la transacción.


        new-itemproperty -path MyCompany -Name MyKey -value 123 -UseTransaction

    El comando devuelve un objeto que representa la nueva entrada del 
    Registro, pero la entrada del Registro no se cambia.

        MyKey
        -----
        123


    Para obtener los elementos que están actualmente en el Registro, 
    utilice un comando Get-ChildItem ("dir") sin el parámetro 
    UseTransaction. El comando siguiente obtiene elementos que 
    comienzan por "M".

	dir m*


    El resultado muestra que no se han agregado entradas todavía a la 
    clave MyCompany.

        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Nombre                        Propiedad
        ---  -- ----                          --------
        83   1 Microsoft                      {(Valor predeterminado)}
         0   0 MyCompany                      {}


    Para tener una vista previa del efecto que produce la 
    confirmación de la transacción, escriba un comando Get-ChildItem 
    ("dir") con el parámetro UseTransaction. Este comando tiene una 
    vista de los datos desde la transacción.


	dir m* -useTransaction


    El resultado muestra que, si la transacción se confirma, la 
    entrada MyKey se agregará a la clave MyCompany.


        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Nombre                        Propiedad
        ---  -- ----                          --------
        83   1 Microsoft                      {(Valor predeterminado)}
         0   1 MyCompany                      {MyKey}


     
  EJEMPLO 4: COMBINAR COMANDOS QUE ADMITEN TRANSACCIONES CON COMANDOS 
  QUE NO LAS ADMITEN

    Puede escribir comandos que no admiten transacciones durante una 
    transacción. Los comandos que no admiten transacciones afectan 
    inmediatamente a los datos, pero no afectan a la transacción.

    El comando siguiente inicia una transacción en la clave del Registro 
    HKCU:\Software.

	start-transaction


    Los tres siguientes comandos utilizan el cmdlet New-Item para 
    agregar claves al Registro. Los comandos primero y tercero usan 
    el parámetro UseTransaction para incluir los comandos en la 
    transacción. El segundo comando omite el parámetro. Como el 
    segundo comando no se incluye en la transacción, se aplica 
    inmediatamente.

        new-item MyCompany1 -UseTransaction

        new-item MyCompany2

        new-item MyCompany3 -UseTransaction


    Para ver el estado actual del Registro, utilice un comando 
    Get-ChildItem ("dir") sin el parámetro UseTransaction. Este 
    comando obtiene elementos que comienzan por "M".

	dir m*

    El resultado muestra que la clave MyCompany2 se agrega al 
    Registro, pero las claves MyCompany1 y MyCompany3, que forman 
    parte de la transacción, no se agregan.
     
        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Nombre                        Propiedad
        ---  -- ----                          --------
        83   1 Microsoft                      {(Valor predeterminado)}
         0   0 MyCompany2                     {}


    El comando siguiente confirma la transacción. 

        complete-transaction

    Ahora, las claves que se agregaron como parte de la transacción 
    aparecen en el Registro.

	dir m*

     
        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Nombre                        Propiedad
        ---  -- ----                          --------
        83   1 Microsoft                      {(Valor predeterminado)}
        0    0 MyCompany1                     {}
        0    0 MyCompany2                     {}
        0    0 MyCompany3                     {}



  EJEMPLO 5: UTILIZAR LA REVERSIÓN AUTOMÁTICA

    Cuando un comando de una transacción genera un error de cualquier 
    tipo, la transacción se revierte automáticamente. 

    Este comportamiento predeterminado está diseñado para los scripts 
    que ejecutan transacciones. Normalmente, los scripts se prueban e 
    incluyen lógica de control de errores, por lo que no se espera que se 
    produzcan errores y deben terminar la transacción. 

    El primer comando inicia una transacción en la clave del Registro 
    HKCU:\Software.

	start-transaction

    El comando siguiente utiliza el cmdlet New-Item para agregar la clave 
    MyCompany al Registro. Utiliza el parámetro UseTransaction, cuyo 
    alias es "usetx", para incluir el comando en la transacción.

	New-Item MyCompany -UseTX

    Como la clave MyCompany ya existe en el Registro, se produce un 
    error al ejecutar el comando y la transacción se revierte. 

        New-Item : A key at this path already exists 
        At line:1 char:9
        + new-item <<<< MyCompany -usetx

    Un comando Get-Transaction confirma que la transacción se ha 
    revertido y que el valor de SubscriberCount es 0.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                0                 RolledBack 

        
  EJEMPLO 6: CAMBIAR LA PREFERENCIA DE REVERSIÓN

    Si desea que la transacción tenga más tolerancia a los errores, 
    puede utilizar el parámetro RollbackPreference de Start-Transactio
    n para cambiar la preferencia.

    El comando siguiente inicia una transacción con la preferencia de 
    reversión "Never".

         start-transaction -rollbackpreference Never

    En este caso, cuando se produce un error al ejecutar el comando, la 
    transacción no se revierte automáticamente.

	New-Item MyCompany -UseTX

        New-Item : A key at this path already exists 
        At line:1 char:9
        + new-item <<<< MyCompany -usetx
   
     
    Como la transacción sigue estando activa, se puede volver a 
    enviar el comando como parte de la transacción. 

	New-Item MyOtherCompany -UseTX



  EJEMPLO 7: USAR EL CMDLET USE-TRANSACTION

    El cmdlet Use-Transaction permite realizar scripting directo 
    respecto a objetos de Microsoft .NET Framework habilitados para 
    transacciones.
    Use-Transaction toma un bloque de script que sólo puede contener 
    comandos y expresiones que usan objetos de .NET Framework 
    habilitados para transacciones, como las instancias de la 
    clase Microsoft.PowerShell.Commands.Management.TransactedString.

    El comando siguiente inicia una transacción.

         start-transaction

    El comando New-Object siguiente crea una instancia de la clase 
    TransactedString y la guarda en la variable $t.

         $t = New-Object Microsoft.PowerShell.Commands.Management.TransactedString

    El comando siguiente utiliza el método Append del objeto 
    TransactedString para agregar texto a la cadena. Como el comando 
    no forma parte de la transacción, el cambio se aplica inmediatamente.

	 $t.append("Windows") 

    El comando siguiente utiliza el mismo método Append para agregar 
    texto, pero lo agrega como parte de la transacción. El comando se 
    escribe entre llaves y se establece como el valor del parámetro 
    ScriptBlock de Use-Transaction. El parámetro UseTransaction (UseTx) es 
    obligatorio.

	 use-transaction {$t.append(" PowerShell")} -usetx

    Para ver el contenido actual de la cadena que admite transacciones en $t, 
    utilice el método ToString del objeto TransactedString.
                 
	 $t.tostring()   

    El resultado muestra que sólo se aplican los cambios que no admiten 
    transacciones.

	 Windows	

    Para ver el contenido actual de la cadena que admite 
    transacciones en $t desde la transacción, incruste la expresión 
    en un comando Use-Transaction. 

	 use-transaction {$s.tostring()} -usetx   

    El resultado muestra la vista de la transacción.

	 Windows PowerShell

    El comando siguiente confirma la transacción.

	 complete-transaction

    Para ver la cadena final:

	 $t.tostring()
	
	 Windows PowerShell


  EJEMPLO 7: ADMINISTRAR TRANSACCIONES CON VARIOS SUSCRIPTORES

    Cuando se inicia una transacción mientras otra está en curso, Windows 
    PowerShell no crea una segunda transacción de forma predeterminada. 
    En su lugar, agrega un suscriptor a la transacción actual. 

    En este ejemplo se muestra cómo se ve y se administra una 
    transacción con varios suscriptores.

    Comience iniciando una transacción en la clave HKCU:\Software.
	
        start-transaction
    
    El comando siguiente utiliza el comando Get-Transaction para 
    obtener la transacción activa.

	get-transaction


    El resultado muestra el objeto que representa la transacción activa.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active 

     
    El comando siguiente agrega la clave MyCompany al Registro.
    Utiliza el parámetro UseTransaction para incluir el comando en la 
    transacción.
                 
        new-item MyCompany -UseTransaction


    El comando siguiente utiliza el comando Start-Transaction para 
    iniciar una transacción. Aunque este comando se escribe en el 
    símbolo del sistema, este escenario es más probable que se produzca al 
    ejecutar un script que contiene una transacción.

        start-transaction


    Un comando Get-Transaction muestra que el recuento de suscriptores 
    en el objeto de transacción se incrementa. El valor es 2 ahora.   

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                2                 Active 


    El comando siguiente utiliza el cmdlet New-ItemProperty para 
    agregar la entrada del Registro MyKey a la clave MyCompany. Utiliza el 
    parámetro UseTransaction para incluir el comando en la transacción.

        new-itemproperty -path MyCompany -name MyKey -UseTransaction


    La clave MyCompany no existe en el Registro, pero este comando se 
    ejecuta correctamente porque los dos comandos forman parte de la misma 
    transacción.

    El comando siguiente confirma la transacción. Si revirtiese la 
    transacción, esta se revertiría para todos los suscriptores.

	complete-transaction


    Un comando Get-Transaction muestra que el recuento de 
    suscriptores en el objeto de transacción es 1, pero el valor de 
    Status sigue siendo Active (no Committed).   


        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active 


    Para finalizar la transacción confirmándola, escriba un segundo 
    comando Complete- Transaction. Para confirmar una transacción con 
    varios suscriptores, debe escribir un comando Complete-Transaction
    por cada comando Start-Transaction.

     	complete-transaction

      
    Otro comando Get-Transaction muestra que la transacción se ha 
    confirmado.


        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                0                 Committed 


  EJEMPLO 8: ADMINISTRAR TRANSACCIONES INDEPENDIENTES

    Cuando se inicia una transacción mientras otra está en curso, se puede 
    utilizar el parámetro Independent de Start-Transaction para que la nueva 
    transacción sea independiente de la transacción original.

    Al realizar esta acción, Start-Transaction crea un nuevo objeto 
    de transacción y convierte la nueva transacción en la transacción 
    activa.

    Comience iniciando una transacción en la clave HKCU:\Software.
	
        start-transaction
     
    El comando siguiente utiliza el comando Get-Transaction para 
    obtener la transacción activa.

	get-transaction


    El resultado muestra el objeto que representa la transacción activa.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active 

     
    El comando siguiente agrega la clave del Registro MyCompany como 
    parte de la transacción. Utiliza el parámetro UseTransaction 
    (UseTx) para incluir el comando en la transacción activa.

	new-item MyCompany -use


    El comando siguiente inicia una nueva transacción. Utiliza el 
    parámetro Independent para indicar que esta transacción no es un 
    suscriptor para la transacción activa.

         start-transaction -independent

    Cuando se crea una transacción independiente, la nueva 
    transacción (última transacción creada) se convierte en la 
    transacción activa. Puede usar un comando Get-Transaction para 
    obtener la transacción activa. 

	get-transaction

    Observe que el valor de SubscriberCount en la transacción es 1, lo que 
    significa que no hay otros suscriptores y que la transacción es nueva.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active 

    La nueva transacción se debe finalizar (confirmándola o 
    revirtiéndola) antes de poder administrar la transacción original.

    El comando siguiente agrega la clave MyOtherCompany al Registro.
    Utiliza el parámetro UseTransaction (UseTx) para incluir el 
    comando en la transacción activa.

        new-item MyOtherCompany -usetx

    Ahora, revierta la transacción. Si hubiera una única transacción 
    con dos suscriptores, la reversión de la transacción supondría la 
    reversión de la transacción completa para todos los suscriptores.

    Sin embargo, como estas transacciones son independientes, la 
    reversión de la transacción más reciente cancela los cambios del 
    Registro y convierte la transacción original en la transacción activa.

        undo-transaction

    Un comando Get-Transaction confirma que la transacción original 
    sigue estando activa en la sesión.


	get-transaction

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active 

    El comando siguiente confirma la transacción activa.

        complete-transaction


    Un comando Get-ChildItem muestra que se ha cambiado el Registro.

	dir m*


        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Nombre                         Propiedad
        ---  -- ----                           --------
         83   1 Microsoft                      {(Valor predeterminado)}
          0   0 MyCompany                      {}


VEA TAMBIÉN
    Start-Transaction
    Get-Transaction
    Complete-Transaction
    Undo-Transaction
    Use-Transaction
    Registro (proveedor)
    about_Providers
    Get-PSProvider
    Get-ChildItem

	




Tabla de contenido