I need to run a ruby script in elevated mode (Admin priviledges) under Windows. Is it possible?
See Question&Answers more detail:osI need to run a ruby script in elevated mode (Admin priviledges) under Windows. Is it possible?
See Question&Answers more detail:osHere's how to do it. The easiest way is to restart your executable with elevaded (Admin) privileges using ShellExecute
.
With Ruby you do it like this:
require 'win32ole'
shell = WIN32OLE.new('Shell.Application')
shell.ShellExecute('path_to_ruby_program', nil, nil, 'runas')
If you have Windows UAC enabled this will give you the familiar Windows pop up dialog that requests Admin privileges. Once you click Yes, your process will run with Admin rights.
The secret trick here is using the the undocumented ShellExecute
operation parameter runas
, which will elevate the requested operation.
http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx
Also related discussion on how to manually create an elevated command prompt shortcut (which might be a good enough solution in some cases):
http://www.sevenforums.com/tutorials/3718-elevated-command-prompt-shortcut.html