einiter 发表于 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=[['123','avc'],['321','sda']]
;_ArrayDisplay($UserPass)
Local $USERNAME=['amine','XXX']
Local $PASSWORD=['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




einiter 发表于 2013-6-5 15:40:31

@afan


两小时后没人回复!我自己顶一下。

einiter 发表于 2013-6-6 11:13:34

等了一天了!木有人回复!!

@各位大神。

einiter 发表于 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
      
页: [1]
查看完整版本: 如何循环使用其他用户运行脚本?[已解决]