This works only when the user has administator rights.
What 'Tool' did you 'install' that launches CLS when inserting a USB stick? Does that tool run as a services and did you install this tool as Administrator? Does it have a User ID / Password configuration that allows you to set how it will run, or how (who) it will launch CLS (as)? What OS version is this on? Is UAC on and at what level?
Without a lot more info, it's kind of hard to know what is going on here.
Post back with more info if you can.
I use the program USBVirusScan 1.7.4. This program starts the CLS when inserting a stick. http://blog.didierstevens.com/programs/usbvirusscan/
It is started when the user logs in. (Via Startup folder). It has no userID/password protection.
We are using it on Windows 7 SP1 without UAC activated.
OK, so now I know more about what you are doing.
I had to become familiar, (not an expert though) in USBVirusScan.
From all the examples and uses that others documented on blog.didierstevens.com/programs site, most launch a Batch file to initiate the scanning program, scan.exe, in your case. Since scan.exe works when logged in as an Administrator, but not as a 'User' level access, I suspect that Scan.exe launched from within the starting batch file is not accessible without Administrator access.
For diagnostic purposes, I might suggest modifying the starting batch file: 1) leave echo ON, 2) place Pause commands between each line and use echo statements to show where you are, 3) establish how far the batch file runs before it exits out on you. This should help you understand which line is having problems and possibly better identify why scan.exe is not running.
You could also try having USBVirusScan launch CMD.exe /c and manually executing the batch file commands individually. Obviously this will not work if the batch file has if ( ) else ( ) structures or goto commands within.
I suspect that Scan.exe is not running -- possibly an Access Rights issue where scan.exe is installed. Just a thought. Let us know how far the batch file gets before it fails.
Hopefully this is helpful.