Runas和cpau 使用方法

 

命令:runas /user:domain\username processname

 

例:

调出CMD,首先kill掉explorer.exe进程

 

C:\>runas /user:usa\billgates explorer.exe
输入 usa\billgates 的密码:
试图将 explorer.exe 作为用户 "usa\billgates" 启动...

 

这样当前用户将变成billgates的用户环境。这对有时要切换用户的情况很有用。如用户需安装打印机,但由于没有admin的权限,无法安装,这样可以如此切换到管理员,不必用注销的方式。切换回user帐户,先注销,再在任务管理器中运行explorer.exe即可。

CPAU参数说明

CPAU 用法:

CPAU -u 用户 [-p 密码] -ex "程序或命令" [参数]

 
例子: CPAU -u test\Administrator -p ^&t11e91s8e0 -ex ProjectNew.exe
 
说明:CPAU调用ProjectNew.exe程序
 
用户 用于登录的用户名(一般指管理员)例:Domain\Domainadm

密码 用户的密码[密码]

程序或命令 要执行的程序或命令


参数:

-profile 使用本地登录配置文件代替网络登录

-localwithprofile –profile的别名

-lwp -profile的别名

-localwithoutprofile 使用本地登录但不加载配置文件

-lwop -localwithoutprofile的别名

-k 使用命令cmd /k 关闭打开的窗口

-c 程序执行完成后使用命令cmd /c 关闭打开的窗口

-pipepwd 指定传入密码的方法

-enc 为最终用户加密任务

-dec 解密任务

-file 指定创建或执行的文本文件

-wait 等待进程完成

-outprocexit 同-wait一起使用,使用 errorlevel参数来代替CPAU的错误提示

-cwd x 指定工作目录

-hide 新进程隐藏运行

-title x 指定命令窗口的标题

-crc file[,file,file] 这个参数允许在加密文件文件中加入CRC错误校验信息。当

CRC校验出错时,提醒所执行的文件不是要运行的文件,重新选择文件。

-nowarn 网络登录时不输出警告信息
 
 
user 用户 使用管理员权限运行软件
大多数公司的IT人员,如果不想每天被繁琐的电话吵得想跳楼,被MM嚷得想开溜。那么就一定要实施域管理。如果由于公司资源不足,限制用户权限是一定要做的了。
但是在限制用户权限以后,我们所要面对的会是一些新问题,比如某个MM某天突然要安装一个什么软件,而且还得到了领导的许可。或者我们自己由于管理需要安装一些软件,那么就会比较麻烦,必须要用到超级用户的权限,这时候要注销用户然后用超级用户登陆,中间那段等待的过程是痛苦的。而且在切换用户的时候更有可能泄露密码信息,被一些居心不良的人盗用。
Windows NT内核的系统本身为我们提供了一个工具——Runas。它可以在不切换用户的情况下让我们以管理员的身份运行某个软件。请看Runas的命令介绍。
Runas
允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限。
语法
runas [{/profile /noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program
参数
/profile
加载用户的配置文件。/profile 是默认值。
/no profile
/noprofile 指定不加载用户的配置文件。这使应用程序载入的更加快速,但是在一些应用程序中也会引起错误。
/env
指定当前使用的网络环境,而不是用户的本地环境。
/netonly
指明指定的用户信息只用于远程访问。
/smartcard
/smartcard 表示凭据是否是由智能卡提供的。
/showtrustlevels
列出 /trustlevel 开关项。
/trustlevel
指定应用程序运行所在的授权级别。使用 /showtrustlevels 查看可用的信任级别。
/user:UserAccountName
指定在其下运行程序的用户帐户的名称。用户帐户的格式应是 user@domain 或 domain\user。
程序
指定要用在 /user 中指定的帐户运行的程序或命令。
/?
在命令提示符显示帮助。
注释
管理员可以使用一个权限受限制的帐户执行日常、非管理性的任务,只有在执行特定管理任务时,才使用一个权限更大的帐户。要不经过注销再重新登录就完成这样的任务,可以用一般帐户登录,然后使用 runas 命令来运行需要更大权限的工具。
有关 runas 命令的使用范例,请参阅“相关主题”。
尽管 runas 通常由 Administrator 帐户使用,但并非仅限于 Administrator 帐户。任何拥有多个帐户的用户均可以利用备用凭据,使用 runas 运行程序、MMC 控制台或“控制面板”项。
如果要在计算机上使用 Administrator 帐户,对于 /user:,键入下列参数之一:
/user:AdministratorAccountName@ComputerName
/user:ComputerName\AdministratorAccountName
如果想以域管理员身份使用这个命令,键入下列参数之一:
/user:AdministratorAccountName@DomainName
/useromainName\AdministratorAccountName
runas 命令允许您运行程序 (*.exe)、保存的 MMC 控制台 (*.msc)、程序和保存的 MMC 控制台的快捷方式及“控制面板”项。作为另一组(例如“Users”或“Power Users”组)的成员登录到计算机时,可以以管理员的身份运行。
可以使用 runas 命令来启动任何程序、MMC 控制器或“控制面板”项。只要提供适当的用户帐户和密码信息,用户帐户就具有登录到计算机的能力,并且程序、MMC 控制台、“控制面板”项在系统中及对该用户帐户均可用.
runas 命令允许您管理其他域的服务器(运行工具的计算机和要管理的服务器在不同的域中)。
如果尝试使用 runas 从网络位置启动程序、MMC 控制台或“控制面板”项,可能会因为用来连接网络共享的凭据与用来启动程序的凭据不同而失败。后者的凭据可能无法访问同一网络共享。
有些项,例如“打印机”文件夹和桌面项,间接由 Windows 2000 打开,而不能使用 runas 命令启动。
如果 runas 命令失败,则可能是没有运行 RunAs 服务或使用的用户帐户无效。要检查 RunAs 服务的状态,请在“计算机管理”中单击“服务和应用程序”,然后单击“服务”。要测试用户帐户,请尝试使用该帐户登录合适的域。
范例
要在本地计算机上以管理员身份启动 Windows 2000 命令提示行实例,请键入:
runas /user:localmachinename\administrator cmd
系统提示时,键入管理员密码。
要使用名为 companydomain\domainadmin 的域管理员帐户启动“计算机管理”管理单元实例,请键入:
runas /user:companydomain\domainadmin "mmc %windir%\system32\compmgmt.msc"
当提示时,键入帐户密码。
要使用名为 domain.microsoft.com 的域中的域管理员帐户 user 启动“记事本”实例,请键入:
runas /user:[email protected] "notepad my_file.txt"
当提示时,键入帐户密码。
要启动命令提示符行窗口、保存的 MMC 控制台、控制面板项或管理其他地点服务器的程序的一个实例,请键入:
runas /netonly /user:domain\username "command"
domain\username 必须是有足够权限管理服务器的用户。当提示时,键入帐户密码。
举个例子:假如我们需要用Administrator用户安装D盘的一个软件,软件的安装文件就是setup.exe那么我们可以这样来做,
打开运行,输入Runas /user:administrator "d:\setup.exe" 回车我们会得到一个输入administrator用户密码的提示信息,输入Administrator的密码然后回,setup.exe就会以administrator的身份模式运行。当然我们也可以把它做成一个批处理如下:
打开记事本输入如下命令,然后另存为Adminsetup.bat
@echo off
echo --------------------------------------------------
echo 安装软件中请等待..........
runas /user:%1 "%2"
exit
我们在安装软件的时候只需要打开运行窗口,运行adminsetup.bat administrator "D:\setup.exe"然后输入administrator的密码就可以了。当然,如果你网络中每台电脑的管理员用户都是一样的在上面的批处理中你可以把“%1”换成你的管理员用户名。但是我们在使用批处理时也无法避免输入密码这个步骤。最初我有尝试过用(echo 密码 Runas /user:administrator "command")来避免使用批处理时输入密码,但提示错误,于是感觉自己技术不足,在百度上一搜,发现有很多朋友碰到这种问题,也有朋友在百度问吧上给出了像我一样的答案,呵呵,我想那位朋友一定没试过,真是误人子弟啊。
经过一段时间的搜索我找到了这个软件CPAU来代替Runas并且他可以在使用批处理时避免输入密码。CPAU的命令行使用方法是:
CPAU.exe -u:administraotr -p password -ex "command"可以直接运行CPAU.exe得到该软件的帮助信息。这样我们就可以使用批处理命令而不需要输入密码了。把CPAU.exe放到C:\windows\system32目录下然后把上面的批处理改成
@echo off
echo --------------------------------------------------
echo 安装软件中请等待..........
CPAU.exe -u administrator -p password -ex "D:\setup.exe"
exit
这里再向大家介绍一个小技巧,相信大家现在装系统的时候都是使用克隆版的吧,我们不如把CPAU.exe改成Runas.exe然后放到系统克隆文件里,再用软件把那个批处理编译成exe文件也放到克隆文件里,这样以后在安装的时候就把CPAU.exe直接加入到系统中了。呵呵方便吧。
另外我还找到了一个Runasp.exe的小工具,它可以图形化的完成我们所需要的操作。使用很简单,相信大家一看就会。
CPAU是个轻巧、灵活的命令行工具,能以更简单的批处理方式帮助受限用户安全地以管理员权限完成操作。支持200/XP/2003/VISTA。在我的Windows 7 M3上测试通过。
CPAU的用法和runas相似,但扩展功能更多。
基本用法:
CPAU -u user [-p password] -ex "WhatToRun" [switches]
-u 执行该任务的用户名,域环境需要全称 如:domain\administrator
-p 该用户的密码,如果没有此开关,回车后要求输密码(不可见)
-ex 需要执行的程序,对于有空格出现的路径,建议加双引号,如 "c:\Program Files\qq.exe"
-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 Beta2\qq.exe" -lwp 运行程序
扩展:
直接把命令写入批处理或快捷方式交给用户运行无异于暴露了管理员密码。CPAU提供了加密开关将整个命令加密,避免账号和密码以明文出现。
首先,将准备要执行的命令加密,例如:
CPAU -u administrator -p 123456 -ex "f:\Program Files\QQ2008 Beta2\qq.exe" -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界面的,见: http://www.commandline.co.uk/sanur/
自动输入 RUNAS 密码的方法
  
  以非管理员用户登录时,如果要用管理员权限运行程序的话,需要用到 runas 命令,在使用脚本运行时,无法简单的利用管道来输入密码,有以下方法可免除每次需要输入密码的麻烦。
  1、使用系统自带的 runas /savecred 选项,第一次输入密码后,会保存凭据。
  特点:无法限制能够运行的命令,安全性差。
  
  2、使用 sanur,sanur 是一个小程序,能以管道的方法将密码或者文件中的内容传递给 runas 程序。
  runas | sanur password
  runas | sanur /i [drive:][path]filename
  特点:密码明文保存。
  相关页面:
  
  3、使用 lsrunas,功能类似 sanur,不过它无需运行 runas,自带完整的参数来执行。
  特点:密码明文保存。
  相关页面:
  
  4、使用 lsrunase,lsrunas 的加强版本,可以使用加密的密码。自带一个小软件 LSencrypt 用来生成加密的字串。
  用法:
  lsrunase /user:administrator /password:41BngA== /domain: /command:notepad.exe /runpath:c:\
  所有的参数必须齐全,其中:
  user 为运行的账号
  password 为密码加密后的字串
  domain 为机器名或域名,也可留空代表本机
  command 为要运行的程序名,如果携带参数需要在命令的首尾加引号
  runpath 为程序启动的路径
  特点:可以较完美的替代 runas,并避免直接将密码明文保存在脚本中。
  相关页面:
  
  5、使用 cpau,cpau 也是一个替代 runas 的程序,并且功能强大,可以使用加密的密码。
  用法:
  cpau -u administrator -p password -ex notepad -file start_notepad.txt -enc
  cpau -file start_notepad.txt -dec
  以上命令可以先将要执行的指令加密保存为一个文件,执行时载入此文件。
  特点:可以保护执行的脚本及命令不被他人查看,但在使用网络路径时存在一些问题。
  相关页面:
  
  6、使用 autoit,autoit 是一个脚本自动化执行的工具,可以完成很多自动化的任务,并且可以将脚本编译成 exe 文件来直接运行,从而达到了隐藏密码信息的目的。
  特点:功能强大,但操作复杂。
  相关页面:
  
  还有其他一些工具能够完成类似的操作。
  参考页面:
解决输入RUNAS管理员的方法
在域控环境下,一般用户的权限是无法安装软件的,在很多时候又只能在普通用户权限去操作,对此,微软给出的方法就是RUNAS,一个暂时提升用户权限的方法。
 
在win2k中,开始→程序→附件 ,找到计算器,按住shift键,点右键,选择“运行方式 ...”,这时候,会弹出对话框,询问你要使用哪个用户身份来运行该程序 。
不知道大家是否使用过win2k的这个功能,如果大家是使用win2k的英文版本的话,在按住shift后选择的就不是“运行方式 ...”而是“runas...”,也就是刚才提到的这个命令。
在cmd中输入runas,会得到帮助,今天,我们只将它最简单的用法,就是怎么样使用这个命令来以另外一个用户身份运行一个程序。
RUNAS 用法:
RUNAS [/profile] [/env] [/netonly] /user:<UserName> program
/profile 如果需要加载用户的配置文件
/env 要使用当前环境,而不是用户的环境。
/netonly 只在指定的凭据限于远程访问的情况下才使用
/user <UserName> 应使用 USER@DOMAIN 或 DOMAIN\USER 形式
program EXE. 的命令行。参阅下面的例子
例如:
> runas /profile /user:mymachine\administrator cmd
> runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
> runas /env /user:[email protected] "notepad \"my file.txt\""
注意: 只有在被提示时才输入用户的密码。
注意: USER@DOMAIN 与 /netonly 不兼容。
注意:配置文件路径不要有中文名称,也不要去试图去启动打印机(是真的启动不了哦)
来个具体的例子吧
域名:infosafe.local
管理员权限帐号:administrator
管理员帐号密码:123
运行的程序路径为 g:\setup.exe
>runas /profile /user:infosafe.local\administrator "g:\setup.exe"
>enter the password for infosafe.local\administrator: (这个输入的密码不会已明文显示的 )
>attempting to start setup.exe as user "infesafe.local\adminsitrator"... (OK了,你可以看到你要安装的软件在装着了)
输入密码是麻烦的 所以就想有没有不要输入密码,直接就可以启动的呢?
答案是肯定的,有啊,看到网上有不少的小程序就可以,测试了一下午,说说自己的体会
1.使用 sanur,软件很小,安放在例如:C:\Documents and Settings\用户名\ 目录下,建议路径中不要含有中文,外国的小软件,对国文的支持不是很好。
把需要安装的文件也放在这个目录下,文章上面都介绍sanur 是一个小程序,能以管道的方法将密码或者文件中的内容传递给 runas 程序,可能是人长得难看的缘故,一直就没有成功过,一直报错,说错误的用户名和密码。RP问题啊!
把我输入的命令写出来,有请路过的高手能解答我这迷途的羔羊
runas /profile /user:infosafe.local\administrator "g:setup.exe" | sanur 123
2.使用使用 cpau,cpau 也是一个替代 runas 的程序,并且功能强大,可以使用加密的密码。
安放的路径最好不要有中文名称,
用法:
cpau -u administrator -p 123(password) -ex setup.exe -lwp
说来也巧,一次就成功了,窃喜,窃喜,因为他可以取代runas哦。
3.使用 autoit,autoit 是一个脚本自动化执行的工具,可以完成很多自动化的任务,并且可以将脚本编译成 exe 文件来直接运行,从而达到了隐藏密码信息的目的。
特点:功能强大,但操作复杂。
就如介绍说的,是很复杂,很麻烦,第一次下载的还是英文版,就更看不懂了,后来找到个中文的,捣鼓了一个多小时,还是没有弄明白。
好啦,要是你也在使用runas的话,还是用cpau吧,他更简单,还不要输入密码。嘿嘿,看你的了。
 
这几天一直研究runas 密码自动输入解决方案,虽然通过脚本可以将密码自动输入,但是毕竟脚本中密码是以明文出现,对于有一定网络基础的用户而言,显然不够安全。
google一番,发现一款小工具——cpau完全可以替代 runas,该软件比较实用之处是将用户名和密码以及要运行的命令事先写入一个文本,该文本内容是经过加密处理的。然后再将该文本作为cpau的运行参数即可。
举例说明:
  cpau -u administrator -p password -ex notepad -file start_notepad.txt -enc
  cpau -file start_notepad.txt -dec
第一条命令将运行方式写入start_notepad.txt ,并加密
第二条命令是运行start_notepad.txt
再以上一篇文章更改IP的脚本为例,只要将cpau.exe和生成的运行文本封装在自解压文件中,同时更改批处理内容即可,这样就可以在安全的前提下完全替代runas。
生成chgip.txt
cpau -u bl\test -p password -ex "cscript //nologo \".\chgip.vbs\"" -file chgip.txt -enc
批处理中运行chgip.txt
cpau -file chgip.txt-de
我想在WINDOWS下更改一些软件的使用权限,但是每次都在以其它身份运行软件时总要输入用户名和密码,但我不想给其它人知道我的用户名和密码,我想建个BAT文件,合并在需要打开的图标里,当打开图标同时执行BAT文件,但是还有个难题就是,还要输入密码才行,但我不知道怎样才能做到不用输入密码,
这是我在CMD下的内容
C:\Documents and Settings\Administrator>runas /user:proxy\administrator "C:\Prog
ram Files\AutoCAD R14\acad.exe"
按回车,出现
键入密码 proxy\administrator:
然后输入密码,回车
试图启动 "C:\Program Files\AutoCAD R14\acad.exe" 作为用户 "proxy\administrator".
..
这样就能以ADMINISTRATOR的身份启动AUTOCAD啦,不知道怎样才能做到不用输入密码,就可以直接运行AUTOCAD14?
这是个很有用的方法,希望能跟大家一起来探讨
VBS脚本如下:
'建立Shell对象
set sh=WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
sh.SendKeys "runas /user:proxy\administrator cmd"
WScript.Sleep 1000
sh.SendKeys "{ENTER}"
WScript.Sleep 1000
'密码,这里我是空密码
sh.SendKeys "{ENTER}"
'如果要改为其他密码,就这样:sh.SendKeys "yourpassword{ENTER}"WScript.Sleep 1000
'替换yourpassword为你的密码
经过试验,发觉双重引号在VBS中不能直接使用
于是想了个变通的法子
脚本:a.vbs
===========
set sh=WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
sh.SendKeys "runas /user:company-com\administrator Studio.exe"
WScript.Sleep 1000
sh.SendKeys "{ENTER}"
WScript.Sleep 1000
sh.SendKeys "{ENTER}"
批处理文件:test.bat

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章