How to disable telemetry for SQL 2016

Installing SQL 2016 automatically includes all elements of the CEIP or Customer Experience Improvement program. These elements tell Microsoft about various aspects of your installation process, as well as about the use of features. I want to disable it because it is all blocked by our firewalls and I don't need a headache.

+6
source share
4 answers

It turns out that doing this seems pretty easy. Set the following registry keys:

HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\130\CustomerFeedback=0
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\130\EnableErrorReporting=0
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSAS13.TESTINSTANCE\CPE\CustomerFeedback=0
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSAS13.TESTINSTANCE\CPE\EnableErrorReporting=0
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSRS13.TESTINSTANCE\CPE\CustomerFeedback=0
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSRS13.TESTINSTANCE\CPE\EnableErrorReporting=0
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSSQL13.TESTINSTANCE\CPE\CustomerFeedback=0
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSSQL13.TESTINSTANCE\CPE\EnableErrorReporting=0
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Microsoft SQL Server\130\CustomerFeedback=0
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Microsoft SQL Server\130\EnableErrorReporting=0

If any of the keys does not exist, then this is OK, because you apparently did not install this function.

Disable the following services:

SQL Analysis Services CEIP
SQL Server CEIP service
SQL Server Integration Services CEIP service 13.0
+13
source

Necromancing.

Quick version:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130]
"EnableErrorReporting"=dword:00000000
"CustomerFeedback"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\130]
"EnableErrorReporting"=dword:00000000
"CustomerFeedback"=dword:00000000




[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\CPE]
"EnableErrorReporting"=dword:00000000
"CustomerFeedback"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS13.MSSQLSERVER\CPE]
"EnableErrorReporting"=dword:00000000
"CustomerFeedback"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSRS13.MSSQLSERVER\CPE]
"EnableErrorReporting"=dword:00000000
"CustomerFeedback"=dword:00000000

MSSQLSERVER .

+2

You can also use the Error and Usage Report Settings application installed with Microsoft SQL Server 2016.

This article shows details with good images. You can save a fat-finger by editing your registry. In my testing, it did not require a restart of the service, it just worked.

+2
source

Here is a Powershell script that will disable all CEIP telemetry services and update the registry to disable CustomerFeedback and EnableErrorReporting:

Get-Service | 
    Where-Object { $_.Name -like '*telemetry*' -or $_.DisplayName -like '*CEIP*' } | 
    ForEach-Object { 
        $servicename = $_.Name; 
        $displayname = $_.DisplayName; 
        Set-Service -Name $servicename  -StartupType Disabled 
        $serviceinfo = Get-Service -Name $servicename 
        $startup = $serviceinfo.StartType
        Write-Host "$servicename : $startup : $displayname";  
    }

Set-Location "HKLM:\"
$sqlentries = @( "\Software\Microsoft\Microsoft SQL Server\", "\Software\Wow6432Node\Microsoft\Microsoft SQL Server\" ) 
Get-ChildItem -Path $sqlentries -Recurse |
    ForEach-Object {
        $keypath = $_.Name
        (Get-ItemProperty -Path $keypath).PSObject.Properties |
             Where-Object { $_.Name -eq "CustomerFeedback" -or $_.Name -eq "EnableErrorReporting" } |
             ForEach-Object {
                $itemporpertyname = $_.Name
                $olditemporpertyvalue = Get-ItemPropertyValue -Path $keypath -Name $itemporpertyname
                Set-ItemProperty  -Path $keypath -Name $itemporpertyname -Value 0
                $newitemporpertyvalue = Get-ItemPropertyValue -Path $keypath -Name $itemporpertyname
                Write-Host "$keypath.$itemporpertyname = $olditemporpertyvalue --> $newitemporpertyvalue" 
             }
    }
0
source

Source: https://habr.com/ru/post/1016687/


All Articles