找回密码
 加入
搜索
查看: 2412|回复: 3

[系统综合] 如何循环使用其他用户运行脚本?[已解决]

[复制链接]
发表于 2013-6-5 13:18:33 | 显示全部楼层 |阅读模式
本帖最后由 einiter 于 2013-6-7 10:16 编辑

我想让另一个脚本使用管理员的权限运行,但是因为很多机器管理员密码不同。然后我想通过数组进行循环运行runas!但是执行不成功。
当然如果有更好的方法!还望各位给条明路

详细代码如下。
#include <Array.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

;Local $UserPass[2][2]=[['123','avc'],['321','sda']]
;_ArrayDisplay($UserPass)
Local $USERNAME[2]=['amine','XXX'] 
Local $PASSWORD[2]=['123','YYY']
Local $Errorid
If IsAdmin() Then
        Run('Domain.exe',@ScriptDir)
Else                
        For $i=0 To UBound($Username)-1
                ;MsgBox('','','User:'&$USERNAME[$i]& @CRLF &'Pssword:'&$PASSWORD[$i])
                $Errorid[$i]=RunAs($USERNAME[$i],@ComputerName,$PASSWORD[$i],0,'Domain.exe',@ScriptDir)
                If @error Then ContinueLoop
                If $Errorid[$i] <> 0 Then Exit
        Next
        
        $Login = GUICreate("输入管理员用户名和密码", 237, 112, 457, 270)
        $Username = GUICtrlCreateInput("", 88, 8, 121, 21)
        GUICtrlSetLimit(-1, 12)
        $Button1 = GUICtrlCreateButton("登录", 56, 80, 115, 25)
        $Password = GUICtrlCreateInput("", 88, 40, 121, 21)
        $Label1 = GUICtrlCreateLabel("Username:", 8, 8, 68, 17, BitOR($SS_CENTER,$SS_CENTERIMAGE))
        $Label2 = GUICtrlCreateLabel("Password:", 8, 40, 68, 17, BitOR($SS_CENTER,$SS_CENTERIMAGE))
        GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case $GUI_EVENT_CLOSE
                                Exit
                        Case $Button1
                                MsgBox('','','123')
                EndSwitch
        WEnd
        
        
EndIf
 楼主| 发表于 2013-6-5 15:40:31 | 显示全部楼层
@afan


两小时后没人回复!我自己顶一下。
 楼主| 发表于 2013-6-6 11:13:34 | 显示全部楼层
等了一天了!木有人回复!!
@各位大神。
 楼主| 发表于 2013-6-7 10:14:34 | 显示全部楼层
已经解决
;增加了两个本地变量
Local $Uname,$Upwd
For $i=0 To UBound($Username)-1
                ;MsgBox('','','User:'&$USERNAME[$i]& @CRLF &'Pssword:'&$PASSWORD[$i])
                 $Uname=$USERNAME[$i]
                 $UPwd=$PASSWORD[$i]
                $Errorid[$i]=RunAs($Uname,@ComputerName,$Upwd],0,'Domain.exe',@ScriptDir)
                If @error Then ContinueLoop
                If $Errorid[$i] <> 0 Then Exit
        Next
        
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-17 17:44 , Processed in 0.074072 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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