TheCrimsonCrusader Posted May 29, 2018 Share Posted May 29, 2018 (edited) This problem is intermittent, but when the script is ran, it will sometime get the "Error: Array variable has incorrect number of subscripts or subscript dimension range extended." problem. The intent of this script is to determine the currently logged in user while running in the system context when ran through SCCM and then copy the "cacerts" directory to a Program Files path and then two other certs to the actual currently logged in user. Then if a string doesn't exist in the Java exception.sites file, then add it to the end of that clear text file. So I "assume" the problem is related to the "StringRegExp" entries, but no idea how to address since the problem is inconsistent. Any ideas? Thanks in advance! expandcollapse popup#NoTrayIcon #RequireAdmin #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=Test.ico #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\DetectionMethod","Test","REG_SZ","Installed") ;Get LastLoggedOnUser value, which is the currently logged in user $GetCurrentUser = RegRead("HKLM64\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI","LastLoggedOnUser") ;Strip domain\ from LastLoggedOnUser value $before = $GetCurrentUser $after = StringSplit($before, "\")[2] FileCopy(@ScriptDir & "\cacerts",@ProgramFilesDir & "\Java\jre1.8.0_172\lib\security\",1) FileCopy(@ScriptDir & "\sandbox.certs","c:\users\" & $after & "\AppData\LocalLow\Sun\Java\Deployment\security\",1) FileCopy(@ScriptDir & "\trusted.certs","c:\users\" & $after & "\AppData\LocalLow\Sun\Java\Deployment\security\",1) While 1 Sleep(1000) $file = FileOpen("c:\Users\" & $after & "\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites", 0) $read = FileRead($file) If @error = -1 Then MsgBox(0, "Focal Point Error", "The file of " & "c:\Users\" & $after & "\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites" & " appears to be open. Please close it, so it can be modified for focal point.") Exit Else If Not StringRegExp($read,"https://sapportal.corp.test.com/") Then FileWriteLine("c:\Users\" & $after & "\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites","https://sapportal.corp.test.com/" & @CRLF) EndIf If Not StringRegExp($read,"https://sapportalqa.corp.test.com/") Then FileWriteLine("c:\Users\" & $after & "\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites","https://sapportalqa.corp.test.com/" & @CRLF) EndIf If Not StringRegExp($read,"https://sapportalstg.corp.test.com") Then FileWriteLine("c:\Users\" & $after & "\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites","https://sapportalstg.corp.test.com/" & @CRLF) EndIf Exit EndIf FileClose($file) WEnd Edited May 29, 2018 by TheCrimsonCrusader Link to comment Share on other sites More sharing options...
Andreik Posted May 29, 2018 Share Posted May 29, 2018 (edited) The only line that could generate this error seems to be this one $after = StringSplit($before, "\")[2] if $before don't contain a string formated like [domain]\[username]. You can get the username also using @UserName macro. Edited May 29, 2018 by Andreik When the words fail... music speaks. Link to comment Share on other sites More sharing options...
TheCrimsonCrusader Posted May 29, 2018 Author Share Posted May 29, 2018 Thanks for that tidbit. I checked the user's machine and sure enough, it was an e-mail address instead of the %domain%\%username% convention. I will just work around this by going off of the SAM instead. Link to comment Share on other sites More sharing options...
Trong Posted May 29, 2018 Share Posted May 29, 2018 Try to do it simple: #NoTrayIcon #RequireAdmin #Region #AutoIt3Wrapper_Icon=Test.ico #EndRegion Global $Java_security_path = @HomeDrive & "\users\" & @UserName & "\AppData\LocalLow\Sun\Java\Deployment\security" Global $file_exception = $Java_security_path & "\exception.sites" Global $Url_exception = "https://sapportal.corp.test.com/" FileCopy(@ScriptDir & "\cacerts", @ProgramFilesDir & "\Java\jre1.8.0_172\lib\security\", 1) ;;;;NEED FIX IT - GET JAVA PATH ;;;;; FileCopy(@ScriptDir & "\sandbox.certs", $Java_security_path & "\sandbox.certs", 1) FileCopy(@ScriptDir & "\trusted.certs", $Java_security_path & "\trusted.certs", 1) If Not FileExists($file_exception) Then Exit MsgBox(48, "Error Not Found", "The file " & $file_exception & " !") Global $read = FileRead($file_exception) If @error Then MsgBox(48, "Focal Point Error", "The file " & $file_exception & " appears to be open." & @CRLF & "Please close it, so it can be modified for focal point.") Exit Else If Not StringInStr($read, $Url_exception) Then FileWriteLine($file_exception, $Url_exception) EndIf MsgBox(0, "Write Done", "File " & $file_exception & " !") Exit Regards, Link to comment Share on other sites More sharing options...
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