runas/cpau/lsrunase使用小结(以管理员运行指定程序)

企业环境中,为了安全起见一般都没有赋予域用户或者企业的PC客户端用户管理员权限。

但偶尔会有个别的程序一定需要管理员身份才能执行,如财务某些程序或专业的应用程序。那么如何不赋予用户管理员权限及密码但又可以让用户有权限执行指定的程序呢?

下面就介绍几种主流的办法:

1,runas命令(微软原生命令):

用法:
runas /user:user_name abc.exe
user_name是要使用哪个用户运行该程序就写上哪个用户名,abc.exe是程序名,如果abc.exe不在system32目录下的话,需要指明具体路径。

在cmd中输入runas,即可查看它的帮助说明及使用示例:

RUNAS [/profile] [/env] [/netonly] /user:<UserName> program
/profile 如果需要加载用户的配置文件
/env 要使用当前环境,而不是用户的环境。
/netonly 只在指定的凭据限于远程访问的情况下才使用
/user <UserName> 应使用 [email protected] 或 DOMAINUSER 形式
program EXE. 的命令行。参阅下面的例子
例如:
> runas /profile /user:mymachineadministrator cmd
> runas /profile /env /user:mydomainadmin "mmc %windir%system32dsa.msc"
> runas /env /user:[email protected] "notepad "my file.txt""
注意: 只有在被提示时才输入用户的密码。
注意: [email protected] 与 /netonly 不兼容。

但由于RUNAS每次都要自己输入密码,很麻烦我们可以添加参数(runas /savecred )来保存凭据。

例:
runas /user:administrator /savecred "D:\Program Files\AnyDesk.exe"

可以将以上命令保存为批处理,这样就可以用administrator用户权限来启动指定的那个程序了。(直接执行,不再需要用户输入密码)

-----------------------------------

2、使用lsrunase,这是第三方程序,需要下载。自带 LSencrypt 用来生成加密的字串。
用法:
lsrunase.exe /user:administrator /password:ABCDqfmI /domain: /command:"D:\Program Files\AnyDesk.exe" /runpath:"D:\Program Files"

所有的参数必须齐全,其中:
user 为运行的账号
password 为密码加密后的字串
domain 为机器名或域名,也可留空代表本机
command 为要运行的程序名,如果携带参数需要在命令的首尾加引号
runpath 为程序启动的路径
特点:可以较完美的替代 runas,并避免直接将密码明文保存在脚本中。

-----------------------------------

3、使用 cpau,cpau 也是一个替代 runas 的程序,并且功能强大,可以使用加密的密码。
用法:
cpau -u administrator -p password -ex notepad -file start_notepad.txt -enc
cpau -file start_notepad.txt -dec
以上命令可以先将要执行的指令加密保存为一个文件,执行时载入此文件。
特点:可以保护执行的脚本及命令不被他人查看,但在使用网络路径时存在一些问题。

时间: 2024-08-09 18:42:39

runas/cpau/lsrunase使用小结(以管理员运行指定程序)的相关文章

Runas命令:能让域用户/普通User用户以管理员身份运行指定程序。

注:本文由Colin撰写,版权所有!转载请注明原文地址,谢谢合作! 在某些情况下,为了安全起见,大部分公司都会使用域控制器或只会给员工电脑user的用户权限,这样做能大大提高安全性和可控性,但由此也带来了一些困扰. 比如:某些特定的部门(如财务,物流)没有管理员权限,但工作又需要使用特定的插件或程序,且该程序或插件又必须以管理员身份运行,在这种情况下,我们如果将用户的权限提升为管理员,那样会增加安全风险而且可能引起很多不可控的情况.在这种情况下,我们可以使用runas命令来指定运行某个程序,这个

怎么单独给某一个程序管理员运行权限

由于在域环境下,普通user的权限被限制,有些程序运行又需要管理员权限,怎样才能满足用户的需求又能兼顾安全策略呢?有网友介绍了runas.lsrunase等工具,我在win10+AD域环境下简单测试了一下,遇到了错误,只能执行系统中正常使用无需验证管理员账户的文件,而执行其他.exe文件时报错提示:程序运行权限需要提升,就算是使用内置的administrator账户也是相同的提示,暂时不确定是什么原因.最终找到了一个非常实用的小工具runastool.双击如下图这一步他会自动检测系统内具有adm

Qt开发程序在Windows 10应用需要管理员运行的解决思路

Qt开发程序在Windows 10应用需要管理员运行的解决思路 过了很长的时间没有发布博客了,但是我依然努力地开发Qt程序.目前呢,我发现开发Qt程序在Windows 10上有一个怪现象--有些程序右下角加上了盾牌的标志.那这个为什么呢? 原来是因为我的程序名称包含了Patch,结果就包含了加上了盾牌的标志.如果我去掉了Patch标志,盾牌就消失了.原来Windows对于文件名的一些敏感字,会选择性地做出一些防御操作.看来Windows 10在给我们安全的同时还给我们带来了"意想不到"

如何自动以管理员身份运行.NET程序?

原文:如何自动以管理员身份运行.NET程序? windows 7和vista提高的系统的安全性,同时需要明确指定“以管理员身份运行”才可赋予被运行软件比较高级的权限,比如访问注册表等.否则,当以普通身份运行的程序需要访问较高级的系统资源时,将会抛出异常. 如何让程序在启动时,自动要求“管理员”权限了,我们只需要修改app.manifest文件中的配置项即可. app.manifest文件默认是不存在的,我们可以通过以下操作来自动添加该文件. (1)进入项目属性页. (2)选择“安全性”栏目. (

在Windows8下如何以管理员身份运行应用程序

在Windows7或8下,系统默认以非管理员的身份来执行应用程序,目的是为了保护系统免遭恶意破坏.但有时候应用程序需要访问注册表等一些重要资源时,程序会抛出SecurityException. 如何解决这样的问题? 临时解决方案是右键应用程序,选中"run as administrator" 来运行程序 永久解决方案是直接修改应用程序的属性,把"Run this program as an administrator"选中,如下 在Windows8下如何以管理员身份

[转] “无法注册程序集***dll- 拒绝访问。请确保您正在以管理员身份运行应用程序。对注册表项”***“的访问被拒绝

原文 Win8下Visual Studio编译报“无法注册程序集***dll- 拒绝访问.请确保您正在以管理员身份运行应用程序.对注册表项”***“的访问被拒绝.”问题修正 原来在Win7下Visual Studio跑的好好的程序,现在在Win8下编译报“无法注册程序集***dll- 拒绝访问.请确保您正在以管理员身份运行应用程序.对注册表项”***“的访问被拒绝.”的错误.报错信息明面上看是让你用管理员身份运行Visual Studio,然后打开工程编译就好了.但总觉得这种方法不如直接双击“s

C#:判断当前程序是否通过管理员运行

原文:C#:判断当前程序是否通过管理员运行 public bool IsAdministrator() { WindowsIdentity current = WindowsIdentity.GetCurrent(); WindowsPrincipal windowsPrincipal = new WindowsPrincipal(current); return windowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator); } 转载声

如何跳过UAC以管理员身份启动程序

往往我们要用管理员身份去运行一个程序的时候,总是要有一个提示框: 可能会有用户选择禁用UAC,但这毕竟对系统的安全存在影响.下面就用一个简单的方法解决这个问题.该方法就是利用系统自带的任务计划程序来实现的. 一.创建一个任务来运行你所要运行的程序 找到任务计划程序. 方式一.开始菜单->附件->系统工具->任务计划程序: 方式二.直接在开始菜单的搜索栏中输入"任务计划程序"也可以找到: 方式三.运行(win+r)输入"taskschd.msc".

64位系统运行win32程序 界面卡死问题

win7 下运行游戏发现界面卡很久,跟踪发现卡在了connect( ). 游戏中connect 工作在阻塞模式下,阻塞可以接受.但是阻塞了5S 以上就感觉很奇怪. 而且只在一台电脑上发生这种情况.与服务器联调,并抓包.发现真正发起连接到连接成功其实非常快的. 时间主要耗在调用 connect  到显卡 发出连接请求之间. 于是在出问题的电脑上 想要断点调一下connect.发现VS 附加到进程的时候 提示 A remote operation is taking longer than expe