How do I (robustly) remotely execute tasks on Windows workstations in a domain?

Solution 1:

By request, I'm breaking this out of a comment...

WesleyDavid's solution (using PowerShell, presumably in combination with Group Policy/Preferences) is the best solution to fit the problem as described, but that may not be the best solution overall. The questioner should probably consider a dedicated systems management package.

If management wants to prioritize ease-of-use for the tech, then it may make more sense to use Altiris, Microsoft System Center, KACE, etc. to accomplish this goal. They're more likely to give reporting that management will like (X% of workstations had program Y installed) and help the less-skilled techs. Also, while a bespoke collection of scripts will give maximum flexibility, the system management packages can probably get you most of the way to your goal in a fraction of the time. If you should run into some particular issue, there's more likely to be a community of support and consultants that can help you out.

The trade-off, of course, is money. But given that the questioner is mid-level IT, it may be more useful for him to work on other issues with a more direct business need than to work in an area that has is more of a commodity.

My network is smaller than many here, I'm sure: around 120 PCs, 20 servers. I've done scripts and GPOs because I've had to, but we're looking to get one of these up just for the patch management and easier reporting to the powers-that-be.

Solution 2:

All the tools you need already exist and are baked into Windows 7. You just need to enable and configure them. I suggest WinRM / Remote PowerShell Commands.

However, this means that your job will be to make a collection of scripts and then perhaps drop a push-button UI on top of them so that techs can easily aim scripts at PCs and then click a button to perform a task. However, based on what you said, that should be within spec.

Microsoft / Windows is deeply committed to PowerShell, and also committed to the remote use of PowerShell to modify and manage multiple PCs. I think you're safe to work a solution out with it and its remote capabilities. PowerShell 3.0 has even more remote capabilities than 2.0.