找回密码
 加入
搜索
查看: 2929|回复: 12

[AU3基础] 【已解决】貌似简单的RunAs问题,但无法解决,请大家帮忙

  [复制链接]
发表于 2017-7-13 15:05:12 | 显示全部楼层 |阅读模式
本帖最后由 dtj56 于 2017-7-19 14:14 编辑

下面的的程序,运行的结果是:弹出“运行安装程序出错!”的窗口,无法执行CMBCIE32.EXE这个安装程序。

已经反复检查,admin有该目录的完全控制权限;账号密码正确;测试程序,右击,选择以其他户运行,用admin可运行安装。

查询了好多有关RunAs的资料,无法解决,请大家帮忙看看,指出有误的地方。

=========程序=============
Dim $strPath
$strPath="d:\temp\CMBCIE32.exe"
if RunAs("admin", @ComputerName, "password", 0, $strPath)=0 Then
   MsgBox(4096,"","运行安装程序出错!")
EndIf
=========================
发表于 2017-7-13 16:08:22 | 显示全部楼层
回复 1# dtj56

加個 工作目錄是看看  工作目錄 設為跟執行程式同個目錄
 楼主| 发表于 2017-7-13 16:16:57 | 显示全部楼层
回复 2# kk_lee69

改成以下,还是提示运行安装程序出错
RunAs("admin", @ComputerName, "password", 0, $strPath, "d:\temp")
发表于 2017-7-13 17:21:32 | 显示全部楼层
本帖最后由 kk_lee69 于 2017-7-13 17:23 编辑

執行 你寫的AU3 那隻程式的身分 不是 admin 嗎

腳本 最前面 加上
#RequireAdmin
 楼主| 发表于 2017-7-13 17:36:59 | 显示全部楼层
回复 4# kk_lee69

加上了也不成功。
写这个程序 的目的是想让一般的USER在没有管理员权限下也可以安装软件。
测试时,也尝试在管理员下运行程序,但也不成功。好奇怪。
发表于 2017-7-16 23:24:29 | 显示全部楼层
你密码password?
发表于 2017-7-17 10:34:13 | 显示全部楼层
回复 5# dtj56

你在管理员下运行这个程序失败,是因为你没有做判断,依旧运行了这个RunAs,改成下面:
If IsAdmin() then
发表于 2017-7-17 10:39:20 | 显示全部楼层
回复 5# dtj56

你尝试在管理员下运行这段代码也出错,是因为没有做判断,依旧运行了这段RunAs,改成如下:
If IsAdmin() then
   Run("d:\temp\CMBCIE32.exe")
Else
  RunAs(.......省略)
EndIf

你的代码看不出什么问题,UAC关闭了么?如果没有关闭UAC,关闭它,然后重启后再运行代码试试。
 楼主| 发表于 2017-7-17 16:06:19 | 显示全部楼层
回复 8# phimiler


谢谢各位答复!按你的方式,run还是运行不了。

经测试,目前发现跟提权运行的程序有关。
从百度软件中心下载了2个程序,dopdf8.8.946.0.exe,BingDict_3.5.3.1600_Setup.exe。dopdf可以成功运行,Bingdict就失败。程序一样,就是提权程序不一样在。

请各位指教。

==========程序1:可以成功运行DOPDF============
Dim $strPath
$strPath="d:\temp\dopdf8.8.946.0.exe"
if RunAs("admin", @ComputerName, "password", 0, $strPath, "d:\temp")=0 Then
   MsgBox(4096,"","运行安装程序出错!")
EndIf
======================================

==========程序2:不能运行BINGDICT=============
Dim $strPath
$strPath="d:\temp\BingDict_3.5.3.1600_Setup.exe"
if RunAs("admin", @ComputerName, "password", 0, $strPath, "d:\temp")=0 Then
   MsgBox(4096,"","运行安装程序出错!")
EndIf
=======================================
发表于 2017-7-18 13:42:30 | 显示全部楼层
回复 9# dtj56


我去百度软件中心下载了你说的这两个程序,版本号都一致。

然后我新建了个账户admin,设为管理员,然后RunAs(“admin”.............)失败
我改为RunAs("administrator"............)提示成功

因此你先启用“administrator”账户,然后设置密码,用这个账户的权限去写RunAs
分析下来,虽然新建了个管理员账户admin,但其权限和原始的administrator还是有差别的。

等你的反馈情况。
发表于 2017-7-18 16:03:35 | 显示全部楼层
本帖最后由 tubaba 于 2017-7-18 16:05 编辑

BingDict_3.5.3.1600_Setup.exe 可以使用cmd引导


试试这个,勾上cmd引导,看看能不能运行.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2017-7-18 18:24:40 | 显示全部楼层
回复 10# phimiler

已经解决了。十分感谢你的回复及建议!

解决方法:
到组策略中将“用户帐户控制: 对内置管理员帐户使用管理审批模式”设为禁用,就可以了。
我的系统是WIN10,设置如下图


原因就如你的建议,“登录的是管理员账户,但是在某些重要的位置,比如系统盘中,是没有完全的管理员权限的,所以在进行更改的时候要提供管理员权限。”

参考了文章:
https://answers.microsoft.com/zh ... 4-9047-011b69bff619

https://answers.microsoft.com/zh ... 3-adfd-560d08481673

https://answers.microsoft.com/zh ... b-b159-49f128356d1e

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-7-18 23:25:09 | 显示全部楼层
回复 12# dtj56


我确认了下,起作用的应该是:用户帐户控制:以管理员批准模式运行所有管理员 这一项在起作用,而不是 用户帐户控制: 对内置管理员帐户使用管理审批模式

用户帐户控制:以管理员批准模式运行所有管理员(禁用):可用非内置管理员成功运行RunAs
用户帐户控制:以管理员批准模式运行所有管理员(启用):只能用Administrator成功运行RunAs

你试试,我是在Win7上测试的,修改组策略后要重启才能生效。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 00:56 , Processed in 0.079705 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表