Test-Dtc

Applies To: Windows Server 2012 R2 Preview

Test-Dtc

Performs a test on two specified computers to determine whether they can participate in networked transactions.

Syntax

Parameter Set: Default
Test-Dtc [-LocalComputerName <String> ] [-RemoteComputerName <String> ] [-ResourceManagerPort <Int32> ] [ <CommonParameters>]

Detailed Description

This cmdlet performs the following tests on two computers to determine whether they can participate in networked transactions:

1. Checks if the required firewall rules are enabled.

2. Checks if the Microsoft Distributed Transaction Coordinator (MSDTC) network security settings are correctly configured for network transactions.

3. Checks if the two computers can ping each other.

4. Checks if a transaction can be propagated between the two computers.

Parameters

-LocalComputerName<String>

Specifies the virtual server name of the MSDTC instance on the local computer to be tested.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-RemoteComputerName<String>

Specifies the virtual server name of the MSDTC instance on the remote computer to be tested.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ResourceManagerPort<Int32>

Specifies the port number to be used by the MSDTC Diagnostic Resource Manager. If not specified port 3002 is used.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

<CommonParameters>

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see    about_CommonParameters.

Inputs

The input type is the type of the objects that you can pipe to the cmdlet.

Outputs

The output type is the type of the objects that the cmdlet emits.

Examples

Example 1

The following example shows how to use Test-Dtc on the local computer.

PS C:\> Test-Dtc -LocalComputerName $env:COMPUTERNAME -Verbose
VERBOSE: ": Firewall rule for "RPC Endpoint Mapper" is enabled." 
VERBOSE: ": Firewall rule for "DTC incoming connections" is enabled."
VERBOSE: ": Firewall rule for "DTC outgoing connections" is enabled."
VERBOSE: CSVM1554203-GU: AuthenticationLevel: Mutual
VERBOSE: CSVM1554203-GU: InboundTransactionsEnabled: True
VERBOSE: CSVM1554203-GU: OutboundTransactionsEnabled: True
VERBOSE: CSVM1554203-GU: RemoteClientAccessEnabled: False
VERBOSE: CSVM1554203-GU: RemoteAdministrationAccessEnabled: True
VERBOSE: CSVM1554203-GU: XATransactionsEnabled: True
VERBOSE: CSVM1554203-GU: LUTransactionsEnabled: True

Example 2

The following example shows how to use Test-Dtc by specifying a remote computer name and a resource manager port.

PS C:\> Test-Dtc -LocalComputerName $env:COMPUTERNAME -RemoteComputerName CSVM1554501-GU -ResourceManagerPort 17100 -Verbose
VERBOSE: ": Firewall rule for "RPC Endpoint Mapper" is enabled." 
VERBOSE: ": Firewall rule for "DTC incoming connections" is enabled."
VERBOSE: ": Firewall rule for "DTC outgoing connections" is enabled."
VERBOSE: CSVM1554203-GU: AuthenticationLevel: Mutual
VERBOSE: CSVM1554203-GU: InboundTransactionsEnabled: True
VERBOSE: CSVM1554203-GU: OutboundTransactionsEnabled: True
VERBOSE: CSVM1554203-GU: RemoteClientAccessEnabled: False
VERBOSE: CSVM1554203-GU: RemoteAdministrationAccessEnabled: True
VERBOSE: CSVM1554203-GU: XATransactionsEnabled: True
VERBOSE: CSVM1554203-GU: LUTransactionsEnabled: True
VERBOSE: Loading module from path 'C:\Windows\System32\WindowsPowerShell\v1.0\Modules\CimCmdlets\CimCmdlets.psd1'.
VERBOSE: Loading 'Assembly' from path
'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.Management.Infrastructure.CimCmdlets\v4.0_1.0.0.0__31bf3856ad364e
35\Microsoft.Management.Infrastructure.CimCmdlets.dll'.
VERBOSE: Loading 'Assembly' from path
'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.Management.Infrastructure\v4.0_1.0.0.0__31bf3856ad364e35\Microsoft.Management.Infrastructure.dll'.
VERBOSE: Exporting cmdlet 'Get-CimInstance'.
VERBOSE: Exporting cmdlet 'Get-CimSession'.
VERBOSE: Exporting cmdlet 'New-CimSession'.
VERBOSE: Exporting cmdlet 'New-CimSessionOption'.
VERBOSE: Exporting cmdlet 'Remove-CimSession'.
VERBOSE: Exporting cmdlet 'Get-CimAssociatedInstance'.
VERBOSE: Exporting cmdlet 'Get-CimClass'.
VERBOSE: Exporting cmdlet 'Invoke-CimMethod'.
VERBOSE: Exporting cmdlet 'New-CimInstance'.
VERBOSE: Exporting cmdlet 'Register-CimIndicationEvent'.
VERBOSE: Exporting cmdlet 'Remove-CimInstance'.
VERBOSE: Exporting cmdlet 'Set-CimInstance'.
VERBOSE: Importing cmdlet 'Get-CimAssociatedInstance'.
VERBOSE: Importing cmdlet 'Get-CimClass'.
VERBOSE: Importing cmdlet 'Get-CimInstance'.
VERBOSE: Importing cmdlet 'Get-CimSession'.
VERBOSE: Importing cmdlet 'Invoke-CimMethod'.
VERBOSE: Importing cmdlet 'New-CimInstance'.
VERBOSE: Importing cmdlet 'New-CimSession'.
VERBOSE: Importing cmdlet 'New-CimSessionOption'.
VERBOSE: Importing cmdlet 'Register-CimIndicationEvent'.
VERBOSE: Importing cmdlet 'Remove-CimInstance'.
VERBOSE: Importing cmdlet 'Remove-CimSession'.
VERBOSE: Importing cmdlet 'Set-CimInstance'.
VERBOSE: "CSVM1554501-GU Operating System Version: 6.2.8179."
VERBOSE: "CSVM1554501-GU: Firewall rule for "RPC Endpoint Mapper" is enabled."
VERBOSE: "CSVM1554501-GU: Firewall rule for "DTC incoming connections" is enabled."
VERBOSE: "CSVM1554501-GU: Firewall rule for "DTC outgoing connections" is enabled."
VERBOSE: CSVM1554501-GU: AuthenticationLevel: Mutual
VERBOSE: CSVM1554501-GU: InboundTransactionsEnabled: True
VERBOSE: CSVM1554501-GU: OutboundTransactionsEnabled: True
VERBOSE: CSVM1554501-GU: RemoteClientAccessEnabled: False
VERBOSE: CSVM1554501-GU: RemoteAdministrationAccessEnabled: True
VERBOSE: CSVM1554501-GU: XATransactionsEnabled: True
VERBOSE: CSVM1554501-GU: LUTransactionsEnabled: True
VERBOSE: "Pinging computer CSVM1554203-GU from CSVM1554501-GU succeeded."
VERBOSE: "Pinging computer CSVM1554501-GU from CSVM1554203-GU succeeded."
VERBOSE: CSVM1554203-GU: OleTx: a9f3f4c0-cc24-4f34-bfc3-6b6d819dab84
VERBOSE: CSVM1554501-GU: OleTx: 94a24f8a-3040-4fa2-9f27-833ffb2037bc
VERBOSE: CSVM1554203-GU: XA: f35da6a2-26d2-4d14-98e6-1a8feea41bc8
VERBOSE: CSVM1554501-GU: XA: 15614187-293b-4a39-92ce-6740b1ea526c
VERBOSE: CSVM1554203-GU: UIS: 7f8d8ad0-7096-47fd-9aab-5d561852c93b
VERBOSE: CSVM1554501-GU: UIS: e1a97aaa-003c-4b61-a978-8601e8438d5f
VERBOSE: "This diagnostic test will attempt to carry out a transaction propagation between CSVM1554203-GU and
CSVM1554501-GU. It requires that a TCP port is opened on CSVM1554203-GU so that a Test Resource Manager can participate
in network transactions." "You have specified 17100 as the 'ResourceManagerPort'." "Please open port 17100 in the
firewall to proceed with the test."
VERBOSE: "Test resource manager started."
VERBOSE: "A new PSSession to CSVM1554501-GU created."
VERBOSE: "Transaction propagated from CSVM1554203-GU to CSVM1554501-GU using PULL propagation."
VERBOSE: "Transaction propagated from CSVM1554203-GU to CSVM1554501-GU using PUSH propagation."
VERBOSE: "Test Resource Manager Verbose Log:"
VERBOSE: DtcDiagRM:17100 is now listening at http://CSVM1554203-GU:17100/DTCDiagRM.
VERBOSE: Resolution of IP address to hostname failed, just using IP address: 2001:4898:2a:1006:c041:b365:30de:b2e3.
VERBOSE: DtcDiagRM:17100 received a request for PropagationToken from 2001:4898:2a:1006:c041:b365:30de:b2e3.
VERBOSE: DtcDiagRM:17100 created Transaction 4a546251-db38-4fe9-91bb-22e532deb68b.
VERBOSE: DtcDiagRM:17100 obtained a PropagationToken for Transaction 4a546251-db38-4fe9-91bb-22e532deb68b from DTC.
VERBOSE: Resolution of IP address to hostname failed, just using IP address: 2001:4898:2a:1006:c041:b365:30de:b2e3.
VERBOSE: ResourceManager DtcDiagRM:17100 received a request for an ExportCookie from 2001:4898:2a:1006:c041:b365:30de:b2e3.
VERBOSE: DtcDiagRM:17100 created Transaction cc088777-03c6-43cc-83f6-06539b83e1fd. VERBOSE: DtcDiagRM:17100 obtained an ExportCookie for Transaction cc088777-03c6-43cc-83f6-06539b83e1fd from DTC.
VERBOSE: Resource Manager DtcDiagRM:17100 - 24aeb805-7ef5-4410-9a19-f5fddf93c4d2 is removed.

Example 3

The following example shows how to use Test-Dtc to test turning off inbound transactions on a local computer.

PS C:\> Test-Dtc -LocalComputerName $env:COMPUTERNAME -RemoteComputerName CSVM1554501-GU -ResourceManagerPort 17100 -Verbose
VERBOSE: ": Firewall rule for "RPC Endpoint Mapper" is enabled."
VERBOSE: ": Firewall rule for "DTC incoming connections" is enabled." 
VERBOSE: ": Firewall rule for "DTC outgoing connections" is enabled."
VERBOSE: CSVM1554203-GU: AuthenticationLevel: Mutual
VERBOSE: CSVM1554203-GU: InboundTransactionsEnabled: False
WARNING: "CSVM1554203-GU: Inbound transactions are not allowed and this computer cannot participate in network transactions."
VERBOSE: CSVM1554203-GU: OutboundTransactionsEnabled: True
VERBOSE: CSVM1554203-GU: RemoteClientAccessEnabled: False
VERBOSE: CSVM1554203-GU: RemoteAdministrationAccessEnabled: True
VERBOSE: CSVM1554203-GU: XATransactionsEnabled: True
VERBOSE: CSVM1554203-GU: LUTransactionsEnabled: True
VERBOSE: Operation '' complete.
VERBOSE: "CSVM1554501-GU Operating System Version: 6.2.8179."
VERBOSE: "CSVM1554501-GU: Firewall rule for "RPC Endpoint Mapper" is enabled."
VERBOSE: "CSVM1554501-GU: Firewall rule for "DTC incoming connections" is enabled."
VERBOSE: "CSVM1554501-GU: Firewall rule for "DTC outgoing connections" is enabled."
VERBOSE: CSVM1554501-GU: AuthenticationLevel: Mutual
VERBOSE: CSVM1554501-GU: InboundTransactionsEnabled: True
VERBOSE: CSVM1554501-GU: OutboundTransactionsEnabled: True
VERBOSE: CSVM1554501-GU: RemoteClientAccessEnabled: False
VERBOSE: CSVM1554501-GU: RemoteAdministrationAccessEnabled: True
VERBOSE: CSVM1554501-GU: XATransactionsEnabled: True
VERBOSE: CSVM1554501-GU: LUTransactionsEnabled: True
VERBOSE: "Pinging computer CSVM1554203-GU from CSVM1554501-GU succeeded."
VERBOSE: "Pinging computer CSVM1554501-GU from CSVM1554203-GU succeeded."
VERBOSE: CSVM1554203-GU: OleTx: a9f3f4c0-cc24-4f34-bfc3-6b6d819dab84
VERBOSE: CSVM1554501-GU: OleTx: 94a24f8a-3040-4fa2-9f27-833ffb2037bc
VERBOSE: CSVM1554203-GU: XA: f35da6a2-26d2-4d14-98e6-1a8feea41bc8
VERBOSE: CSVM1554501-GU: XA: 15614187-293b-4a39-92ce-6740b1ea526c
VERBOSE: CSVM1554203-GU: UIS: 7f8d8ad0-7096-47fd-9aab-5d561852c93b
VERBOSE: CSVM1554501-GU: UIS: e1a97aaa-003c-4b61-a978-8601e8438d5f
"DTC security settings and firewall settings should be fixed in order to complete the transactions propagation test."
At C:\Windows\System32\WindowsPowerShell\v1.0\Modules\MsDtc\TestDtc.psm1:712 char:25
+ throw $Strings.NeedDtcSecurityFix
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: ("DTC security s...pagation test.":String) [], RuntimeException
+ FullyQualifiedErrorId : "DTC security settings and firewall settings should be fixed in order to complete the transactions propagation test."

Example 4

The following example shows how to use Test-Dtc to test turning off outbound transactions on a local computer.

PS C:\> Test-Dtc -LocalComputerName $env:COMPUTERNAME -RemoteComputerName CSVM1554501-GU -ResourceManagerPort 17100 -Verbose
VERBOSE: ": Firewall rule for "RPC Endpoint Mapper" is enabled." 
VERBOSE: ": Firewall rule for "DTC incoming connections" is enabled."
VERBOSE: ": Firewall rule for "DTC outgoing connections" is enabled."
VERBOSE: CSVM1554203-GU: AuthenticationLevel: Mutual
VERBOSE: CSVM1554203-GU: InboundTransactionsEnabled: True
VERBOSE: CSVM1554203-GU: OutboundTransactionsEnabled: False
WARNING: "CSVM1554203-GU: Outbound transactions are not allowed and this computer cannot participate in network transactions."
VERBOSE: CSVM1554203-GU: RemoteClientAccessEnabled: False
VERBOSE: CSVM1554203-GU: RemoteAdministrationAccessEnabled: True
VERBOSE: CSVM1554203-GU: XATransactionsEnabled: True
VERBOSE: CSVM1554203-GU: LUTransactionsEnabled: True
VERBOSE: Operation '' complete.
VERBOSE: "CSVM1554501-GU Operating System Version: 6.2.8179."
VERBOSE: "CSVM1554501-GU: Firewall rule for "RPC Endpoint Mapper" is enabled."
VERBOSE: "CSVM1554501-GU: Firewall rule for "DTC incoming connections" is enabled."
VERBOSE: "CSVM1554501-GU: Firewall rule for "DTC outgoing connections" is enabled."
VERBOSE: CSVM1554501-GU: AuthenticationLevel: Mutual
VERBOSE: CSVM1554501-GU: InboundTransactionsEnabled: True
VERBOSE: CSVM1554501-GU: OutboundTransactionsEnabled: True
VERBOSE: CSVM1554501-GU: RemoteClientAccessEnabled: False
VERBOSE: CSVM1554501-GU: RemoteAdministrationAccessEnabled: True
VERBOSE: CSVM1554501-GU: XATransactionsEnabled: True
VERBOSE: CSVM1554501-GU: LUTransactionsEnabled: True
VERBOSE: "Pinging computer CSVM1554203-GU from CSVM1554501-GU succeeded."
VERBOSE: "Pinging computer CSVM1554501-GU from CSVM1554203-GU succeeded."
VERBOSE: CSVM1554203-GU: OleTx: a9f3f4c0-cc24-4f34-bfc3-6b6d819dab84
VERBOSE: CSVM1554501-GU: OleTx: 94a24f8a-3040-4fa2-9f27-833ffb2037bc
VERBOSE: CSVM1554203-GU: XA: f35da6a2-26d2-4d14-98e6-1a8feea41bc8
VERBOSE: CSVM1554501-GU: XA: 15614187-293b-4a39-92ce-6740b1ea526c
VERBOSE: CSVM1554203-GU: UIS: 7f8d8ad0-7096-47fd-9aab-5d561852c93b
VERBOSE: CSVM1554501-GU: UIS: e1a97aaa-003c-4b61-a978-8601e8438d5f
"DTC security settings and firewall settings should be fixed in order to complete the transactions propagation test."
At C:\Windows\System32\WindowsPowerShell\v1.0\Modules\MsDtc\TestDtc.psm1:712 char:25
+ throw $Strings.NeedDtcSecurityFix
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: ("DTC security s...pagation test.":String) [], RuntimeException
+ FullyQualifiedErrorId : "DTC security settings and firewall settings should be fixed in order to complete the transactions propagation test."