我有一个简短的 .cmd 文件,我想在部署过程中运行它。不幸的是,.cmd 文件需要管理员权限。是否可以从 rake 中获得管理员权限,还是需要以管理员身份启动 shell?
问问题
1499 次
1 回答
1
你可以试试这个runas
命令。我不知道您的 rake 任务是什么样的,但是如果您正在运行Kernel#system
,请尝试
task :foo do
system "runas /profile /user:#{ENV["COMPUTERNAME"]}/Administrator mybatchfile.cmd"
end
唯一的麻烦是,runas
在 shell 中提示输入凭据。所以,你必须是互动的。
irb > system "runas ..."
输入 FOOBAR/Administrator 的密码:
关于 SO 的另一个问题有这个令人讨厌的批处理/WSH 答案。我不知道你把命令放在哪里,这看起来也是交互式的。
您可以尝试Start-Process
支持显示 UAC 提示的 PowerShell cmdlet。
PS> Start-Process mybatchfile.cmd -Verb runas
或者,在瑞克
task :foo do
system "powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -command \"Start-Process mybatchfile.cmd -Verb runas\""
end
但这也会启动一个 UAC 对话框。整个过程需要互动。您不能拥有交互式构建脚本。您唯一的选择是允许您的构建服务器在 UAC 关闭的情况下运行...然后,您无需执行任何操作,因为默认情况下您的所有提示都是管理员。
于 2013-09-19T18:16:43.183 回答