RUNAS最佳解决方法-使用CPAU帮助受限用户安全地以管理员权限运行程序和命令 
2010-12-29 11:37:47|  分类: 电脑常识标签:cpau  runas  密码  加密  管理员  |字号大中小 订阅
在现在域管理中,经常会遇到一些程序或工具无法以普通用户权限运行,而必须用到管理员权限的情况,有的甚至于生产业务息息相关。出现这种问题的原因多种多样,如早期开发人员的认识不够,有的是为了拦截、修改某些文件而不得已采取的手段,等等。随着VistaWindows 7的部署,问题也日渐凸显。
为此,微软提供了runas命令来提升用户权限,但runas的缺点就在于,每次使用都必须输一遍密码,极不方便。

使用脚本自动完成操作虽然能满足要求。但是脚本的编写、加密的工作量大,且不利于管理。
autoitCPAU是个轻巧、灵活的命令行工具,能以更简单的批处理方式帮助受限用户安全地以管理员权限完成操作。支持200/XP/2003/VISTA。在我的Windows 7 M3上测试通过。(下载请看2F

CPAU的用法和runas相似,但扩展功能更多。
基本用法:
CPAU -u user [-p password] -ex "WhatToRun" [switches]
-u                执行该任务的用户名,域环境需要全称 如:domain\administrator
-p                该用户的密码,如果没有此开关,回车后要求输密码(不可见)
-ex                需要执行的程序,对于有空格出现的路径,建议加双引号,如 "c:\Program "
-lwp-lwop 如果是本地账户,必须使用此开关才能交互式认证。
举例: CPAU -u administrator -p 123456  -ex  CMD -lwp    管理模式下的命令行
      CPAU -u administrator -p 123456  -ex  "cscript e:\lock.vbs"  -lwp    运行脚本
      CPAU -u  小小 -p 123456  -ex  "c:\Program Files\QQ2008 " -lwp 运行程序
扩展:
直接把命令写入批处理或快捷方式交给用户运行无异于暴露了管理员密码。CPAU提供了加密开关将整个命令加密,避免账号和密码以明文出现。
首先,将准备要执行的命令加密,例如:

CPAU -u  administrator -p 123456  -ex  "f:\Program Files\QQ2008 "  -enc  -file G:\temp\start.mp3
-enc  为加密开关
-file 加密文件的输出路径,后缀名不限。
-lwp-lwop开关请暂时忽略。)
完成后如果显示: The command completed successfully.  表示成功完成。
用记事本可以打开加密后的文件:

现在,非管理员用户只需要调用该加密文件就可以运行程序了,不会再有明文的密码出现:

CPAU -dec -file g:\temp\start.mp3 -lwp
-dec  解密开关
-file  加密文件所在的路径
-lwp-lwop开关在这里补上)
接下来, 创建一个bat文件或快捷方式供用户启动。
以快捷方式为例:
CPAU创建一个快捷方式,将该快捷方式剪切到桌面。修改目标路径和图标。

大功告成!

警告:不要在高安全强度的环境使用该工具!加密算法是作者私有的;在时间充裕的情况下可以被破解。尽量使用本地账号替代域管理员账号。
类似的工具有sanur 等,也有GUI界面的,见: uk/sanur/
参考文献:
CPAU主页: www.joeware/freetools/tools/cpau/ (撞墙请快照)

Zaroty‘s Blogkongjian.baidu/zaroty/blog/item/eec682580f2a4785800a18ba.html
世界已变化: 4-414.spaces.live/blog/cns!
乱窜的猫:catcity.blog.51cto/310698/62493
                                                                                                  转载请注明出处      :lol

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
其它方法
以非管理员用户登录时,如果要用管理员运行程序的话,需要用到runas命令,在使用脚本运行时,无法简单的利用管道来输入密码,有以下方法可免除每次需要输入密码的麻烦。
1、使用系统自带的 runas /savecred 选项,第一次输入密码后,会保存凭据。
特点:无法限制能够运行的命令,安全性差。
2、使用 sanursanur 是一个小程序,能以管道的方法将密码或者文件中的内容传递给runas程序。
runas <options> | sanur password
runas <options> | sanur /i [drive:][path]filename
特点:密码明文保存。
相关页面:
uk/sanur_unsupported/index.html
3、使用 lsrunas,功能类似 sanur,不过它无需运行runas,自带完整的参数来执行。
特点:密码明文保存。
相关页面:
aut/default.aspx?item=lsrunas
4、使用 lsrunaselsrunas 的加强版本,可以使用加密的密码。自带一个小软件 LSencrypt 用来生成加密的字串。
用法:
lsrunase /user:administrator /password:41BngA== /domain: / /runpath:c:\
所有的参数必须齐全,其中:
user 为运行的账号
password 为密码加密后的字串
domain 为机器名或域名,也可留空代表本机
command 为要运行的程序名,如果携带参数需要在命令的首尾加引号
runpath 为程序启动的路径
特点:可以较完美的替代 runas,并避免直接将密码明文保存在脚本中。
相关页面:
aut/default.aspx?item=lsrunase
5、使用 cpaucpau 也是一个替代runas 的程序,并且功能强大,可以使用加密的密码。
用法:
cpau -u administrator -p password -ex notepad -file -enc
cpau -file -dec
以上命令可以先将要执行的指令加密保存为一个文件,执行时载入此文件。
特点:可以保护执行的脚本及命令不被他人查看,但在使用网络路径时存在一些问题。
相关页面:
www.joeware/win/free/tools/cpau.htm
6、使用 autoitautoit 是一个脚本自动化执行的工具,可以完成很多自动化的任务,并且可以将脚本编译成 exe 文件来直接运行,从而达到了隐藏密码信息的目的。
特点:功能强大,但操作复杂。
相关页面:
www.autoitscript/autoit3/
还有其他一些工具能够完成类似的操作。
参考页面:
uk/sanur/