prayi Posted July 30, 2019 Posted July 30, 2019 (edited) Hi All, I am launching the Internet Explorer as specific user and passing the URL. Normally it works fine, but for the URL which has certificate issue I need to bypass it. Below is the code I am trying to but unable to bypass the certificate error. Can anyone help on this. expandcollapse popup#AutoIt3Wrapper_UseX64=n Opt("MustDeclareVars", 1) AutoItSetOption("WinTitleMatchMode", 3) ; EXACT_MATCH! #include "PSMGenericClientWrapper.au3" #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <BlockInputEx.au3> #include <AutoItConstants.au3> #include <Clipboard.au3> #include <IE.au3> ;======================================= ; Consts & Globals ;======================================= Global $TargetAddress Global $TargetUsername Global $TargetPassword Global $TargetLogonDomain Global $ConnectionClientPID = 0 Global $PSMRemoteMachine Global $oIE Global Const $DISPATCHER_NAME = "IE RunAs" Global Const $CLIENT_EXECUTABLE = "C:\Program Files\Internet Explorer\iexplore.exe" Global Const $WORKING_DIR = "C:\Program Files\Internet Explorer" Global Const $ERROR_MESSAGE_TITLE = "PSM " & $DISPATCHER_NAME & " Dispatcher error message" Global Const $LOG_MESSAGE_PREFIX = $DISPATCHER_NAME & " Dispatcher - " ;======================================= ; Code ;======================================= Exit Main() ;======================================= ; Main ;======================================= Func Main() Local $title ; Init PSM Dispatcher utils wrapper ToolTip ("Initializing...") if (PSMGenericClient_Init() <> $PSM_ERROR_SUCCESS) Then Error(PSMGenericClient_PSMGetLastErrorString()) EndIf LogWrite("successfully initialized Dispatcher Utils Wrapper") ; Get the dispatcher parameters FetchSessionProperties() LogWrite("mapping local drives") if (PSMGenericClient_MapTSDrives() <> $PSM_ERROR_SUCCESS) Then Error(PSMGenericClient_PSMGetLastErrorString()) EndIf LogWrite("starting client application") ToolTip ("Starting " & $DISPATCHER_NAME & "...") ;$ConnectionClientPID = Run($CLIENT_EXECUTABLE) Local $LogonFlag = 1 ;0 - Interactive logon with no profile. ;1 - Interactive logon with profile. ;2 - Network credentials only. ;4 - Inherit the calling process's environment instead of the user's environment. Local $ExePlusURL = StringFormat("%s %s", $CLIENT_EXECUTABLE, $PSMRemoteMachine) Local $ConnectionClientPID = RunAs($TargetUsername, $TargetLogonDomain, $TargetPassword, $LogonFlag, $ExePlusURL, $WORKING_DIR, @SW_MAXIMIZE) tooltip ("launching iE") if ($ConnectionClientPID == 0) Then Error(StringFormat("Failed to execute process [%s]", $CLIENT_EXECUTABLE, @error)) EndIf tooltip ("Before handle login section") ; Send PID to PSM so recording/monitoring can begin ; Notice that until we send the PID, PSM blocks all user input. LogWrite("sending PID to PSM") if (PSMGenericClient_SendPID($ConnectionClientPID) <> $PSM_ERROR_SUCCESS) Then Error(PSMGenericClient_PSMGetLastErrorString()) EndIf ; ------------------ ; Handle login here! ; CHANGE_ME ; ------------------ Sleep(10000) For $i = 1 To 1*2400 LogWrite("Processing Web Interface - " & $i) $title = WinGetTitle("[ACTIVE]") LogWrite("Title=" & $title) Select Case WinWaitActive("Certificate Error") LogWrite("Accept Certificate error warning") _IELinkClickByText($ExePlusURL, "Continue to this website (not recommended).") LogWrite("Accepted Certificate error warning") ;Testing IE Case WinActive("Internet Explorer") sleep(500) Sleep (500) SendCredentials() ExitLoop EndSelect Sleep(25) Next MouseMove(500, 500) ; Terminate PSM Dispatcher utils wrapper LogWrite("Terminating Dispatcher Utils Wrapper") PSMGenericClient_Term() Return $PSM_ERROR_SUCCESS EndFunc ;================================== ; Functions ;================================== ; #FUNCTION# ==================================================================================================================== ; Name...........: Error ; Description ...: An exception handler - displays an error message and terminates the dispatcher ; Parameters ....: $ErrorMessage - Error message to display ; $Code - [Optional] Exit error code ; =============================================================================================================================== Func Error($ErrorMessage, $Code = -1) ; If the dispatcher utils DLL was already initialized, write an error log message and terminate the wrapper if (PSMGenericClient_IsInitialized()) Then LogWrite($ErrorMessage, True) PSMGenericClient_Term() EndIf Local $MessageFlags = BitOr(0, 16, 262144) ; 0=OK button, 16=Stop-sign icon, 262144=MsgBox has top-most attribute set MsgBox($MessageFlags, $ERROR_MESSAGE_TITLE, $ErrorMessage) ; If the connection component was already invoked, terminate it if ($ConnectionClientPID <> 0) Then ProcessClose($ConnectionClientPID) $ConnectionClientPID = 0 EndIf Exit $Code EndFunc ; #FUNCTION# ==================================================================================================================== ; Name...........: LogWrite ; Description ...: Write a PSMWinSCPDispatcher log message to standard PSM log file ; Parameters ....: $sMessage - [IN] The message to write ; $LogLevel - [Optional] [IN] Defined if the message should be handled as an error message or as a trace messge ; Return values .: $PSM_ERROR_SUCCESS - Success, otherwise error - Use PSMGenericClient_PSMGetLastErrorString for details. ; =============================================================================================================================== Func LogWrite($sMessage, $LogLevel = $LOG_LEVEL_TRACE) Return PSMGenericClient_LogWrite($LOG_MESSAGE_PREFIX & $sMessage, $LogLevel) EndFunc ; #FUNCTION# ==================================================================================================================== ; Name...........: PSMGenericClient_GetSessionProperty ; Description ...: Fetches properties required for the session ; Parameters ....: None ; Return values .: None ; =============================================================================================================================== Func FetchSessionProperties() ; CHANGE_ME if (PSMGenericClient_GetSessionProperty("Username", $TargetUsername) <> $PSM_ERROR_SUCCESS) Then Error(PSMGenericClient_PSMGetLastErrorString()) EndIf if (PSMGenericClient_GetSessionProperty("Password", $TargetPassword) <> $PSM_ERROR_SUCCESS) Then Error(PSMGenericClient_PSMGetLastErrorString()) EndIf if (PSMGenericClient_GetSessionProperty("Address", $TargetAddress) <> $PSM_ERROR_SUCCESS) Then Error(PSMGenericClient_PSMGetLastErrorString()) EndIf if (PSMGenericClient_GetSessionProperty("PSMRemoteMachine", $PSMRemoteMachine) <> $PSM_ERROR_SUCCESS) Then Error(PSMGenericClient_PSMGetLastErrorString()) EndIf if (PSMGenericClient_GetSessionProperty("LogonDomain", $TargetLogonDomain) <> $PSM_ERROR_SUCCESS) Then Error(PSMGenericClient_PSMGetLastErrorString()) EndIf EndFunc Func SendCredentials() MouseClick ($MOUSE_CLICK_LEFT, 500 ,1) Sleep(5) if (SendUserName()) Then if (SendPassword()) Then Sleep(100) ;was 500 Send("{ENTER}") return True EndIf EndIF Error("Credentials injection failed") return False EndFunc Func SendUserName() ToolTip("Preparing to inject credentials") Local $text ToolTip ("Scanning Username filed") For $i = 1 to 25 ; try for n minutes ;~ _ClipBoard_SetData("") ;~ Send ("^a") ;~ Sleep(500) ;~ Send("^c") ;~ Sleep(500) ;~ $text = _ClipBoard_GetData($CF_TEXT) if (StringInStr($text, "http")) = 0 Then Send("Scanning...",1) Send("^a") Sleep(500) Send("^x") Sleep(500) $text = _ClipBoard_GetData($CF_TEXT) if (StringCompare($text, "Scanning...",1))=0 Then ToolTip("Sending: " & $TargetUsername) Send($TargetUsername,1) Send("{TAB}") Sleep(500);was 1000 return True EndIf Else Send("{ESC}{TAB}") EndIF Send ("{TAB}") Sleep(1000) Next return False EndFunc Func SendPassword() Local $text toolTip("Scanning Password Field") For $i = 1 To 25 _ClipBoard_SetData("") Send("^a^x") Sleep(500) ;was 500 $text = _ClipBoard_GetData($CF_TEXT) If (StringInStr($text, "https")) = 0 Then _ClipBoard_SetData("") Send("ScanningP...",1) Sleep(100) ;was 100 Send("^a^x") Sleep(100) ;was 100 $text = _ClipBoard_GetData($CF_TEXT) if (StringCompare($text,"ScanningP...",1))<>0 Then Send($TargetPassword,1) Sleep(100) ;was 1000 return True EndIf Else Send("{ESC}{TAB}") EndIf Send("{TAB}") Sleep(100) Next return False EndFunc Edited July 30, 2019 by Melba23 Added code tags
Moderators Melba23 Posted July 30, 2019 Moderators Posted July 30, 2019 Moved to the appropriate forum, as the Developer General Discussion forum very clearly states: Quote General development and scripting discussions. If it's super geeky and you don't know where to put it - it's probably here. Do not create AutoIt-related topics here, use the AutoIt General Help and Support or AutoIt Technical Discussion forums. Moderation Team Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now