To enable tracing in a remote computer, we can execute this PowerShell script
$computer = "mycomputer" $cred = Get-Credential mydomain\myadminaccount Enter-PSSession $computer -Credential $cred Push-Location if (-not(Test-Path("HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\SQLTools"))) { Set-Location "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server" New-Item -Name SQLTools } if (-not(Test-Path("HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\SQLTools\dcexec"))) { Set-Location "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\SQLTools" New-Item -Name dcexec New-ItemProperty -Name Components -PropertyType string -Path dcexec -Value "DCEXEC,TxDataCollector,DataCollectorController,DataCollectorTasks,Microsoft.SqlServer.Management.CollectorTasks.dll" New-ItemProperty -Name Tracelvl -PropertyType dword -Path dcexec -Value "4294967287" New-ItemProperty -Name Traceloc -PropertyType dword -Path dcexec -Value 3 New-ItemProperty -Name Prefix -PropertyType string -Path dcexec -Value "date,time,pid,tid" New-ItemProperty -Name LogDir -PropertyType string -Path dcexec -Value "c:\temp\tracing" New-ItemProperty -Name LogFileMode -PropertyType string -Path dcexec -Value "Unique" } Pop-Location Exit
Then restart data collection using the script of a previous post
A trace file per process id will be created on c:\temp\tracing, once the error in question occurs, we can open the respective file to see the information logged. File name example:
c:\Temp\Tracing\dcexec_04_27_2015_09_22_28_PID30316_n.log
To disable tracing in a remote computer, we can execute this PowerShell script
$computer = "mycomputer" $cred = Get-Credential mydomain\myadminaccount Enter-PSSession $computer -Credential $cred Push-Location if (Test-Path("HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\SQLTools")) { Remove-Item "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\SQLTools" -Recurse } Pop-Location Exit
Then restart data collection using the script of a previous post