johnbear Posted April 18, 2011 Share Posted April 18, 2011 Hi guys,We use AutoIT where I work for some internal software deployments; we have in the region of 20,000 endpoints.I'm working with a user who is having a problem with one of our AutoIT packages. Part of what the package does is use FileInstall() to put an external tool in %temp%, run it with Run(), and read the output. Here's the code snippet around the actual running of the tool:FileInstall("path\to\externalTool.exe", @TempDir & "\externalTool.exe", 1) Local $PID = Run(@TempDir & "\externalTool.exe /u", @TempDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)I've cut the code down for the post, our real-world code has catches for all the standard errors. This code has worked for the last year or two across 80+ packages, including all of the test machines I have available to me for testing.However, on this one user's machine (Windows XP SP3), the Run() command is failing. @error is set to 1, and @extended is set to 193, "Not a valid Win32 application". I put together a special troubleshooting package to help me work out what's going on with this user's machine, and here's where it get's weird: the above code fails with @extended 193, but the following code run immediately afterwards in the script works fine:FileInstall("path\to\externalTool.exe", @TempDir & "\externalTool.exe", 1) Local $currentDirectory = @WorkingDir FileChangeDir(@TempDir) Local $PID = Run("externalTool.exe /u", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) FileChangeDir($currentDirectory )So, with the first Run() statement I get Windows error code 193, but with the second (manually changing working directory to @TempDir), the external tool runs fine. I don't think it's an AutoIT problem, as the same code runs fine on all of our test machines, and we've not had any complaints from other users, but I want to try and work out what's going on with this user's machine. Here are the other facts of the case:Machine is Windows XP SP3User is an administrator on the machineMachine has over 100GB free on @TempDir driveI've checked permissions on his @TempDir folder, nothing weird going on thereCopying write.exe from C:\Windows\System32 to @TempDir, it also fails to execute using code like the first snippet aboveIf I FileInstall() a batch file with "externalTool.exe /u" in it to @TempDir, and then Run() the batch file with the same code as the first snippet above, then the batch file is able to successfully run externalTool.exe (and I can read the output), even though running from AutoIT is failing with @extended 193 No log entries in user's anti-virus software client (AV software not interfering)No non-company processes running on machine at time of failureSo, can anyone else think of things I can check on this user's machine that might be causing the observed behaviour? I'm getting him to run a full disk surface check at the moment in case his @TempDir is stored on a damaged part of the disk, but I don't know why that would cause one Run() statement to fail and the other to succeed?Cheers!John 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