Jump to content

Dismiss Dreaded XP "has not passed Windows logo testing" dialog


Recommended Posts

I have an installation package, part of which installs a printer with driver. This is a "virtual" printer which just produces a TIF or JPG (like the Adobe Acrobat printer produces a PDF). The driver is signed, and the certificate is installed as a "Trusted Publisher". This is sufficient to allow the driver to be installed "silently" on Vista and Windows 7, but on XP, the warning dialog "has not passed Windows Logo Testing" cannot be bypassed unless:

1. The driver has actually passed Windows Logo Testing

2. Group policy allows for silent device driver installation.

I have written an AutoItv3 script which solves this problem when running the installation from the command line. It works beautifully. However...

When deploying the install package via a Group Policy object to an XP machine, here's what happens:

1. The machine boots and waits for a user to log on.

2. As soon as a user has logged on, the .msi file gets executed in the background, using the machine account.

3. The installation runs, and starts the AutoIt executable to dismiss the pesky dialog.

4. The installation uses "RunDll32.exe PrintUI, etc." to create the printer using the new driver, and the installation waits for this to finish.

5. The printer installation starts, but the dialog comes up on the desktop of the logged-in user. Autoit is running in an invisible session using the machine account and does not recognize that the dialog has shown itself.

6. Unless the logged-in user happens to click "Continue Anyway" in time, the installation times-out and moves on, with the (correct) assumption that the printer did not install.

My gut feeling is that there probably is no simple way to get by this. I did think of installing the AutoIt executable in the machine's Startup menu and then installing the driver on a reboot, but that's not too secure, and I generally dislike forcing a reboot in order to complete the installation.

If I can't do it, I'll try using Group Policy to "open up" device driver installation prior to my installation and then "close it" back down afterward.

The AutoIt script is as follows:

WinWait("Hardware Installation", "Continue Anyway")

WinActivate("Hardware Installation", "Continue Anyway")

Send("!c")

Any thoughts?

Thanks.

Link to comment
Share on other sites

  • 2 weeks later...

I have figured out a solution to the problem.

The trick is to first wait for an instance of Explorer.exe to be running (so that Winsta0\default desktop is available). Then start the AutoIt script (if using Windows API function CreateProcess, specify Winsta0\default in the STARTUPINFO structure) then start the driver installation (rundll32.exe PrintUI.dll etc.). WinActivate may fail a few times before succeeding (try waiting 15 seconds between WinWait and WinActivate). When WinActivate succeeds, then call Send.

I have no idea if this will work in VISTA or Windows 7. As I said in my previous post, you can get around the warnings by signing your driver and installing the certificate prior to installing your driver.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...