August 20, 2019 at 7:58 am
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
August 20, 2019 at 2:45 pm
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
August 20, 2019 at 4:13 pm
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}
}
Lowell
August 21, 2019 at 6:24 am
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
August 21, 2019 at 3:17 pm
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