一.runas介绍
使用一个权限受限制的帐户执行日常、非管理性的任务,使用一个权限更大的账户执行特定的管理任务,对于管理员来说,这可以最大限度的提高操作的安全性,是一个非常好的习惯.在windows2000,runas命令就可以完成这个任务,它允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限,且不需要经过注销当前用户并重新登录的繁复过程。
RUNAS用法如下:
RUNAS [/profile] [/env] [/netonly] /user: program
/profile 如果需要加载用户的配置文件
/env 要使用当前环境,而不是用户的环境。
/netonly 只在指定的凭据限于远程访问的情况下才使用
/user 应使用 USER@DOMAIN 或 DOMAINUSER 形式
program EXE. 的命令行。参阅下面的例子
例如:
> runas /profile /user:mymachineadministrator cmd
> runas /profile /env /user:mydomainadmin "mmc %windir%system32dsa.msc"
> runas /env /user:user@domain.microsoft.com "notepad "my file.txt""
注意: 只有在被提示时才输入用户的密码。
注意: USER@DOMAIN 与 /netonly 不兼容。
二.常见错误及对策
1.在域控制器(DC)上不能工作.
当我们在域控制器上通过使用文件的右键快捷菜单中"运行为..."命令,以其他身份用户运行应用程序时,可能会遇到下述错误:
无法登录:
登录失败:未知的用户名或错误密码.
实际上我们的用户名和密码都是非常正确的,这个错误不会在独立服务器或域内的成员服务器上出现.导致这个错误的原因是微软的一个小小失误:当我们使用快捷菜单的"运行为..."命令调出"以其他用户身份运行"对话框时,"域"文本框内出现的是本地计算机的名字而不是本地计算机所属于的域的名字.解决办法只要输入正确的域名就可以了.
2.SP1补丁导致runas工作不正常.
当windows2000 Professional/server/advanced server打上sp1补丁后,会导致runas工作不正常(衣服越补越破...:)),具体表现为:
(1)当我们使用一个UPN用户名如admin@mydom.com启动某个应用程序时,如:
runas /user:admin@mydom.com "mmc C:WINNTsystem32compmgmt.msc"
用户验证通过应用程序初始化时会发生如下错误:
Microsoft Visual C++ Runtime Library
Runtime Error!
Program:C:WINNTsystem32mmc.exe
abnormal program termination
(2)当我们使用普通用户名,如admin时,同样运行上述程序:
runas /user:admin "mmc C:WINNTsystem32compmgmt.msc"
会出现下述错误:
试图启动 "mmc C:WINNTsystem32compmgmt.msc" 作为用户 "admin"...
RUNAS 错误: 无法运行 - mmc C:WINNTsystem32compmgmt.msc
1326: 登录失败: 未知的用户名或错误密码。
出现上述问题的根源在于runas命令使用TranslateName函数将UPN和普通用户名转换为domainuser格式,当转换不能完成时问题就发生了.
解决的办法临时可以使用domainuser格式的用户名,如"mydomadmin",要彻底解决这个问题还需要等待微软的补丁(补丁还须补丁补啊...:)).
3.使用runas运行的"共享文件夹"MMC管理单元不能在远程计算机上创建共享.
表现为当使用runas以其他用户的身份运行"共享文件夹"MMC管理单元后,则不能在远程计算机创建一个共享文件夹.原因是系统不能识别你输入的服务器名是远程计算机的还是本地计算机的.
解决的办法是等微软的补丁.:)