I have a program installed on my W2k8 R2 server which needs admin rights to start.
I have 5 users using remote desktop to remote into the server to use that program. I don't want to give those users admin rights, but I do want them to be able to run the program properly.
Is this possible?
Your best bet is to figure out which registry keys and directory locations that the program needs access to, and give your users access to just those areas.
You can use a tool, like Process Monitor from Sysinternals for that. Simply log in as the user, start Process Monitor, and run the program and make note of the areas denying access.
I would probably use a Security Group in AD, and then give that Security Group access to those system locations. All you would have to do then is add users to that Security Group and they will be able to use that program on that system with their own credentials.
Definitely use Cypher's suggestion. I've solved many pesky application issues by granting a user modify rights to specific install directories via security groups (and if needed reg keys). Unfortunately this assumes a half way competent programmer wrote the app and there aren't one or two files in c:\windows or c:\windows\system32 that needs the same access.
Thanks for the answers, this is how I ended up solving it:
C:\Windows\System32\schtasks.exe /run /tn "Name of task"
The only downside of this is that i need to create a separate task for every user, but I think it works just fine.
Thanks everyone.
Why not create an "applicative user" - used only for the task and that only you know the PW for.
This way you dont need to create a separate task per user and at the same time grant this user admin rights to the app.
Windows doesn't have the "setuid" concept from UNIX. There's really only two ways to get to where you're after:
The first option is to do a "run as" type scenario, where the logged-in user needs to have the appropriate password for the elevated user. The other is to write a "helper" service that runs with administrator privileges (as services generally do) which will then grant elevated privileges to the user for that one process.
I'm a bit fuzzy on the details of this second option, but I've seen it done before at a company where I used to work.