在提升模式下运行ruby脚本

Ric*_*ras 8 ruby windows

我需要在Windows下以提升模式(Admin priviledges)运行ruby脚本.可能吗?

Cas*_*per 10

这是怎么做的.最简单的方法是使用提升(管理员)权限重新启动可执行文件ShellExecute.

使用Ruby,你可以这样做:

require 'win32ole'

shell = WIN32OLE.new('Shell.Application')
shell.ShellExecute('path_to_ruby_program', nil, nil, 'runas')
Run Code Online (Sandbox Code Playgroud)

如果您启用了Windows UAC,则会为您提供熟悉的Windows弹出对话框,该对话框会请求管理员权限.单击"是"后,您的进程将以管理员权限运行.

这里的秘诀是使用未记录的ShellExecute操作参数runas,该参数将提升所请求的操作.

http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx

还有关于如何手动创建提升的命令提示符快捷方式的相关讨论(在某些情况下这可能是一个足够好的解决方案):

http://www.sevenforums.com/tutorials/3718-elevated-command-prompt-shortcut.html