【问题标题】:Autoit - Validate windows share user authenticationAutoit - 验证 Windows 共享用户身份验证
【发布时间】:2013-01-24 10:02:08
【问题描述】:

我正在尝试连接到 Windows 共享 (\print) 但如果我的身份验证失败,例如,错误的用户名或密码,我如何才能捕捉到该错误? 问题是,在执行脚本(exe.文件)时,如果我插入错误的凭据,错误消息来自 Autoit 程序,而不是我想要弹出的消息(上面的代码),如果身份验证有问题。

这是我的代码示例:

这里我尝试使用用户名和密码连接到服务器\打印

$WshNetwork = ObjCreate("WScript.Network")
$WshNetwork.MapNetworkDrive("", "\\print", True, $username, $password)

$username 和 $password 的值是从输入框填充的。 所以,在那段代码之后,我试图捕捉这样的错误:

if @error Then
    MsgBox(16, "", "Authentication error!")
EndIf

顺便说一句,我从控制台得到的错误是这个:

C:\Users\user\Desktop\test.au3 (33) : ==> The requested action with this object has failed.:
$WshNetwork.MapNetworkDrive( "","\\print",True, $username, $password)
$WshNetwork.MapNetworkDrive( "","\\print",True, $username, $password)^ ERROR

好吧,错误正在发生,但有什么方法可以从代码中捕获错误并发送警报(Msgbox)?

【问题讨论】:

    标签: autoit


    【解决方案1】:

    在 AutoIt 中查看 DriveMapAdd(...)。或者尝试使用这样的东西:

    $USERNAME = InputBox(...)
    $PASSWORD = InputBox(...)
    $DRIVEINPUTBOX = InputBox(...)
    $SHARE = "\\print\foldername"
    $DRIVE = $DRIVEINPUTBOX & ": "
    
    $COMMAND = "NET USE " & $DRIVE & " " & $SHARE & " /USER:" & $USERNAME & " " & $PASSWORD & " > TEMP"
    
    RunWait(@ComSpec & " /c " & $COMMAND)
    
    ; Read the file "TEMP"
    ; Choose what to do
    ; Delete file "TEMP"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 2013-10-30
      • 2023-03-28
      • 2018-02-12
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      相关资源
      最近更新 更多