找回密码
 加入
搜索
查看: 7510|回复: 16

[系统综合] 调整函数 里面的语句执行身份

 火.. [复制链接]
发表于 2010-12-7 13:23:30 | 显示全部楼层 |阅读模式
我有个函数,里面包含了各种拷贝文件到@system  system32  注册表读写等动作
现有没有办法使得这个函数里面的语句都以一个身份一次性运行?(不要那种runas一个一个写的方式)

谢谢大家

func  test()
  语句
  --
endfunc
发表于 2010-12-7 13:47:57 | 显示全部楼层
“都以一个身份一次性运行”是什么意思,不太明白?
发表于 2010-12-7 18:23:25 | 显示全部楼层
同楼上的,完全不知道楼主说表达,看楼主最后的
func  test()
  语句
  --
endfunc
似乎想表达:自定义一个函数来用
 楼主| 发表于 2010-12-8 09:38:17 | 显示全部楼层
func  test()
xcopy
regdelete
regwrite
---
---
endfunc
执行环境是在受限制用户下运行该程序,
以上语句要一个个都用 runas 管理员身份,,可以简化这样的语句么?
发表于 2010-12-8 13:07:32 | 显示全部楼层
#RequireAdmin 我只知道代码开头加这个,Vista和Win7系统下我试了,如果当前用户不是管理员用户,会弹出一个需要验证的对话框
发表于 2010-12-8 19:44:39 | 显示全部楼层
本帖最后由 pusofalse 于 2010-12-8 19:45 编辑

#include <LocalSecurityAuthority.au3>
_ImpersonateSystemContext()
test()
_RevertToSelf()


以SYSTEM权限执行test函数,之后恢复成原有权限。
以上代码需要管理员权限。
 楼主| 发表于 2010-12-9 09:39:06 | 显示全部楼层
本帖最后由 leon460 于 2010-12-9 09:51 编辑
#include <LocalSecurityAuthority.au3>
_ImpersonateSystemContext()
WriteReg()
_RevertToSelf()

Func WriteReg()
        
        Local $ProxyEnable, $ProxyServer, $ProxyOverride, $ConnectionSettings, $Proxy, $Profile, $tmpKey
                
                $RegFile = FileOpen("C:\WINDOWS\TraceNet.reg", 10)
                FileWriteLine($RegFile, "Windows Registry Editor Version 5.00" & @CRLF)
                FileWriteLine($RegFile, "" & @CRLF)        

                FileWriteLine($RegFile, "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]" & @CRLF)
                FileWriteLine($RegFile, """TracNet""=""""C:\\Windows\\TracNet.exe"" /start""" & @CRLF)        
                FileWriteLine($RegFile, "" & @CRLF)        
                FileClose($RegFile)        
        
EndFunc        
传说中的 pusofalse 出现了,呵呵,感谢

我贴出了我的注册表写入函数,经测试好像还是不行
我的目的:在user 甚至是guest权限的用户下 运行以上代码就能写入  C:\WINDOWS\TraceNet.reg  
我是域管理员,拥有客户端的管理员权限,就是不知道把管理员权限添加到以上代码中比较合适

感谢大家
 楼主| 发表于 2010-12-14 21:56:29 | 显示全部楼层
回复 6# pusofalse


有空再看看我 7#的称述,,

自己顶自己下
发表于 2010-12-14 22:05:19 | 显示全部楼层
受限用户跨权限操作,不用runas的话就慢慢折腾吧
发表于 2010-12-15 01:07:11 | 显示全部楼层
回复 7# leon460


    只用user/guest权限运行,的确很难做到,除非用adminitrator给user/guest赋予相关权限。
_ImpersonateSystemContext函数的功能是模拟SYSTEM用户登录,做一些只有用SYSTEM权限才能完成的一些事情,函数本身也是需要管理员权限的。

备份及恢复注册表/文件需要进程有SeBackupPrivilege和SeRestorePrivilege特权,默认情况下只有管理员和Backup operators用户才有这两项权限,所以首先要为user/guest添加这两项权限。如果要将注册表文件写入到WINDOWS目录中,还要设置WINDOWS目录的权限。另外还要设置注册表的权限,以允许user/guest创建子键。总之要做的事情有很多,很麻烦,我只测试了前面2步,就已经重启了3次电脑。最遗憾的是,以上这些操作都需要在管理员权限下进行。

楼主的目的是 在user甚至是guest权限的用户下运行代码就能写入reg文件,这样的目的能实现,前提是先在administrator用户下为user/guest开启各种权限。
 楼主| 发表于 2010-12-15 13:49:05 | 显示全部楼层
回复 9# ceoguang

你的意思是,我只有在函数里面每个语句都用 runas 一句一句地写了?  呜呜呜
 楼主| 发表于 2010-12-15 13:49:54 | 显示全部楼层
回复 10# pusofalse

有用比runas更好的方式么?
发表于 2010-12-15 14:57:46 | 显示全部楼层
回复  ceoguang

你的意思是,我只有在函数里面每个语句都用 runas 一句一句地写了?  呜呜呜
leon460 发表于 2010-12-15 13:49

明显是,如果受限用户拥有管理权限的话就无须runas,但那就不叫受限用户了.
 楼主| 发表于 2010-12-17 13:01:57 | 显示全部楼层
回复 13# ceoguang

我的意思是:怎样写以上语句(目前只知道使用runas),比如我函数中有上百个写注册表的语句,难道我要一个一个用runas才行,有没有简化代码的方法?
前提是在受限用户下甚至guest下运行程序

ps:我有域管理员权限 和本地管理员权限
发表于 2010-12-17 14:21:00 | 显示全部楼层
函数有多少语句跟runas有什么关系?
先了解runas的用法再来问可以吗?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-13 15:39 , Processed in 0.089306 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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