- 積分
- 15
- 最後登入
- 1970-1-1
- 閱讀權限
- 10
- 積分
- 15
- 帖子
- 精華
升級
12.5%
|
後來小弟我不知哪裡想通了
試成功runas跑在網路磁碟機的方式
就是不要在runas的指令中加上/env就好了......
就整個把我的腳本改字囉
#cs
更新日:20150421
autoit腳本程式 BY 張富騰(Futeng)
可用拖放方式或是批次檔帶參數方式使用
使用$cmdlineraw跟cmdline[1]拖放檔案帶入時是絕對路經顯示
批次帶入時是相對路經顯示
但如果路經與檔名中如有空格的話$cmdlineraw帶入時會前後自帶雙引號
#ce
If $cmdlineraw = "" Then;檢查是否有拖放檔案進來
MsgBox (0,"Runas自動帶入密碼功能","請拖放要執行的檔案到此檔上方" & @CRLF & "或是使用批次檔後帶入參數方式");無指定安裝檔案會提示
Exit
EndIf
If stringleft($cmdlineraw,1) And StringRight($cmdlineraw,1) = Chr(34) Then;判斷如果傳入的字串前後都有雙引號的話,就先做移掉雙引號的處理
$cmdlineraw =(StringTrimLeft($cmdlineraw,1)) ;刪掉左邊第一個雙引號
$cmdlineraw =(StringTrimRight($cmdlineraw,1));刪掉右邊最後一個雙引號
EndIf
$cmdchr = ($cmdlineraw)
$path1 = StringLeft(@WorkingDir,2);找出目前要執行的檔案的磁碟槽
$netpath = DriveMapGet($path1);判斷是否為網路磁碟,並把路經字串傳入變數
$useradmin = "/user:administrator ";預設使用本機administrator帳號
$pwd = "********";本機administrator密碼
If StringLeft($netpath,2) = "\\" Then;判斷執行檔是否在網路磁碟機中
$useradmin = "/user:her\administrator ";使用網域administrator帳號
$pwd = "********";使用網域administrator密碼
If StringMid($cmdchr,2,2) <> ":\" Then;判斷傳入方式,如果是用批次帶參數方式就得先變成完整路徑
$cmdchr = ($netpath &"\"& $cmdchr);把網路磁碟機實際路經跟檔名結合成絕對路經
Else
$s1 = StringInStr ($cmdchr,"\",0,-1);使用拖放方式的絕對路經先判斷|從右邊數過來的位置
$s2 = Stringmid ($cmdchr,$s1+1) ;取出網路磁碟機執行的檔案的檔名
$cmdchr = ($netpath &"\"& $s2) ;把網路磁碟機實際路經跟檔名結合成絕對路經
EndIf
ElseIf StringMid($cmdchr,2,2) <> ":\" Then;判斷傳入方式,如果是用批次帶參數方式就得先變成完整路徑
$cmdchr = (@WorkingDir &"\"& $cmdchr);把路經跟檔名結合成絕對路經
EndIf
$err = MsgBox (1,"Runas自動帶入密碼功能","請確定要執行的檔案,如不是請按取消" & @CRLF & "是否要執行:" & $cmdchr)
If $err = 2 Then Exit;按取消就直接退出程式
If StringRight($cmdchr,4) = ".msi" Then;判斷安裝的程式副檔名是msi的話要跑下一行增加msiexec.exe /i
$cmdrunas = ("%windir%\system32\runas /profile " & $useradmin & Chr(34) & " msiexec.exe /i " & $cmdchr & Chr(34));runas指令組合
Else
$cmdrunas = ("%windir%\system32\runas /profile " & $useradmin & Chr(34) & $cmdchr & Chr(34));runas指令組合
EndIf
Run (@ComSpec & " /c " & $cmdrunas) ;dos開窗執行 /c自動結束命令視窗,/k保留命令視窗
WinWaitActive("C:\Windows\system32\cmd.exe");等待畫面
WinActive("C:\Windows\system32\cmd.exe");等待畫面
Send($pwd);密碼
Send("{ENTER}")
Exit
|
|