Windows巧用计划任务实现RunAs的功能
2016-01-12 12:12
776 查看
最近开发了一个应用,需要和其他人提供的脚本做接口。条件约束比较严:
应用(下面简称APP)需要以SYSTEM启动。
脚本(下面简称SCRIPT)不能以SYSTEM启动,而是以特定用户(下面简称UserA)启动。
密码要能自动输入。
一、Runas
运行平台是Windows,第一下想到的是runas,参考了“runas命令的使用及RUNAS自动输入密码的方法”一文,做了以下试验。
第一次运行会提示输入密码,然后运行脚本,试验成功。
再次运行runas(注意要加/savecred参数),发现不用再次输入密码。
重启电脑后,再次试验,仍然有效。
本以为就这么结束了,然而,用SYSTEM帐户运行后发现,脚本会卡住。
经分析,SYSTEM帐户与直接打开cmd运行是不一样的,属于不同的会话。因而SYSTEM下没有保存过密码,需要重新输入。
方案一失败。
二、 Sanur
使用参考中提到了Sanur,发现该项目早已不再维护,只支持Windows 2003/XP等早期版本。
在cmd下试验就没有成功。
三、lsrunase
该软件在cmd下试验成功(支持Windows 2008),但在SYSTEM下运行不正常,失败。
虽然没成功,但软件还是有点用的,介绍使用步骤:
1. 使用LSencrypt界面程序将原始密码(PwdA)加密为密文(PwdB)。
2. 在cmd下输入以下命令
注意:
所有选项都要加上(/user, /password, /command, /runpath, /domain)
/domain:后留空,表示本机默认域或工作组。
/password:7F1z,使用加密后的密文(PwdB),而非加密前的密文(PwdA)
四、cpau
该软件Usage特别长,相当于一篇短篇小说了。。。具体用法略。
类似于lsrunase,在cmd下运行正常,在SYSTEM下运行失败,报错误码0xFFFFFFFB(-5)。
又失败了。
五、计划任务
经过一晚上的纠结,终于想出了计划任务。
计划任务具有以下特点,能满足本次需求:
支持以特定用户启动。
支持保存密码。
密码以密文保存,而非明文。
经过试验,可行!
实现结构如下(方括号内为程序、脚本或计划任务,圆括号内为运行用户):
[APP](SYSTEM)-->[Script_intermediate](SYSTEM)-->script_task(UserA)-->SCRIPT(UserA)
加入Script_intermediate脚本,内容为
计划任务中,新建script_task,内容为调用SCRIPT,并以UserA用户启动。
欢迎拍砖。
应用(下面简称APP)需要以SYSTEM启动。
脚本(下面简称SCRIPT)不能以SYSTEM启动,而是以特定用户(下面简称UserA)启动。
密码要能自动输入。
一、Runas
运行平台是Windows,第一下想到的是runas,参考了“runas命令的使用及RUNAS自动输入密码的方法”一文,做了以下试验。
runas /user:UserA /savecred "script.bat"
第一次运行会提示输入密码,然后运行脚本,试验成功。
再次运行runas(注意要加/savecred参数),发现不用再次输入密码。
重启电脑后,再次试验,仍然有效。
本以为就这么结束了,然而,用SYSTEM帐户运行后发现,脚本会卡住。
经分析,SYSTEM帐户与直接打开cmd运行是不一样的,属于不同的会话。因而SYSTEM下没有保存过密码,需要重新输入。
方案一失败。
二、 Sanur
使用参考中提到了Sanur,发现该项目早已不再维护,只支持Windows 2003/XP等早期版本。
在cmd下试验就没有成功。
三、lsrunase
该软件在cmd下试验成功(支持Windows 2008),但在SYSTEM下运行不正常,失败。
虽然没成功,但软件还是有点用的,介绍使用步骤:
1. 使用LSencrypt界面程序将原始密码(PwdA)加密为密文(PwdB)。
2. 在cmd下输入以下命令
lsrunase /user:UserA /password:7F1z /command:script.bat /runpath:d:\ /domain:
注意:
所有选项都要加上(/user, /password, /command, /runpath, /domain)
/domain:后留空,表示本机默认域或工作组。
/password:7F1z,使用加密后的密文(PwdB),而非加密前的密文(PwdA)
四、cpau
该软件Usage特别长,相当于一篇短篇小说了。。。具体用法略。
类似于lsrunase,在cmd下运行正常,在SYSTEM下运行失败,报错误码0xFFFFFFFB(-5)。
又失败了。
五、计划任务
经过一晚上的纠结,终于想出了计划任务。
计划任务具有以下特点,能满足本次需求:
支持以特定用户启动。
支持保存密码。
密码以密文保存,而非明文。
经过试验,可行!
实现结构如下(方括号内为程序、脚本或计划任务,圆括号内为运行用户):
[APP](SYSTEM)-->[Script_intermediate](SYSTEM)-->script_task(UserA)-->SCRIPT(UserA)
加入Script_intermediate脚本,内容为
schtasks /Run /TN /I script_task
计划任务中,新建script_task,内容为调用SCRIPT,并以UserA用户启动。
欢迎拍砖。
相关文章推荐
- 破解 abexcrackme2
- [Andorid开发艺术探索 读书笔记]View的事件体系(一)
- leetcode之Convert Sorted Array to Binary Search Tree
- python中的lib的一些安装方法
- RecyclerView用法
- 从实例中理解框架
- 旅途随笔
- 算法导论12:队列的链表实现 2016.1.12
- 阿里云云服务器ECS Windows Server 2012 R2 64位标准版PHP环境搭建
- Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(十)之Inner Classes
- leetcode219---Contains Duplicate II
- 规则
- 2016年01月12号
- ZYNQ HLS图像处理加速总结(二)——Processing System软件部分
- Android编程使用Intent传递对象的方法分析
- 待翻译---- Understanding Spring MVC Model and Session Attributes
- Activity生命周期
- Educational Codeforces Round 5-C. The Labyrinth(简单dfs)
- android 来电拦截
- 在POM文件中定义变量