Udostępnij za pośrednictwem


about_Transactions

Krótki opis

Opisuje sposób zarządzania operacjami transakcji w programie PowerShell.

Długi opis

Transakcje są obsługiwane w programie PowerShell rozpoczynającym się w programie PowerShell 2.0. Ta funkcja umożliwia uruchomienie transakcji, wskazanie, które polecenia są częścią transakcji, oraz zatwierdzanie lub wycofywanie transakcji.

W programie PowerShell transakcja jest zestawem co najmniej jednego polecenia zarządzanego jako jednostka logiczna. Transakcja może zostać ukończona ("zatwierdzona"), która zmienia dane, na które ma wpływ transakcja. Lub transakcja może zostać całkowicie cofnięta ("wycofana"), aby dane, których dotyczy problem, nie zostały zmienione przez transakcję.

Ponieważ polecenia w transakcji są zarządzane jako jednostka, wszystkie polecenia są zatwierdzane lub wszystkie polecenia są cofane.

Transakcje są szeroko stosowane w przetwarzaniu danych, zwłaszcza w operacjach bazy danych i w przypadku transakcji finansowych. Transakcje są najczęściej używane, gdy najgorszy scenariusz dla zestawu poleceń nie jest taki, że wszystkie kończą się niepowodzeniem, ale niektóre polecenia kończą się powodzeniem, podczas gdy inne kończą się niepowodzeniem, pozostawiając system w uszkodzonym, fałszywym lub niezinterpretowanym stanie, który jest trudny do naprawienia.

Polecenia cmdlet transakcji

Program PowerShell zawiera kilka poleceń cmdlet przeznaczonych do zarządzania transakcjami.

  • Start-Transaction: uruchamia nową transakcję.
  • Use-Transaction: dodaje polecenie lub wyrażenie do transakcji. Polecenie musi używać obiektów z obsługą transakcji.
  • Undo-Transaction: cofa transakcję, aby żadna z danych nie została zmieniona przez transakcję.
  • Complete-Transaction: zatwierdza transakcję. Dane, na które ma wpływ transakcja, są zmieniane.
  • Get-Transaction: pobiera informacje o aktywnej transakcji.

Aby uzyskać listę poleceń cmdlet transakcji, wpisz:

Get-Command *transaction

Aby uzyskać szczegółowe informacje o poleceniach cmdlet, wpisz:

Get-Help Use-Transaction -Detailed

Elementy z obsługą transakcji

Aby wziąć udział w transakcji, zarówno polecenie cmdlet, jak i dostawca muszą obsługiwać transakcje. Ta funkcja jest wbudowana w obiekty, których dotyczy transakcja.

Dostawca rejestru programu PowerShell obsługuje transakcje w systemie Windows. Obiekt TransactedString działa z dowolnym systemem operacyjnym z uruchomionym programem PowerShell.

Inni dostawcy programu PowerShell mogą obsługiwać transakcje. Aby znaleźć dostawców programu PowerShell w sesji obsługującej transakcje, użyj następującego polecenia, aby znaleźć wartość Transakcje we właściwości Capabilities dostawców:

Get-PSProvider | Where-Object {$_.Capabilities -like "*transactions*"}

Aby uzyskać więcej informacji na temat dostawcy, zobacz Pomoc dla dostawcy. Aby uzyskać pomoc dostawcy, wpisz:

Get-Help <provider-name>

Aby na przykład uzyskać pomoc dotyczącą dostawcy rejestru, wpisz:

Get-Help registry

Parametr UseTransaction

Polecenia cmdlet, które mogą obsługiwać transakcje, mają parametr UseTransaction . Ten parametr zawiera polecenie w aktywnej transakcji. Możesz użyć pełnej nazwy parametru lub jego aliasu , usetx.

Parametr może być używany tylko wtedy, gdy sesja zawiera aktywną transakcję. Jeśli wprowadzisz polecenie z parametrem UseTransaction , jeśli nie ma aktywnej transakcji, polecenie zakończy się niepowodzeniem.

Aby znaleźć polecenia cmdlet z parametrem UseTransaction , wpisz:

Get-Help * -Parameter UseTransaction

W programie PowerShell core wszystkie polecenia cmdlet przeznaczone do pracy z dostawcami programu PowerShell obsługują transakcje. W związku z tym można zarządzać transakcjami za pomocą poleceń cmdlet dostawcy.

Aby uzyskać więcej informacji na temat dostawców programu PowerShell, zobacz about_Providers.

Obiekt transakcji

Transakcje są reprezentowane w programie PowerShell przez obiekt transakcji System.Management.Automation.Transaction.

Obiekt ma następujące właściwości:

  • RollbackPreference: zawiera preferencję wycofywania ustawioną dla bieżącej transakcji. Możesz ustawić preferencję wycofywania, gdy używasz Start-Transaction jej do uruchamiania transakcji.

    Preferencja wycofywania określa warunki, w których transakcja jest cofana automatycznie. Prawidłowe wartości to Error, TerminatingError i Never. Wartość domyślna to Error.

  • Stan: zawiera bieżący stan transakcji. Prawidłowe wartości to Active, Committed i RolledBack.

  • SubscriberCount: zawiera liczbę subskrybentów transakcji. Subskrybent jest dodawany do transakcji podczas uruchamiania transakcji, gdy trwa inna transakcja. Liczba subskrybentów jest dekrementowana, gdy subskrybent zatwierdza transakcję.

Aktywne transakcje

W programie PowerShell tylko jedna transakcja jest aktywna jednocześnie i można zarządzać tylko aktywną transakcją. Wiele transakcji może być w toku w tej samej sesji w tym samym czasie, ale tylko ostatnio uruchomiona transakcja jest aktywna.

W związku z tym nie można określić określonej transakcji podczas korzystania z poleceń cmdlet transakcji. Polecenia zawsze mają zastosowanie do aktywnej transakcji.

Jest to najbardziej widoczne w zachowaniu Get-Transaction polecenia cmdlet. Po wprowadzeniu Get-Transaction polecenia Get-Transaction zawsze otrzymuje tylko jeden obiekt transakcji. Ten obiekt jest obiektem reprezentującym aktywną transakcję.

Aby zarządzać inną transakcją, musisz najpierw zakończyć aktywną transakcję, zatwierdzając ją lub cofając ją. Gdy to zrobisz, poprzednia transakcja stanie się aktywna automatycznie. Transakcje stają się aktywne w odwrotnej kolejności, z której są uruchamiane, dzięki czemu ostatnio uruchomiona transakcja jest zawsze aktywna.

Subskrybenci i niezależne transakcje

Jeśli uruchamiasz transakcję, gdy trwa inna transakcja, domyślnie program PowerShell nie uruchamia nowej transakcji. Zamiast tego dodaje "subskrybenta" do bieżącej transakcji.

Gdy transakcja ma wielu subskrybentów, jedno Undo-Transaction polecenie w dowolnym momencie wycofa całą transakcję dla wszystkich subskrybentów. Jednak aby zatwierdzić transakcję, musisz wprowadzić Complete-Transaction polecenie dla każdego subskrybenta.

Aby znaleźć liczbę subskrybentów transakcji, sprawdź właściwość SubscriberCount obiektu transakcji. Na przykład następujące polecenie używa Get-Transaction polecenia cmdlet , aby uzyskać wartość właściwości SubscriberCount aktywnej transakcji:

(Get-Transaction).SubscriberCount

Dodawanie subskrybenta jest zachowaniem domyślnym, ponieważ większość transakcji, które są uruchamiane, podczas gdy inna transakcja jest w toku, są powiązane z oryginalną transakcją. W typowym modelu skrypt zawierający transakcję wywołuje skrypt pomocnika, który zawiera własną transakcję. Ponieważ transakcje są powiązane, powinny zostać wycofane lub zatwierdzone jako jednostka.

Można jednak uruchomić transakcję niezależną od bieżącej transakcji przy użyciu parametru Start-Transaction Independent polecenia cmdlet.

Po rozpoczęciu niezależnej transakcji Start-Transaction tworzy nowy obiekt transakcji, a nowa transakcja staje się aktywną transakcją. Niezależna transakcja może zostać zatwierdzona lub wycofana bez wpływu na oryginalną transakcję.

Po zakończeniu niezależnej transakcji (zatwierdzonej lub wycofanej) oryginalna transakcja ponownie stanie się aktywną transakcją.

Zmienianie danych

Gdy używasz transakcji do zmiany danych, dane, których dotyczy transakcja, nie są zmieniane do momentu zatwierdzenia transakcji. Jednak te same dane można zmienić za pomocą poleceń, które nie są częścią transakcji.

Pamiętaj o tym, gdy używasz transakcji do zarządzania danymi udostępnionymi. Zazwyczaj bazy danych mają mechanizmy blokujące dane podczas pracy nad nimi, uniemożliwiając innym użytkownikom i innym poleceniem, skryptom i funkcjom zmianę.

Blokada jest jednak funkcją bazy danych. Nie jest to związane z transakcjami. Jeśli pracujesz w systemie plików z obsługą transakcji lub innym magazynie danych, dane można zmienić, gdy transakcja jest w toku.

Przykłady

W przykładach w tej sekcji użyto dostawcy rejestru programu PowerShell i założono, że znasz go. Aby uzyskać informacje o dostawcy rejestru, wpisz Get-Help registry.

Przykład 1. Zatwierdzanie transakcji

Aby utworzyć transakcję, użyj Start-Transaction polecenia cmdlet . Następujące polecenie uruchamia transakcję z ustawieniami domyślnymi.

Start-Transaction

Aby dołączyć polecenia do transakcji, użyj parametru UseTransaction polecenia cmdlet. Domyślnie polecenia nie są uwzględniane w transakcji,

Na przykład następujące polecenie, które ustawia bieżącą lokalizację w kluczu HKCU: oprogramowania dysku, nie jest uwzględnione w transakcji.

cd hkcu:\Software

Następujące polecenie, które tworzy klucz MyCompany, używa parametru New-Item UseTransaction polecenia cmdlet do uwzględnienia polecenia w aktywnej transakcji.

New-Item MyCompany -UseTransaction

Polecenie zwraca obiekt reprezentujący nowy klucz, ale ponieważ polecenie jest częścią transakcji, rejestr nie został jeszcze zmieniony.

Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
  0   0 MyCompany                      {}

Aby zatwierdzić transakcję, użyj Complete-Transaction polecenia cmdlet . Ponieważ zawsze ma to wpływ na aktywną transakcję, nie można określić transakcji.

Complete-Transaction

W związku MyCompany z tym klucz jest dodawany do rejestru.

dir m*
Hive: HKEY_CURRENT_USER\software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

Przykład 2. Wycofywanie transakcji

Aby utworzyć transakcję, użyj Start-Transaction polecenia cmdlet . Następujące polecenie uruchamia transakcję z ustawieniami domyślnymi.

Start-Transaction

Następujące polecenie, które tworzy klucz MyOtherCompany, używa parametru New-Item UseTransaction polecenia cmdlet do uwzględnienia polecenia w aktywnej transakcji.

New-Item MyOtherCompany -UseTransaction

Polecenie zwraca obiekt reprezentujący nowy klucz, ale ponieważ polecenie jest częścią transakcji, rejestr nie został jeszcze zmieniony.

Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
  0   0 MyOtherCompany                 {}

Aby wycofać transakcję, użyj Undo-Transaction polecenia cmdlet . Ponieważ zawsze ma to wpływ na aktywną transakcję, nie określasz transakcji.

Undo-Transaction

Wynikiem jest to, że MyOtherCompany klucz nie jest dodawany do rejestru.

dir m*
Hive: HKEY_CURRENT_USER\software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

Przykład 3. Podgląd transakcji

Zazwyczaj polecenia używane w danych zmiany transakcji. Jednak polecenia, które pobierają dane, są również przydatne w transakcji, ponieważ pobierają dane wewnątrz transakcji. Zapewnia to podgląd zmian, które spowodują zatwierdzenie transakcji.

W poniższym przykładzie pokazano, jak używać Get-ChildItem polecenia (alias to dir), aby wyświetlić podgląd zmian w transakcji.

Następujące polecenie uruchamia transakcję.

Start-Transaction

Następujące polecenie używa New-ItemProperty polecenia cmdlet , aby dodać MyKey wpis rejestru do klucza MyCompany. Polecenie używa parametru UseTransaction do uwzględnienia polecenia w transakcji.

New-Itemproperty -path MyCompany -Name MyKey -value 123 -UseTransaction

Polecenie zwraca obiekt reprezentujący nowy wpis rejestru, ale wpis rejestru nie został zmieniony.

MyKey
-----
123

Aby uzyskać elementy, które znajdują się obecnie w rejestrze, użyj Get-ChildItem polecenia (dir) bez parametru UseTransaction. Następujące polecenie pobiera elementy rozpoczynające się od "M".

dir m*

Wynik pokazuje, że żadne wpisy nie zostały jeszcze dodane do MyCompany klucza.

Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

Aby wyświetlić podgląd efektu zatwierdzania transakcji, wprowadź Get-ChildItemdir() polecenie z parametrem UseTransaction. To polecenie ma widok danych z poziomu transakcji.

dir m* -useTransaction

Wynik pokazuje, że jeśli transakcja zostanie zatwierdzona, MyKey wpis zostanie dodany do MyCompany klucza.

Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0   1 MyCompany                      {MyKey}

Przykład 4. Łączenie transakcji i poleceń bez transakcji

Podczas transakcji można wprowadzać polecenia bez transakcji. Polecenia bez transakcji wpływają natychmiast na dane, ale nie mają wpływu na transakcję. Następujące polecenie uruchamia transakcję w kluczu HKCU:\Software rejestru.

Start-Transaction

Następne trzy polecenia używają New-Item polecenia cmdlet do dodawania kluczy do rejestru. Pierwsze i trzecie polecenia używają parametru UseTransaction do uwzględnienia poleceń w transakcji. Drugie polecenie pomija parametr . Ponieważ drugie polecenie nie jest uwzględnione w transakcji, jest skuteczne natychmiast.

New-Item MyCompany1 -UseTransaction
New-Item MyCompany2
New-Item MyCompany3 -UseTransaction

Aby wyświetlić bieżący stan rejestru, użyj Get-ChildItem polecenia (dir) bez parametru UseTransaction. To polecenie pobiera elementy rozpoczynające się od M.

dir m*

Wynik pokazuje, że MyCompany2 klucz jest dodawany do rejestru, ale MyCompany1 klucze i MyCompany3 , które są częścią transakcji, nie są dodawane.

Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0    0 MyCompany2                     {}

Następujące polecenie zatwierdza transakcję.

Complete-Transaction

Teraz klucze dodane w ramach transakcji są wyświetlane w rejestrze.

dir m*
Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
83   1 Microsoft                      {(default)}
0    0 MyCompany1                     {}
0    0 MyCompany2                     {}
0    0 MyCompany3                     {}

Przykład 5. Używanie automatycznego wycofywania

Gdy polecenie w transakcji generuje błąd dowolnego rodzaju, transakcja zostanie automatycznie wycofana.

To domyślne zachowanie jest przeznaczone dla skryptów, które uruchamiają transakcje. Skrypty są zwykle dobrze przetestowane i zawierają logikę obsługi błędów, więc błędy nie są oczekiwane i powinny zakończyć transakcję.

Pierwsze polecenie uruchamia transakcję w kluczu HKCU:\Software rejestru.

Start-Transaction

Następujące polecenie używa New-Item polecenia cmdlet , aby dodać MyCompany klucz do rejestru. Polecenie używa parametru UseTransaction (alias jest usetx) do uwzględnienia polecenia w transakcji.

New-Item MyCompany -usetx

MyCompany Ponieważ klucz już istnieje w rejestrze, polecenie kończy się niepowodzeniem, a transakcja zostanie wycofana.

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

Polecenie Get-Transaction potwierdza, że transakcja została wycofana i że konto subskrybenta ma wartość 0.

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

Przykład 6. Zmiana preferencji wycofywania

Jeśli chcesz, aby transakcja byłaby bardziej odporna na błędy, możesz użyć parametru RollbackPreference polecenia Start-Transaction , aby zmienić preferencję.

Następujące polecenie uruchamia transakcję z preferencją wycofywania .Never

Start-Transaction -RollbackPreference Never

W takim przypadku, gdy polecenie zakończy się niepowodzeniem, transakcja nie zostanie automatycznie wycofana.

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

Ponieważ transakcja jest nadal aktywna, możesz ponownie przesłać polecenie w ramach transakcji.

New-Item MyOtherCompany -usetx

Przykład 7. Używanie Use-Transaction polecenia cmdlet

Polecenie Use-Transaction cmdlet umożliwia wykonywanie bezpośrednich skryptów względem obiektów programu Microsoft .NET Framework z obsługą transakcji. Use-Transaction Przyjmuje blok skryptu, który może zawierać tylko polecenia i wyrażenia korzystające z obiektów .NET Framework z obsługą transakcji, takich jak wystąpienia klasy Microsoft.PowerShell.Commands.Management.TransactedString .

Następujące polecenie uruchamia transakcję.

Start-Transaction

Następujące New-Object polecenie tworzy wystąpienie klasy TransactedString i zapisuje je w zmiennej $t .

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

Następujące polecenie używa metody Append obiektu TransactedString , aby dodać tekst do ciągu. Ponieważ polecenie nie jest częścią transakcji, zmiana jest skuteczna natychmiast.

$t.append("Windows")

Następujące polecenie używa tej samej metody Append, aby dodać tekst, ale dodaje tekst jako część transakcji. Polecenie jest ujęte w nawiasy klamrowe i jest ustawiane jako wartość parametru ScriptBlock parametru Use-Transaction. Wymagany jest parametr UseTransaction (usetx).

Use-Transaction {$t.append(" PowerShell")} -usetx

Aby wyświetlić bieżącą zawartość transacted string w pliku $t, użyj ToString metody obiektu TransactedString .

$t.tostring()

Dane wyjściowe pokazują, że obowiązują tylko zmiany niezwiązane z transakcjami.

Windows

Aby wyświetlić bieżącą zawartość ciągu transakcyjnego w $t z poziomu transakcji, osadź wyrażenie w Use-Transaction poleceniu .

Use-Transaction {$t.tostring()} -usetx

Dane wyjściowe zawierają widok transakcji.

PowerShell

Następujące polecenie zatwierdza transakcję.

Complete-Transaction

Aby wyświetlić końcowy ciąg:

$t.tostring()
PowerShell

Przykład 8: Zarządzanie transakcjami dla wielu subskrybentów

Po rozpoczęciu transakcji, gdy trwa inna transakcja, program PowerShell domyślnie nie tworzy drugiej transakcji. Zamiast tego dodaje subskrybenta do bieżącej transakcji.

W tym przykładzie pokazano, jak wyświetlać transakcję dla wielu subskrybentów i zarządzać nią.

Rozpocznij od uruchomienia transakcji w kluczu HKCU:\Software .

Start-Transaction

Następujące polecenie używa Get-Transaction polecenia , aby uzyskać aktywną transakcję.

Get-Transaction

Wynik przedstawia obiekt reprezentujący aktywną transakcję.

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

Następujące polecenie dodaje klucz MyCompany do rejestru. Polecenie używa parametru UseTransaction do uwzględnienia polecenia w transakcji.

New-Item MyCompany -UseTransaction

Następujące polecenie używa Start-Transaction polecenia , aby uruchomić transakcję. Mimo że to polecenie jest wpisywane w wierszu polecenia, ten scenariusz jest bardziej prawdopodobny po uruchomieniu skryptu zawierającego transakcję.

Start-Transaction

Polecenie Get-Transaction pokazuje, że liczba subskrybentów dla obiektu transakcji jest zwiększana. Wartość wynosi teraz 2.

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

Następne polecenie używa New-ItemProperty polecenia cmdlet , aby dodać wpis rejestru MyKey do klucza MyCompany. Używa parametru UseTransaction do uwzględnienia polecenia w transakcji.

New-ItemProperty -path MyCompany -name MyKey -UseTransaction

Klucz MyCompany nie istnieje w rejestrze, ale to polecenie powiedzie się, ponieważ dwa polecenia są częścią tej samej transakcji.

Następujące polecenie zatwierdza transakcję. Jeśli wycofa transakcję, transakcja zostanie wycofana dla wszystkich subskrybentów.

Complete-Transaction

Polecenie Get-Transaction pokazuje, że liczba subskrybentów w obiekcie transakcji wynosi 1, ale wartość Status jest nadal aktywna (nie zatwierdzona).

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

Aby zakończyć zatwierdzanie transakcji, wprowadź drugie polecenie Complete- Transaction. Aby zatwierdzić transakcję dla wielu subskrybentów, musisz wprowadzić jedno Complete-Transaction polecenie dla każdego Start-Transaction polecenia.

Complete-Transaction

Inne Get-Transaction polecenie pokazuje, że transakcja została zatwierdzona.

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

Przykład 9: Zarządzanie niezależnymi transakcjami

Po rozpoczęciu transakcji, gdy inna transakcja jest w toku, można użyć parametru Independent , Start-Transaction aby utworzyć nową transakcję niezależnie od oryginalnej transakcji.

Gdy to zrobisz, tworzy nowy obiekt transakcji i sprawia, Start-Transaction że nowa transakcja jest aktywna transakcja.

Rozpocznij od uruchomienia transakcji w kluczu HKCU:\Software .

Start-Transaction

Następujące polecenie używa Get-Transaction polecenia , aby uzyskać aktywną transakcję.

Get-Transaction

Wynik przedstawia obiekt reprezentujący aktywną transakcję.

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

Następujące polecenie dodaje klucz rejestru MyCompany w ramach transakcji. Używa parametru UseTransaction (usetx) do uwzględnienia polecenia w aktywnej transakcji.

New-Item MyCompany -use

Następujące polecenie uruchamia nową transakcję. Polecenie używa parametru Independent, aby wskazać, że ta transakcja nie jest subskrybentem aktywnej transakcji.

Start-Transaction -Independent

Podczas tworzenia niezależnej transakcji nowa (ostatnio utworzona) transakcja staje się aktywną transakcją. Aby uzyskać aktywną transakcję, możesz użyć Get-Transaction polecenia .

Get-Transaction

Należy pamiętać, że liczba subskrybentów transakcji wynosi 1, co oznacza, że nie ma innych subskrybentów i że transakcja jest nowa.

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

Aby można było zarządzać oryginalną transakcją, należy zakończyć nową transakcję (zatwierdzoną lub wycofaną).

Następujące polecenie dodaje klucz MyOtherCompany do rejestru. Używa parametru UseTransaction (usetx) do uwzględnienia polecenia w aktywnej transakcji.

New-Item MyOtherCompany -usetx

Teraz wycofaj transakcję. Gdyby była jedna transakcja z dwoma subskrybentami, wycofanie transakcji spowoduje wycofanie całej transakcji dla wszystkich subskrybentów.

Jednak ponieważ te transakcje są niezależne, wycofywanie najnowszych transakcji anuluje zmiany rejestru i powoduje, że oryginalna transakcja jest aktywna transakcja.

Undo-Transaction

Polecenie Get-Transaction potwierdza, że oryginalna transakcja jest nadal aktywna w sesji.

Get-Transaction
RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

Następujące polecenie zatwierdza aktywną transakcję.

Complete-Transaction

Polecenie Get-ChildItem pokazuje, że rejestr został zmieniony.

dir m*
Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

Zobacz też