If you’re still experiencing Surface Book or Surface Pro 4 battery drain issues even after installing all of the latest fixes – including the one from February 2016 that’s supposed to fix this problem – it’s possible that an application is at fault.
Many people have pegged Google Chrome for this behavior for a long time, despite long-standing promises from Google to address the problem.
In fact, it was a recent Reddit thread where someone reported seeing a 3-5% drain drop to just 1% when he closed Chrome prior to sleeping his Surface for a 30 minute period that gave me the idea for this post.
So, if you’re using Chrome (many people are) and you’re still finding your Surface’s battery drained after it sleeps overnight, this article may help you prevent undue battery drain on your Surface.
Surface Pro 4 Battery Drain: “Kill Chrome” Sleep Script
Remembering to close Chrome before sleeping your Surface, is at best, an annoyance. But, with a little bit of setup, you can configure Windows to automatically close it for you just before it goes to sleep.
In order to do this, we’ll be using use Task Scheduler to trigger a simple command built into Windows (taskkill) to kill the Chrome executable before the Surface goes to sleep.
NOTE: Just be really careful if you decide to try this. If you make a mistake or accidentally change an existing scheduled task, you could mess up Windows 10 on your Surface. So, as usual, try this at your own risk, folks.
- Make sure you’re logged in with Admin rights.
- Search for Task Scheduler and open it from the results.
- For easy organization, I recommend you make a new folder for the scheduled task. To do so, highlight the Task Scheduler Library folder on the left and select New Folder. name the new folder User.
- Next, go into the User folder then select Create Task.
- A Create Task window will appear. In the General tab, name the task “Kill Chrome” then set the Configure For pull down to Windows 10. You can give it a description, if you want.
- Select the Triggers tab then the New button.
- Change the Begin the task: option to “On an event”. Next, make the following selections:
- Log: System
- Source: Kernel-Power
- Event ID: 506
- Ensure the Enabled check box is checked then select OK.
- Now select the Actions tab then select the New button.
- Make sure the Action selection is set to Start a Program (default) then enter “taskkill” in the Program/script field (no quotes). In the Add arguments (Optional) field, enter “/F /IM chrome.exe /T” (no quotes) then select OK.
- Select the Conditions tab and clear (uncheck) the Start the task only if the computer is on AC power check box.
- Finally, select OK.
- Test the script by opening Chrome then put your Surface to sleep (Start Button, Power, Sleep). If Chrome is missing when you wake it back up, it’s working fine. If the Chrome window is still there, double-check the settings above.
Now when your Surface goes to sleep (or hibernate) this scheduled task will automatically kill Chrome. As a side effect, Chrome will detect that it was shutdown unexpectedly so it will offer to reopen your tabs for you once you start it again. This happy accident makes it work particularly well with this script because you can just click a single button to get all of your tabs back after it wakes up from Sleep.
If Chrome is the cause of your battery drain, this should resolve the problem and stretch your Surface’s battery life.
Surface Pro 4 Battery Drain: Modifying The Script
If you’re a little more technically inclined, you are probably wondering if you can modify the script to do other things just before your Surface goes to sleep.
The answer is: yes. All you really have to do is change the triggered action.
If you’re planning on modifying this method to kill other or multiple programs or processes, you’ll need a little bit of additional information:
- You can trigger multiple actions by simply selecting “New” from the Actions tab and adding more actions to run when the task is triggered.
- You can also disable devices using this method. For example, this command line “netsh interface set interface Wi-Fi disabled” will deactivate the Wi-Fi adapter in your Surface just before it goes to sleep.
- If you’re killing a process or device that you want to automatically reactivate when your Surface wakes from sleep (like if you disabled your WiFi adapter) the event ID you’ll need to trigger on is 507.
If the above information doesn’t make sense to you, then don’t try to modify or add anything to the script. You may accidentally really mess up your Surface and no one wants that. You’ve been warned 🙂