Udostępnij za pomocą


Use-Transaction

Dodaje blok skryptu do aktywnej transakcji.

Składnia

Default (domyślnie)

Use-Transaction
    [-TransactedScript] <ScriptBlock>
    [-UseTransaction]
    [<CommonParameters>]

Opis

Polecenie cmdlet Use-Transaction dodaje blok skryptu do aktywnej transakcji. Dzięki temu można wykonywać skrypty transakcyjne przy użyciu obiektów programu Microsoft .NET Framework z obsługą transakcji. Blok skryptu może zawierać tylko obiekty .NET Framework z obsługą transakcji, takie jak wystąpienia klasy Microsoft.PowerShell.Commands.Management.TransactedString.

Parametr UseTransaction, który jest opcjonalny dla większości poleceń cmdlet, jest wymagany podczas korzystania z tego polecenia cmdlet.

Use-Transaction to jedno z zestawu poleceń cmdlet, które obsługują funkcję transakcji w programie Windows PowerShell. Aby uzyskać więcej informacji, zobacz about_Transactions.

Przykłady

Przykład 1: Skrypt przy użyciu obiektu z obsługą transakcji

PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> $transactedString.ToString()
Hello
PS C:\> Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
PS C:\> Complete-Transaction
PS C:\> $transactedString.ToString()
Hello, World

W tym przykładzie pokazano, jak używać Use-Transaction do tworzenia skryptu względem obiektu .NET Framework z włączoną obsługą transakcji. W tym przypadku obiekt jest obiektem TransactedString.

Pierwsze polecenie używa polecenia cmdlet Start-Transaction do uruchomienia transakcji.

Drugie polecenie używa polecenia New-Object, aby utworzyć obiekt TransactedString. Przechowuje obiekt w zmiennej $TransactedString.

Zarówno trzecie, jak i czwarte polecenie używają metody Append obiektu TransactedString w celu dodania tekstu do wartości $TransactedString. Jedno polecenie jest częścią transakcji. Inne polecenie nie jest.

Trzecie polecenie używa metody Append ciągu, którego dotyczy transakcja, aby dodać Hello do wartości $TransactedString. Ponieważ polecenie nie jest częścią transakcji, zmiana jest stosowana natychmiast.

Czwarte polecenie używa Use-Transaction w celu dodania tekstu do ciągu w transakcji. Polecenie używa metody Append w celu dodania ", World" do wartości $TransactedString. Polecenie jest ujęte w nawiasy klamrowe ({} ), aby utworzyć blok skryptu. Parametr UseTransaction jest wymagany w tym poleceniu.

Piąte i szóste polecenia używają metody ToString obiektu TransactedString, aby wyświetlić wartość TransactedString jako ciąg. Ponownie jedno polecenie jest częścią transakcji. Druga transakcja nie jest.

Piąte polecenie używa metody ToString, aby wyświetlić bieżącą wartość zmiennej $TransactedString. Ponieważ nie jest częścią transakcji, wyświetla tylko bieżący stan ciągu.

Szóste polecenie używa Use-Transaction do uruchomienia tego samego polecenia w transakcji. Ponieważ polecenie jest częścią transakcji, wyświetla bieżącą wartość ciągu w transakcji, podobnie jak podgląd zmian transakcji.

Siódme polecenie używa polecenia cmdlet Complete-Transaction do zatwierdzenia transakcji.

Ostatnie polecenie używa metody ToString, aby wyświetlić wynikową wartość zmiennej jako ciąg.

Przykład 2. Wycofywanie transakcji

PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> Undo-Transaction
PS C:\> $transactedString.ToString()
Hello

W tym przykładzie pokazano efekt wycofania transakcji, która zawiera polecenia Use-Transaction . Podobnie jak wszystkie polecenia w transakcji, po wycofaniu transakcji zmiany transakcji zostaną odrzucone, a dane pozostaną niezmienione.

Pierwsze polecenie używa Start-Transaction do uruchomienia transakcji.

Drugie polecenie używa New-Object do utworzenia obiektu TransactedString . Przechowuje obiekt w zmiennej $TransactedString.

Trzecie polecenie, które nie jest częścią transakcji, używa metody Append w celu dodania wartości "Hello" do wartości $TransactedString.

Czwarte polecenie używa Use-Transaction do uruchomienia innego polecenia, które używa metody Append w transakcji. Polecenie używa metody Append w celu dodania ", World" do wartości $TransactedString.

Piąte polecenie używa polecenia cmdlet Undo-Transaction do wycofania transakcji. W związku z tym wszystkie polecenia wykonywane w transakcji są odwracane.

Ostatnie polecenie używa metody ToString w celu wyświetlenia wynikowej wartości $TransactedString jako ciągu. Wyniki pokazują, że do obiektu zastosowano tylko zmiany wprowadzone poza transakcją.

Parametry

-TransactedScript

Określa blok skryptu uruchamiany w transakcji. Wprowadź dowolny prawidłowy blok skryptu ujęty w nawiasy klamrowe ( { } ). Ten parametr jest wymagany.

Właściwości parametru

Typ:ScriptBlock
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:0
Obowiązkowe:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-UseTransaction

Zawiera polecenie w aktywnej transakcji. Ten parametr jest prawidłowy tylko wtedy, gdy transakcja jest w toku. Aby uzyskać więcej informacji, zobacz about_Transactions.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:usetx

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

None

Nie można przekazać danych wejściowych potoku do tego polecenia cmdlet.

Dane wyjściowe

PSObject

To polecenie cmdlet zwraca wynik transakcji.

Uwagi

  • Parametr UseTransaction zawiera polecenie w aktywnej transakcji. Ponieważ polecenie cmdlet Use-Transaction jest zawsze używane w transakcjach, ten parametr jest wymagany, aby każde polecenie Use-Transaction było skuteczne.