Reputation: 24017
Is there anything built into Windows and the .Net framework for programmatically installing and executing applications remotely? Ie: an API for remote software deployment. I'd like to build a tool that can install services on a pool of new computers from one central admin workstation.
Update: The computers are part of an internal IT network, and the applications and services are mostly internally developed. The deployment program would be completely internal, and not sold commercially.
Upvotes: 2
Views: 990
Reputation: 391820
"I'd like to build a tool that can install services on a pool of new computers from one central admin workstation."
So would everyone else who wants to build a bot-net to send spam email all day long. Sure, you may have good reasons for this. But there are security considerations that make this undesirable and rather difficult.
Start with Microsoft Deployment Services.
Microsoft has extensive Desktop Deployment information.
Upvotes: 2
Reputation: 10019
Upvotes: 2
Reputation: 2713
I am assuming that all the computers concerned are XP Pro, a member of an AD Domain and under the control of a single company. This is then the same as our set up at work. We use group policy to set firewall configuration on members computers, this opens the DCOM port because it is required to allow 'Offer Remote Assistance' to work. Obviously our network is seperated from the internet by a firewall which does NOT allow this type of traffic in! The DCOM port also allows WMI remote execute. XP also exposes the administritive share (c$ etc) so you can copy files onto the PC. If you can set your installer up so that it can run un-attended then there is no reason why you can't copy it onto a remote machine and then run it. You should also be able to then remotely start the service using WMI.
You should try Group policy first. We use it at work to do several software deployments and it works. We failed to make it deploy a .net written service though, and we also have an alternative in-house system for our .net client applications, that updates the application before running it, so I do accept that it has some drawbacks.
We are currently in the process of rolling out SCCM (SMS), so I can't comment on its abilities but if your organisation can afford it then I expect it would be better than an in-house system.
Upvotes: 2
Reputation: 37710
All of the pieces are there (copying files to a remote machine, spawning a process on a remote machine, etc.) You will be looking at a fair amount of programming to put it all together into a robust application. You will also need to make sure the clients are configured properly and safely. Naively configuring the client to allow you to do this would most likely wind up with massive security holes on your client machines. I would suggest looking at SMS or one of the many similar third party apps. At the very least even if you can't afford to use an already written app (highly recommend that you do) then you could look at their feature lists to get an idea of what sort of issues you need to be thinking about.
With the further provided information, I would ask if you are using Group Policies in your environment. If you are, then you may be able to package your application as an MSI then deploy via policy.
Upvotes: 0
Reputation: 5500
Depending on your needs, SysInternals' PsExec program might work for you. The documentation says that you don't need to install anything on the other computers. I use it at work to start build processes on remote machines.
Upvotes: 0