2015-01-26 2 views
1

Я пытаюсь выполнить следующий скрипт:Использование транзакций с powershell?

Start-Transaction 
Remove-Item D:\sandbox\temp.txt -UseTransaction 
Undo-Transaction 

Я получаю следующее сообщение об ошибке:

The provider does not support transactions. Perform the operation again without the -UseTransaction parameter. 
At line:3 char:1 
+ Remove-Item D:\sandbox\temp.txt -UseTransaction 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotImplemented: (:) [], PSNotSupportedException 
    + FullyQualifiedErrorId : NotSupported 

Кто-нибудь знает почему? Я использую Windows 7 Professional x64 с Powershell 4. D: \ является локальным диском.

ответ

5

От Get-Help для запуска транзакции:

The cmdlets used in a transaction must be designed to support transactions. Cmdlets that support transactions have a UseTransaction parameter. To perform transactions in a provider, the provider must support transactions. The Windows PowerShell Registry provider in Windows Vista and later versions of Windows supports transactions. You can also use the Microsoft.PowerShell.Commands.Management.TransactedString class to include expressions in transactions on any version of Windows that supports Windows PowerShell. Other Windows PowerShell providers can also support transactions.

Выделено

Я не верю, что поставщик FileSystem поддерживает транзакции.

+0

согласно https://technet.microsoft.com/en-us/library/hh849765.aspx Элемент Remove-Item поддерживает транзакции. – coding4fun

+0

Утилита Remove-Item поддерживает транзакции *** При использовании с поставщиком, который поддерживает транзакции ***. Так, например, вы должны иметь возможность использовать remove-item в качестве транзакции с поставщиком реестра, например. – EBGreen

+0

спасибо за разъяснение. Я знаю, что Vista + добавила транзакции, основанные на файлах, для ОС, которые я предположил неправильно, что собственные командлеты Microsoft будут поддерживать функциональность. Да, какая удача. Они были бы полезны. – coding4fun

Смежные вопросы