disable CEIP

  • Hi everybody,

    I just want to know, how to disable the CEIP service.

    I know this two links:

    https://www.sqlservercentral.com/blogs/sql-server-2016-%e2%80%93-sql-server-telemetry-ceip-services

    https://www.sqlservercentral.com/blogs/disable-or-turn-off-sql-server-telemetry-service

    But on this microsoft page, they tell me, that the CEIP service had to run, otherwise my support maybe lost:

    "Removing or disabling the SQL CEIP service is not supported."

    What is the right and the best way, to stop CEIP sending any data to microsoft.

    I thougt, running the services and changing the registry will fix my problem, or? And, what about the TELEMETRY user in the sql server instance? Should I delete this user, or must this user exist on the sql server?

    Thanks,

    Kind regards,

    Andreas

  • Which Microsoft page? There are differences in editions, so you need to know that. If you use developer, free, you can't disable telemetry. That's the price of the edition. For prod, you can, and customers do.

    This page (https://docs.microsoft.com/en-us/sql/sql-server/usage-and-diagnostic-data-configuration-for-sql-server?view=sql-server-2017) does say disabling the service isn't supported. However, you can opt out of data collection: https://docs.microsoft.com/en-us/sql/sql-server/usage-and-diagnostic-data-in-local-audit?view=sql-server-2017#turning-local-audit-on-or-off

  • i wrote/modified/collected some powershell scripts to disable various group policies or services that are related to CEIP and other unnecessary services.

     

    I hope this helps.

     

    ###################################################################################################
    ##disable cortana
    ###################################################################################################
    New-Item -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\' -Name 'Windows Search' -ErrorAction SilentlyContinue
    New-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' -Name 'AllowCortana' -PropertyType DWORD -ErrorAction SilentlyContinue
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search' -Name 'AllowCortana' -Value 0 -ErrorAction SilentlyContinue


    ###################################################################################################
    ##disable CDPUserSvc
    ###################################################################################################
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\CDPSvc' -Name 'Start' -Value 4 -ErrorAction SilentlyContinue #4=disabled
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\CDPUserSvc' -Name 'Start' -Value 4 -ErrorAction SilentlyContinue #4=disabled

    ###################################################################################################
    ## disable DiagTrack / Connected User Experiences and Telemetry
    ###################################################################################################
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\DiagTrack' -Name 'Start' -Value 4 -ErrorAction SilentlyContinue #4=disabled


    ###################################################################################################
    ## Stop and Disable CEIP services if they are running
    ###################################################################################################
    $AllServices = get-service -ComputerName $env:COMPUTERNAME |Where-Object {$_.Status.ToString() -eq 'Running'}
    foreach($service in $AllServices)
    {
    if($service.Name -like 'SQLTELEMETRY*') {Stop-Service $service.Name.ToString() -Force -ErrorAction SilentlyContinue; Set-Service $service.Name.ToString() -StartMode Disabled; Write-Host $service.Name.ToString() + " is being stopped" -ForegroundColor Green}
    if($service.Name -like 'SSASTELEMETRY*') {Stop-Service $service.Name.ToString() -Force -ErrorAction SilentlyContinue;Set-Service $service.Name.ToString() -StartMode Disabled;Write-Host $service.Name.ToString() + " is being stopped" -ForegroundColor Green}
    if($service.Name -like 'SSISTELEMETRY*') {Stop-Service $service.Name.ToString() -Force -ErrorAction SilentlyContinue;Set-Service $service.Name.ToString() -StartMode Disabled;Write-Host $service.Name.ToString() + " is being stopped" -ForegroundColor Green}
    }
    ###################################################################################################
    ##stop the hard to kill child processes relanted to CDPUserSvc if they are running
    ###################################################################################################
    $AllServices = get-service -ComputerName $env:COMPUTERNAME |Where-Object {$_.Status.ToString() -eq 'Running'}
    foreach($service in $AllServices)
    {
    if($service.Name -like 'CDPUserSvc*') {Stop-Service $service.Name.ToString() -Force -ErrorAction SilentlyContinue; Write-Host $service.Name.ToString() + " is being stopped" -ForegroundColor Green}
    if($service.Name -like 'PimIndexMaintenanceSvc*') {Stop-Service $service.Name.ToString() -Force -ErrorAction SilentlyContinue;Write-Host $service.Name.ToString() + " is being stopped" -ForegroundColor Green}
    if($service.Name -like 'UserDataSvc*') {Stop-Service $service.Name.ToString() -Force -ErrorAction SilentlyContinue;Write-Host $service.Name.ToString() + " is being stopped" -ForegroundColor Green}
    if($service.Name -like 'UnistoreSvc*') {Stop-Service $service.Name.ToString() -Force -ErrorAction SilentlyContinue;Write-Host $service.Name.ToString() + " is being stopped" -ForegroundColor Green}
    if($service.Name -like 'WpnUserService*') {Stop-Service $service.Name.ToString() -Force -ErrorAction SilentlyContinue;Write-Host $service.Name.ToString() + " is being stopped" -ForegroundColor Green}
    if($service.Name -like 'OneSyncSvc*') {Stop-Service $service.Name.ToString() -Force -ErrorAction SilentlyContinue;Write-Host $service.Name.ToString() + " is being stopped" -ForegroundColor Green}
    }

     

    • This reply was modified 4 years, 7 months ago by  Lowell.

    Lowell


    --help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!

  • Hello,

    thanks for your input, I try to understand everything arround the CEIP.

    We only use enterprise edition, so we are able to turn the local audit off, just change some values in the registry.

    The services are running, but no data are collected at all.

    There is a user in the sql server: NT SERVICE\SQLTELEMETRY

    Is it okay, if we delete this user, or must this user exist?

    Thanks for your help,

    Andreas

  • I'd disable the user rather than delete.

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply