Sql server 如何关闭SQL 2016的遥测功能

Sql server 如何关闭SQL 2016的遥测功能,sql-server,Sql Server,安装SQL 2016将自动启用所有“CEIP”或客户体验改善计划元素。这些元素向Microsoft报告安装体验的各个方面以及功能使用情况。我想把它关掉,因为它都被我们的防火墙屏蔽了,我不需要头痛。事实证明,这样做似乎很容易。设置以下注册表项: HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\130\CustomerFeedback=0 HKEY_LOCAL_MACHINE\Software\Microsoft\Microsof

安装SQL 2016将自动启用所有“CEIP”或客户体验改善计划元素。这些元素向Microsoft报告安装体验的各个方面以及功能使用情况。我想把它关掉,因为它都被我们的防火墙屏蔽了,我不需要头痛。

事实证明,这样做似乎很容易。设置以下注册表项:

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
如果任何一个密钥都不存在,那也没关系,因为您显然没有安装该功能

禁用以下服务:

SQL Analysis Services CEIP
SQL Server CEIP service
SQL Server Integration Services CEIP service 13.0
巫术
快速修复版本:

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。

您还可以使用随Microsoft SQL Server 2016安装的“错误和使用情况报告设置”应用程序


这用漂亮的图片展示了细节。编辑注册表可能会节省大量时间。在我的测试中,它不需要重新启动服务,只是工作了。

下面是一个Powershell脚本,它将禁用所有遥测CEIP服务,并将更新注册表以禁用CustomerFeedback和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" 
             }
    }

如果有人使用Powershell进行安装,下面的所需状态配置(sqlserverdsc/sqlsetup)将处理db引擎和SSIS遥测服务。我相信您可以修改以前用户为AS/RS发布的其他注册表值。这假设SQL 2016和默认命名实例,并且您将使用computermanagementdsc


        Registry RegistrySqlIsCustFeedback
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\CPE"
            ValueType   = "Dword"
            ValueName   = "CustomerFeedback"
            ValueData   = "0"
        }

        Registry RegistrySqlIsErrReporting
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\CP"
            ValueType   = "Dword"
            ValueName   = "EnableErrorReporting"
            ValueData   = "0"
        }
        
        Registry RegistrySqlCustFeedback64
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\130"
            ValueType   = "Dword"
            ValueName   = "CustomerFeedback"
            ValueData   = "0"
        }
        Registry RegistryErrReporting64
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\130"
            ValueType   = "Dword"
            ValueName   = "EnableErrorReporting"
            ValueData   = "0"
        }
        Registry RegistrySqlCustFeedback
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130"
            ValueType   = "Dword"
            ValueName   = "CustomerFeedback"
            ValueData   = "0"
        }
        Registry RegistryErrReporting
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130"
            ValueType   = "Dword"
            ValueName   = "EnableErrorReporting"
            ValueData   = "0"
        }


谢谢不知道为什么,但three telemetry服务在我们的服务器上使用了大量ram…如果这些特定密钥不存在,可能您安装了另一个版本,并且这些密钥仍然在附近(比如SQL server 2017而不是2016,版本号为140而不是130)@dakab你说得对-只需更改号码以匹配当前版本即可。但是,随着SSR与SQL的分离,注册表项发生了变化。现在是
Computer\HKEY\u LOCAL\u MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\SSRS\CPE
@ScottRFrost是的,它会的。SQL 2017以14或140的形式在注册表中,但它仍会在注册表中循环并设置它们。我看不到任何图片,但文本足够好“启动SQL Server错误和使用情况报告,单击或点击开始,然后在搜索框中搜索“错误”。将显示SQL Server错误和使用情况报告项目”@JerryHung我关闭了此功能,但CEIP服务仍在运行。你重启了吗?我想也许这个应用程序只是关闭了发送,而不是收集。我停止并禁用了Telemetry(CEIP)服务。我很好奇是否有人查看此线程也试图禁用或删除Telemetry\u xevents会话以及NT Service\SQLTELEMETRY用户帐户。我看过Kendra Little对使用的解释,但对拔掉插头的详细说明很少。