server_2016_services
This is an old revision of the document!
Deshabilita varios servicios de Server 2016/2019 que molestan más de lo que sirven. Revisar la lista antes de ejecutar.
############################################################################ # # Script to disable unneccessary services on `Microsoft Windows Server 2016` # # Forrest McFaddin # 2018-09-01 # # Specify log path (Directory of script) $log_path = $PSScriptRoot $log_name = ("DisabledServices_"+(Get-Date -Format 'yyyy-MM-dd')+".txt") $disable_userServices = Read-Host "Do you want this script to also disable user specific services [Y/N]" # Create function to disable service if it is not already disabled and/or has no dependent services function Disable-Service($service_name){ $Service_Confirm = (Get-Service -Name $service_name -ErrorAction SilentlyContinue) IF($Service_Confirm){ IF($Service_Confirm.StartType -ne "Disabled"){ # If service isn't disabled IF($Service_Confirm.DependentServices.Count -ne 0){ # If service has dependent services return ((Get-Date -format "hh:mm:ss")+" | SKIPPED | " + $service_name + " ("+$Service_Confirm.DisplayName+")" + " | Service found to have dependents. Skipped...") }ELSE{ # If service doesn't have dependent services, disable it. $service_state = (Set-Service -Name $service_name -StartupType Disabled) return ((Get-Date -format "hh:mm:ss")+" | DISABLED | " + $service_name + " ("+$Service_Confirm.DisplayName+")" ) } }ELSE{ # IF sevice is already disabled. return ((Get-Date -format "hh:mm:ss")+" | SKIPPED | " + $service_name + " ("+$Service_Confirm.DisplayName+")" + " | Service already disabled. No actions taken.") } } } # Check Operating System $os_version = (Get-WmiObject -Class Win32_operatingSystem).Caption IF($os_version -notlike "*Server 2016*"){ Write-Output "This script is intended for Microsoft Windows Server 2016. If you continue, it's likely errors will be generated for services that don't exist on this machine." $run = Read-Host "Do you wish to continue? [Y/N]" IF($run -ne "Y"){ return } } write-output "Continuing..." # Create an array with names of services to disable. $service_disabled = @() ######################################## ######### SPECIFY SERVICES ############# ######################################## # # Bluetooth Support Service $service_disabled += "bthserv" # # Xbox Live Auth Manager $service_disabled += "XblAuthManager" # # Xbox Live Game Save $service_disabled += "XblGameSave" # $service_disabled += "dmwappushservice" # # Downloaded Maps Manager $service_disabled += "MapsBroker" # # GeoLocationService $service_disabled += "lfsvc" # # Internet Connection Sharing (ICS) $service_disabled += "SharedAccess" # # Link-Layer Topology Discovery Mapper $service_disabled += "lltdsvc" # # Microsoft Account Sign-in Assistant $service_disabled += "wlidsvc" # # Network Connection Broker $service_disabled += "NcbService" # # Phone Service $service_disabled += "PhoneSvc" # # Print Spooler #### Check if print spooler role is insalled IF((Get-WindowsFeature -Name Print-Server -ErrorAction SilentlyContinue).Installed -eq $false){ $service_disabled += "Spooler" } # # Printer Extensions and Notifications #### Check if print spooler role is insalled IF((Get-WindowsFeature -Name Print-Server -ErrorAction SilentlyContinue).Installed -eq $false){ $service_disabled += "PrintNotify" } # # Program Compatibility Assistant Service $service_disabled += "PcaSvc" # # Quality Windows Audio Video Experience $service_disabled += "QWAVE" # # Radio Management Service $service_disabled += "RmSvc" # # Data Service $service_disabled += "SensorDataService" # # Sensor Monitoring Service $service_disabled += "SensrSvc" # # Sensor Service $service_disabled += "SensorService" # # Smart Card Device Enumeration Service $service_disabled += "ScDeviceEnum" # # SSDP Discovery $service_disabled += "SSDPSRV" # # Still Image Acquisition Events $service_disabled += "WiaRpc" # # Touch Keyboard and Handwriting Panel Service $service_disabled += "TabletInputService" # # UPnP Device Host $service_disabled += "upnphost" # # Wallet Service $service_disabled += "WalletService" # # Windows Camera Frame Server $service_disabled += "FrameServer" # # Windows Image Acquisition (WIA) $service_disabled += "stisvc" # # Windows Insider Service $service_disabled += "wisvc" # # Windows Mobile Hotspot Service $service_disabled += "icssvc" # Disable all services Foreach($item in $service_disabled){ $item_action = Disable-Service -service_name $item $item_action | out-file -FilePath ($log_path+"\"+$log_name) -Append Write-Output -InputObject $item_action } # Also disable scheduled tasks for XBOX LIVE # XBLGameSaveTask try{Get-ScheduledTask -TaskName "XBLGameSaveTask" -ErrorAction SilentlyContinue | Disable-ScheduledTask (out-file -FilePath ($log_path+"\"+$log_name) -InputObject ((Get-Date -format "hh:mm:ss")+" | DISABLED | XBLGameSaveTask (Windows Scheduled Task)") -Append) }Catch{ # Unable to disable scheduled task (out-file -FilePath ($log_path+"\"+$log_name) -InputObject ((Get-Date -format "hh:mm:ss")+" | ERROR | XBLGameSaveTask (Windows Scheduled Task) | Failed to disable scheduled task.") -Append) } # XBLGameSaveTaskLogon try{Get-ScheduledTask -TaskName "XBLGameSaveTaskLogon" -ErrorAction SilentlyContinue | Disable-ScheduledTask (out-file -FilePath ($log_path+"\"+$log_name) -InputObject ((Get-Date -format "hh:mm:ss")+" | DISABLED | XBLGameSaveTaskLogon (Windows Scheduled Task)") -Append) }Catch{ # Unable to disable scheduled task (out-file -FilePath ($log_path+"\"+$log_name) -InputObject ((Get-Date -format "hh:mm:ss")+" | ERROR | XBLGameSaveTaskLogon (Windows Scheduled Task) | Failed to disable scheduled task." ) -Append) } # Disable user specific services, which are created upon login. # Reference: https://docs.microsoft.com/en-us/windows/application-management/per-user-services-in-windows IF($disable_userServices -eq "Y"){ try{ REG.EXE ADD HKLM\System\CurrentControlSet\Services\CDPUserSvc /v Start /t REG_DWORD /d 4 /f (out-file -FilePath ($log_path+"\"+$log_name) -InputObject ((Get-Date -format "hh:mm:ss")+" | DISABLED | CDPUserSvc (User Specific Service)" ) -Append) REG.EXE ADD HKLM\System\CurrentControlSet\Services\OneSyncSvc /v Start /t REG_DWORD /d 4 /f (out-file -FilePath ($log_path+"\"+$log_name) -InputObject ((Get-Date -format "hh:mm:ss")+" | DISABLED | OneSyncSvc (User Specific Service)" ) -Append) REG.EXE ADD HKLM\System\CurrentControlSet\Services\PimIndexMaintenanceSvc /v Start /t REG_DWORD /d 4 /f (out-file -FilePath ($log_path+"\"+$log_name) -InputObject ((Get-Date -format "hh:mm:ss")+" | DISABLED | PimIndexMaintenanceSvc (User Specific Service)" ) -Append) REG.EXE ADD HKLM\System\CurrentControlSet\Services\UnistoreSvc /v Start /t REG_DWORD /d 4 /f (out-file -FilePath ($log_path+"\"+$log_name) -InputObject ((Get-Date -format "hh:mm:ss")+" | DISABLED | UnistoreSvc (User Specific Service)" ) -Append) REG.EXE ADD HKLM\System\CurrentControlSet\Services\UserDataSvc /v Start /t REG_DWORD /d 4 /f (out-file -FilePath ($log_path+"\"+$log_name) -InputObject ((Get-Date -format "hh:mm:ss")+" | DISABLED | UserDataSvc (User Specific Service)" ) -Append) REG.EXE ADD HKLM\System\CurrentControlSet\Services\WpnUserService /v Start /t REG_DWORD /d 4 /f (out-file -FilePath ($log_path+"\"+$log_name) -InputObject ((Get-Date -format "hh:mm:ss")+" | DISABLED | WpnUserService (User Specific Service)" ) -Append) }Catch{ (out-file -FilePath ($log_path+"\"+$log_name) -InputObject ((Get-Date -format "hh:mm:ss")+" | ERROR | Could create registry keys to disable user specific services." ) -Append) } }
server_2016_services.1605478912.txt.gz · Last modified: 2024/10/17 21:42 (external edit)
