Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We'd like to reduce the amount of time required to administer our Windows servers.

Pretty much every server our team has responsibility for runs some variant of Windows but for historical reasons the machines in our care are a mix of platforms: 64bit & 32bit variants of various Windows Editions. We have around 10 machines.

In particular, the kind of activities we'd like to be able to do more quickly include:

  • Clean out temp-files & log-files
  • Ad-hoc reboots
  • Install & uninstall of windows packages

Nice to have (but not essential)

  • Montor, start & stop Windows services
  • Login / Logout
  • Montor what an application on the box might be doing (e.g. a long-running excel sheet)

I've heard that Puppet is a tool that is designed to help with all kinds of sysadmin automation - is it likely that this tool could help with any of the above requirements? From what I can tell, most Puppet users are LINUX/UNIX based - is it even possible to run the puppet master-node on a Windows environment?

As a plan B - I could just write some python scripts which do the jobs listed above and call them from a Jenkins server.

I'm looking for your suggestions as to what might be the most time-effective way of cutting down our admin time.


UPDATE0: Althaugh I work for a big company, this is a company which dislikes spending money on anything. Free & Open-source solutions are preferred. Whatever we use has to be legally licensed and cost nothing - software compliance is a big deal.

If neccecary we will find a decently powerful box and run Ubuntu in VirtualBox (or similar) to run the master node.

share|improve this question

closed as off-topic by HopelessN00b Feb 9 '15 at 20:59

This question appears to be off-topic. The users who voted to close gave this specific reason:

If this question can be reworded to fit the rules in the help center, please edit the question.

Personally, shoving the Windows servers off the roof of the building and not replacing them. That would reduce the admin time, but I doubt your boss would find my suggestion nearly as amusing. – Magellan Jan 27 '12 at 15:16
Sadly this is not an option - our product is for Windows. Non windows servers might not be too helpful. – Salim Fadhley Jan 27 '12 at 15:20

I find that I can do a ton with PowerShell. Monitoring, not so much (not that you couldn't with some simple Test-Connection and Test-Path type scripts) - but a lot of the other suggestions have good options for that. I might also suggest icinga.

PowerShell in my environment does backups (using the Microsoft Sync Framework SDK, 7zip SDK & AWS SDK), clears log folders on remote servers, dumps IIS logs into a database, does Admin Password rotation for security audit purposes, is used to stop and restart services & perform service account credential rotation.

I find that scheduling PowerShell scripts in my Windows environment is the most straightforward, time-saving, and inexpensive route to take.

If you do go with puppet, let me know how it goes. I've done some research and couldn't justify the setup/testing time.

share|improve this answer
I'm currious about how you drive these scripts remotely, if at all? Do you use ws-managmenet for remote commands or some other technique. – cmcginty Sep 28 '13 at 3:42
I usually have a management server with the scripts on them. I then run them from this central location and the scripts all take a ComputerName parameter. There are various methods for executing remote commands under this. I usually just use WMI, but better options surely exist. PowerShell has invoke-command I believe which might do what you want on boxes with the proper configuration for wsman – Chris N Oct 2 '13 at 20:24

if you already have 'normal' Windows server licenses (like the standard Windows server editions) then you are entitled to use Active Directory. You can administer a fleet of Windows servers with that using group policies and scripts. No extra expense.

For deploying software you can use, it is open source software. Once you get the hang of it it is very nice. You can of course also do it with group policies and scripts in your Active Directory. No gui though (not a problem for me, but it could be a problem in your environment.

As to monitoring, well, I really enjoy using, which is open core. You still can buy support if you need it, but the main features are in the community edition. It is nagios done right. It does not work in Windows, though. You can monitor Windows servers with it, obviously. It runs perfectly fine as a virtual machine.

If you want to use something 'unixy', it is possible to run cfeninge under cygwin. You would need to get the sources and compile it first, but it is possible. Of course, cfengine itself has a learning curve of it own, but if your time costs nothing, then maybe it is an option ;-) . If your time does cost money, you can get the commercial native port for windows.

share|improve this answer
That's not an option for us - the official company IT department use AD to manage all the machines on all the company sites. I work for a product development team that is somewhat seperate. We just need some additional tools for making some tiresome tasks simpler. – Salim Fadhley Jan 27 '12 at 15:50
maybe if you gave all the facts up front, we would not have to guess ... Anyway, that (the AD and group policy stuff) was just a piece of my answer, you still can use the other stuff (unless you have some other as of now undisclosed limitations, of course :) – natxo asenjo Jan 27 '12 at 18:18
Avoiding using AD to manage Windows machines is asinine, to be blunt. The tools are already there for you; why tie your hands? – mfinni Jan 27 '12 at 19:17
Another option: ask your IT department to delegate control of an ou to your section and ask them to place all the servers you need in that ou; that way you can use AD to do what you require. – natxo asenjo Jan 28 '12 at 9:57

Heres what I use. These work well for me.

Spiceworks - Great for a Windows house to monitor lots of stuff. WSUS - Helps to simplify managing your updates. CFEngine/Puppet - These can do a lot of what you want, its a steep learning curve if you aren't comfortable scripting.

share|improve this answer
Scripting (in Python) is what I spend most of my life doing. Is that good enough for Puppet? – Salim Fadhley Jan 27 '12 at 15:40
You'll probably be able to get the hang of it pretty quickly. Its just like learning a new coding language, from what I hear anyways. I started on puppet and I'm working my way into Python. – ErnieTheGeek Jan 27 '12 at 15:45

Depending on how many servers you have and what you foresee you may want to go with the MS options - System Center is not too lightweight but a very powerful system to manage servers.

share|improve this answer
Is this free? See the update above - our budget is zero. We only have our time. – Salim Fadhley Jan 27 '12 at 15:21
No, not free. But then your time costs money if you have "servers" as in plural. The costs are very low for smaller amounts, and for larger amounts "our budget is zero" is a stupid - and i meant hat exactly like that - statement. Admins cost money, too. A budget is something you get if you dont ahve it to do your job. – TomTom Jan 27 '12 at 15:26
I agree with Tom. Puppet is going to give you some of those features that you want (packages, log files, etc) but typically in a Windows environment you're going to want a Windows solution because it's going to save you a lot of time & problems in the end. SCCM is fairly cheap -- especially if you only need 1 primary site license. I think your could convince your boss the benefits of using such a system. – Ethabelle Jan 27 '12 at 15:31
"The Boss" is not the problem - it's the official company procurment policy that says no. :-( – Salim Fadhley Jan 27 '12 at 15:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.