Autoit里RunAs函数的运用

前言

在域环境中我们总是会碰到账号权限限制,我们需要在普通账户下运行特权账号运行特定的命令程序来进行运维操作

RunAs函数

RunAs
使用不同的用户环境运行外部程序文件.
RunAs("用户名", "域", "密码", 注册标志, "程序"[, "工作目录"[, 显示标志[, 选项标志]]])

参 数

参 数说  明
用户名工作的用户名.
验证的域.
密码用户的密码.
注册标志$RUN_LOGON_NOPROFILE (0) - 不加载配置文件的交互式登录.
$RUN_LOGON_PROFILE (1) - 加载配置文件的交互式登录.
$RUN_LOGON_NETWORK (2) - 使用网络凭据.
$RUN_LOGON_INHERIT (4) - 继承调用进程的环境, 而不是用户环境.

常量定义文件: “AutoItConstants.au3”.
程序运行程序的完整路径(文件类型: EXE, BAT, COM, 或 PIF, 见备注).
工作目录[可选] 工作目录. 如果不指定, 则使用 @SystemDir. 这个路径不是程序的路径.
显示标志[可选] 程序执行时的显示状态:
@SW_HIDE = 隐藏窗口 (或使用关键字 Default)
@SW_MINIMIZE = 最小化窗口
@SW_MAXIMIZE = 最大化窗口
选择标志[可选] 控制父进程与子进程互动.
$STDIN_CHILD (0x1) = 提供句柄到子进程的 STDIN 流
$STDOUT_CHILD (0x2) = 提供句柄到子进程的 STDOUT 流
$STDERR_CHILD (0x4) = 提供句柄到子进程的 STDERR 流
$STDERR_MERGED (0x8) = 为 STDOUT 与 STDERR 提供相同的句柄. 也就是 $STDOUT_CHILD 与 $STDERR_CHILD 标志.
$STDIO_INHERIT_PARENT (0x10) = 提供子和父的 STDIO 流. 这个标志不能和任何其它 STDIO 标志结合. 当父层作为控制台应用被编译时, 这个标志非常有用.
$RUN_CREATE_NEW_CONSOLE (0x10000) = 子控制台进程应设立自己的窗口, 而不是使用父窗口. 当父层作为控制台应用被编译时, 这个标志非常有用.

常量定义文件: AutoItConstants.au3

Autoit代码

我们可以这样写

Local $sUserName = "linuxitellu"		;定义管理员账号
Local $sPassword = "AaBbCc123"			;定义管理员密码	
Local $Domain = "linuxitellu.com"		;定义AD域

; 在域环境中以管理员账号运行CMD
RunAs($sUserName, $domain, $sPassword, 0, "C:\Windows\system32\cmd.exe")	
; 定位直至CMD窗口被激活
WinWaitActive("管理员: C:\Windows\system32\cmd.exe") 	
; 输入注册表启动命令
Send ("regedit") 	
; 延时1秒
Sleep(1000)	
; 按回车键运行
Send ("{Enter}")	

以上就是一个完整的实例,以管理员账号激活后定位到cmd窗口中输入启动注册表命令启动的一系列模拟动作

分号用来注释一整行代码

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

传说中的暗暗

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值