There has been a lot of debate on the subject of disabling unneeded services in the past, and this is intended to be an overall view of the subject. I have divided the topic into four areas: security, resources, stability and useability.
Security
In the end, security means not letting someone access resouces on your computer that you have not allowed. The best way to accomplish that is to:
Install and enable a firewall program, or use the one supplied with Windows XP service pack 2.
Install and enable an anti-virus program with real-time protection.
Install Ad-Aware SE, Spybot S&D and Microsoft anti-spyware.
Scan regularly (depends on your habits) with the anti-virus program, as well as the anti-spyware programs.
Update the above programs and use Windows Update once a week.
Disabling unneeded services is another way to decrease the likelihood that someone can gain unintended access to your computer. It is not a replacement, nor a substitute for any of the above; instead it can be thought of as "hardening" the computer. Think of it as the last 2% of the security picture. For most people, it would be considered optional. Every situation is different, and each user has to decide how much security is enough. If you're connected to the "full" internet this would be more important; if you're behind a NAT router, much less so.
(GreNME) - The last thing that I'll submit (edit) is the possibility to run as much as possible on a limited user account. For those who game or use programs that require admin privs, the easy way around most of that is finding the directories that the game or program needs read or write privs to and adjust the privs specifically for that user (I don't suggest doing so for the group, but on a machine with many users this may be more practical). One could even make a special profile from which to do the gaming and another to do other stuff in order to better sandbox the system from different tasks crossing over into territory that would make vectors for exploits more likely. A key element in security is that mentality of keeping separate sections or tasks separate with as little bleed-over as possible, and only as necessary (think "need to know basis"). It's a bit of extra work for those who want to do the tweakage deal, but I'm willing to bet that in the long run it would be totally worth it.
Resources
Two contrasting statements best describe the effect on system resources of disabling unneeded services:
You can save system resources by disabling unneeded services.
It isn't going to be much.
A service set to run as "automatic" starts when Windows starts, so it has to (by definition) use processor cycles and RAM. After a period of time if the service is not being used, it is paged out of RAM. From that point on, it would be correct to say that the unused service effectively uses no system resources (excluding pagefile space). That being said, the gains from disabling unneeded services are very small; the user would likely never notice the processor cycles used to load the service(s) into memory, and then transfer it/them to the pagefile. The amount of memory saved is small; on the order of 20MB (of course, it depends on the services chosen. And this excludes System Restore service; that thing's a resource hog <1><3>).
NOTE: Some people have reported that the savings in RAM has allowed a specific program or game to run faster for them, because without the services loaded the program has just enough more RAM available to eliminate some paging. But this situation is rare.
Stability
Again it seems that two contrasting statements best desribe the effect on stability of disabling unneeded services:
It is very rare for disabling unneeded services to cause a problem. (well, think about it...if it causes a problem, it was needed!)
That doesn't mean it can't, and it doesn't mean you can't make a mistake when you decide one isn't needed.
This is a case of doing your homework. Do searches. Check the links at the bottom of this post. Don't go by any one source, check as many as you can. Only disable one service at a time, so you can return to a previous configuration if there's a problem. And always be careful about dependencies; some services are dependant on others to be able to run. When in doubt, try setting the service to "Manual"; that way it can be started (sometimes) if it is needed <2><4>. Again, every situation is different, and each user has to decide how much risk he/she is willing to take. If you have no real reason to or interest in disabling services, leave them as they are for maximum stability. If you have other reasons for wanting to disable some services, you must be willing to take a small amount of risk toward that end.
Useability
There is no positive aspect to disabling services as far as useability is concerned...there's no way more things are going to work with fewer services running. If your main concern is that everything works; printers print, wireless devices work, programs have everything they need, etc., etc. then leave the services on their original settings. If you are careful, do research, and experiment with one service at a time it is possible to disable some services and still have everything you currently use work, but that does not guarantee that things you add in the future will also. As always, every situation is different, and each user has to decide the level of useability he or she is most comfortable with. For someone who frequently makes changes or uses his/her computer for many roles this would be more important; for someone who doesn't make many changes or uses his/her machine for a limited number of roles it would be less so.
(GreNME) - Also, I would recommend keeping the System Restore on the whole time when making such changes, as in the event something is borked in a way that hinders booting back up to fix it the System Restore can play a huge role in keeping stress and blood pressure down. If someone still really thinks that they can completely do without the ability to roll back, there's nothing wrong with making System Restore the dead last service on the list to stop.
As is always the case, you must decide for yourself if the potential benefits are worth the potential risks.
Notes:
<1> - (Phoenix86) This is an active program, so it doesn't get paged. It's like AV, always running and monitoring the system.
<2>
a. (Ranma_Sao) The application has to know to start the service and a lot of them just assume it's started.
b. (Ranma_Sao) Some apps do remember to start the service but timeout when that service is starting other dependant services, so they fail.
<3> (GreNME) - For those who are really into counting every last MB, it may behoove some to think about going the Home route.
<4> (GrenME) - Keep a list of services you disable (as opposed to the ones disabled by default) just in case you need to back out of a tweak.
Props go out to:
GreNME, djnes, Phoenix86, Kooldrew, chinoquezada, HHunt, EinsteiN, Carnival Forces, rcolbert, S1nF1xx, odoe, serbiaNem, SJConsultant, Met-AL, Trematode, Komataguri, XOR != OR, OldPueblo, Iomn75, Malk-a-mite, Badger sly, hulksterjoe, Super Mario, Ranma_Sao and probably 50 more people I'm forgetting (sorry, it's late) for adding to the debate.
Links:
(SJConsultant) - Checkout Chapter 7 from Microsoft's Threats and Countermeasures guide.
(SJConsultant) - Microsoft has published a document dedicated to services and security.
(S1nF1xx) - A link to EinsteiN's real-world benchmarking experiment is also in order. He did a great job of showing the actual effects of service tweaking.
Ad-Aware SE Personal (free)
Spybot S&D (donate-ware)
Microsoft Anti-Spyware (free)
Security
In the end, security means not letting someone access resouces on your computer that you have not allowed. The best way to accomplish that is to:
Install and enable a firewall program, or use the one supplied with Windows XP service pack 2.
Install and enable an anti-virus program with real-time protection.
Install Ad-Aware SE, Spybot S&D and Microsoft anti-spyware.
Scan regularly (depends on your habits) with the anti-virus program, as well as the anti-spyware programs.
Update the above programs and use Windows Update once a week.
Disabling unneeded services is another way to decrease the likelihood that someone can gain unintended access to your computer. It is not a replacement, nor a substitute for any of the above; instead it can be thought of as "hardening" the computer. Think of it as the last 2% of the security picture. For most people, it would be considered optional. Every situation is different, and each user has to decide how much security is enough. If you're connected to the "full" internet this would be more important; if you're behind a NAT router, much less so.
(GreNME) - The last thing that I'll submit (edit) is the possibility to run as much as possible on a limited user account. For those who game or use programs that require admin privs, the easy way around most of that is finding the directories that the game or program needs read or write privs to and adjust the privs specifically for that user (I don't suggest doing so for the group, but on a machine with many users this may be more practical). One could even make a special profile from which to do the gaming and another to do other stuff in order to better sandbox the system from different tasks crossing over into territory that would make vectors for exploits more likely. A key element in security is that mentality of keeping separate sections or tasks separate with as little bleed-over as possible, and only as necessary (think "need to know basis"). It's a bit of extra work for those who want to do the tweakage deal, but I'm willing to bet that in the long run it would be totally worth it.
Resources
Two contrasting statements best describe the effect on system resources of disabling unneeded services:
You can save system resources by disabling unneeded services.
It isn't going to be much.
A service set to run as "automatic" starts when Windows starts, so it has to (by definition) use processor cycles and RAM. After a period of time if the service is not being used, it is paged out of RAM. From that point on, it would be correct to say that the unused service effectively uses no system resources (excluding pagefile space). That being said, the gains from disabling unneeded services are very small; the user would likely never notice the processor cycles used to load the service(s) into memory, and then transfer it/them to the pagefile. The amount of memory saved is small; on the order of 20MB (of course, it depends on the services chosen. And this excludes System Restore service; that thing's a resource hog <1><3>).
NOTE: Some people have reported that the savings in RAM has allowed a specific program or game to run faster for them, because without the services loaded the program has just enough more RAM available to eliminate some paging. But this situation is rare.
Stability
Again it seems that two contrasting statements best desribe the effect on stability of disabling unneeded services:
It is very rare for disabling unneeded services to cause a problem. (well, think about it...if it causes a problem, it was needed!)
That doesn't mean it can't, and it doesn't mean you can't make a mistake when you decide one isn't needed.
This is a case of doing your homework. Do searches. Check the links at the bottom of this post. Don't go by any one source, check as many as you can. Only disable one service at a time, so you can return to a previous configuration if there's a problem. And always be careful about dependencies; some services are dependant on others to be able to run. When in doubt, try setting the service to "Manual"; that way it can be started (sometimes) if it is needed <2><4>. Again, every situation is different, and each user has to decide how much risk he/she is willing to take. If you have no real reason to or interest in disabling services, leave them as they are for maximum stability. If you have other reasons for wanting to disable some services, you must be willing to take a small amount of risk toward that end.
Useability
There is no positive aspect to disabling services as far as useability is concerned...there's no way more things are going to work with fewer services running. If your main concern is that everything works; printers print, wireless devices work, programs have everything they need, etc., etc. then leave the services on their original settings. If you are careful, do research, and experiment with one service at a time it is possible to disable some services and still have everything you currently use work, but that does not guarantee that things you add in the future will also. As always, every situation is different, and each user has to decide the level of useability he or she is most comfortable with. For someone who frequently makes changes or uses his/her computer for many roles this would be more important; for someone who doesn't make many changes or uses his/her machine for a limited number of roles it would be less so.
(GreNME) - Also, I would recommend keeping the System Restore on the whole time when making such changes, as in the event something is borked in a way that hinders booting back up to fix it the System Restore can play a huge role in keeping stress and blood pressure down. If someone still really thinks that they can completely do without the ability to roll back, there's nothing wrong with making System Restore the dead last service on the list to stop.
As is always the case, you must decide for yourself if the potential benefits are worth the potential risks.
Notes:
<1> - (Phoenix86) This is an active program, so it doesn't get paged. It's like AV, always running and monitoring the system.
<2>
a. (Ranma_Sao) The application has to know to start the service and a lot of them just assume it's started.
b. (Ranma_Sao) Some apps do remember to start the service but timeout when that service is starting other dependant services, so they fail.
<3> (GreNME) - For those who are really into counting every last MB, it may behoove some to think about going the Home route.
<4> (GrenME) - Keep a list of services you disable (as opposed to the ones disabled by default) just in case you need to back out of a tweak.
Props go out to:
GreNME, djnes, Phoenix86, Kooldrew, chinoquezada, HHunt, EinsteiN, Carnival Forces, rcolbert, S1nF1xx, odoe, serbiaNem, SJConsultant, Met-AL, Trematode, Komataguri, XOR != OR, OldPueblo, Iomn75, Malk-a-mite, Badger sly, hulksterjoe, Super Mario, Ranma_Sao and probably 50 more people I'm forgetting (sorry, it's late) for adding to the debate.
Links:
(SJConsultant) - Checkout Chapter 7 from Microsoft's Threats and Countermeasures guide.
(SJConsultant) - Microsoft has published a document dedicated to services and security.
(S1nF1xx) - A link to EinsteiN's real-world benchmarking experiment is also in order. He did a great job of showing the actual effects of service tweaking.
Ad-Aware SE Personal (free)
Spybot S&D (donate-ware)
Microsoft Anti-Spyware (free)