如何关闭SQL 2016的遥测



安装SQL 2016自动打开所有" CEIP"或客户体验改进程序元素。这些元素向Microsoft报告了您的安装体验的各个方面以及您的功能使用情况。我想将其关闭,因为无论如何都被我们的防火墙所阻挡,我不需要头痛。

结果,这样做似乎很容易。设置以下注册表键:

HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL Server130CustomerFeedback=0
HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL Server130EnableErrorReporting=0
HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL ServerMSAS13.TESTINSTANCECPECustomerFeedback=0
HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL ServerMSAS13.TESTINSTANCECPEEnableErrorReporting=0
HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL ServerMSRS13.TESTINSTANCECPECustomerFeedback=0
HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL ServerMSRS13.TESTINSTANCECPEEnableErrorReporting=0
HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL ServerMSSQL13.TESTINSTANCECPECustomerFeedback=0
HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL ServerMSSQL13.TESTINSTANCECPEEnableErrorReporting=0
HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftMicrosoft SQL Server130CustomerFeedback=0
HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftMicrosoft SQL Server130EnableErrorReporting=0

如果不存在任何键,那没关系,因为您显然没有安装该功能。

禁用以下服务:

SQL Analysis Services CEIP
SQL Server CEIP service
SQL Server Integration Services CEIP service 13.0

这是一个PowerShell脚本,它将禁用所有遥测CEIP服务,并将更新注册表以禁用CustomerFeptBack并启用:

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 = @( "SoftwareMicrosoftMicrosoft SQL Server", "SoftwareWow6432NodeMicrosoftMicrosoft 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" 
             }
    }

您还可以使用Microsoft SQL Server 2016安装的"错误和使用报告设置"应用程序。

本文显示了带有漂亮图片的详细信息。可以节省脂肪手指编辑您的注册表。在我的测试中,它不需要重新启动服务,它只是有效的。

坏死。
快速版本:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server130]
"EnableErrorReporting"=dword:00000000
"CustomerFeedback"=dword:00000000
[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftMicrosoft SQL Server130]
"EnableErrorReporting"=dword:00000000
"CustomerFeedback"=dword:00000000


[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL13.MSSQLSERVERCPE]
"EnableErrorReporting"=dword:00000000
"CustomerFeedback"=dword:00000000
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSAS13.MSSQLSERVERCPE]
"EnableErrorReporting"=dword:00000000
"CustomerFeedback"=dword:00000000
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSRS13.MSSQLSERVERCPE]
"EnableErrorReporting"=dword:00000000
"CustomerFeedback"=dword:00000000

带有实例名称的搜索和重新定位MSSQLServer。

如果任何人在使用PowerShell所需状态配置(SQLServerDSC/SQLSETUP(进行安装,则下面将处理DB Engine和SSIS Telemetry Services。我敢肯定,您可以修改其他注册表值以前发布的用户为/rs。假设SQL 2016和默认值为instance,您将使用ComputerManagementDSC。


        Registry RegistrySqlIsCustFeedback
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL13.MSSQLSERVERCPE"
            ValueType   = "Dword"
            ValueName   = "CustomerFeedback"
            ValueData   = "0"
        }
        Registry RegistrySqlIsErrReporting
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL13.MSSQLSERVERCP"
            ValueType   = "Dword"
            ValueName   = "EnableErrorReporting"
            ValueData   = "0"
        }
        
        Registry RegistrySqlCustFeedback64
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftMicrosoft SQL Server130"
            ValueType   = "Dword"
            ValueName   = "CustomerFeedback"
            ValueData   = "0"
        }
        Registry RegistryErrReporting64
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftMicrosoft SQL Server130"
            ValueType   = "Dword"
            ValueName   = "EnableErrorReporting"
            ValueData   = "0"
        }
        Registry RegistrySqlCustFeedback
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server130"
            ValueType   = "Dword"
            ValueName   = "CustomerFeedback"
            ValueData   = "0"
        }
        Registry RegistryErrReporting
        {
            Ensure      = "Present"  # You can also set Ensure to "Absent"
            Key         = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server130"
            ValueType   = "Dword"
            ValueName   = "EnableErrorReporting"
            ValueData   = "0"
        }

最新更新