If your script is not working, here are some ideas for identifying the problem.
Verify that the Update Script file has been saved in ANSI, not Unicode format
The Software Update Wizard requires the update script files to be in ANSI text format.
Your script will fail if it is saved in a Unicode format.
Turn on SuperLogging
You can get the Software Update Wizard service to log virtually every operation it does,
which may help to identify the cause of the problem. When SuperLogging
is on the WebUpdateSvc4.log file can grow quite quickly, so you should only use
it in a test environment or for helping specific customers. See
SuperLogging to learn how to enable/disable SuperLogging.
The run your update script with SuperLogging enabled and carefully check the
resulting WebUpdateSvc4.log file for errors.
Can Internet Explorer access the Internet?
The Software Update Wizard uses Internet Explorer's components and settings to
access the internet. Therefore Internet Explorer (5.5 or later) must be
configured to be able to access the internet, through your proxy server if
relevant, in order for the Software Update Wizard to be able to work.
Even if the client machine uses Firefox only, Windows Internet Options must
be correctly configured, either through Control Panel or through IE's Internet
Check Proxy Server Settings
Check that the Internet Explorer proxy server settings are correct. Also check
the proxy override string (proxy settings -> 'Exceptions'). We have found
that Internet Explorer will allow syntactically incorrect override strings to
be entered, either through the visual interface or by policy scripts which write
directly to the registry. In addition, we have found that IE may work with a
syntactically incorrect exceptions list, where the Software Update Wizard passes
it through to the wininet libraries and fails. You can check the proxy override
string at the following registry location:
See also: http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/ierk/Ch13_d.mspx?mfr=true
for more information on proxy override strings.
Is Your Web Server Correctly Configured?
We do not recommend using Windows Integrated Authentication (formerly
known as 'NTLM') to store your update scripts or update files on your server
behind a password protected folder. Although the client machine hosting the
Software Update Wizard will be a Windows machine capable of authenticating with a
Windows Integrated Authentication host, it may connect through a non-Windows
proxy server. If you are getting an error code 12152 from the Software Update
Wizard then this is the most likely cause. Change to 'Basic Authentication'
and the error will disappear.
Is the Software Update Wizard installed correctly?
First, check that the Software Update Wizard has been correctly installed. The
easiest way to validate that the installation is working is to run the Software Update Wizard "Hello World" example.
"Hello World" uses
wuw4.dll and either WebUpdateSvc4.exe running as a Windows Service (if you
are running on Windows NT or later) or as a Windows executable (if you are
running Windows 9x).
If the test application updates successfully, your
installation is correct.
To test WebUpdateSvc4.exe in scenarios where you do not wish to deploy it as a
Windows Service you should open a command prompt in the folder which contains
WebUpdateSvc4.exe and issue the following command:
This command will launch the Software Update Wizard and download "Hello World"
V2 into the same folder as WebUpdateSvc4.exe.
Is the Software Update Wizard Licence File in the Correct Location?
Remember that the Software Update Wizard licence file, WebUpdateSvc4.LIC, must be
located in the same folder as the application which calls the Software Update Wizard.
Therefore if your application loads wuw4.dll and calls
its WebUpdate() or WebUpdateWait() functions then the licence file must reside in
the same folder as your running application. The same applies if your application
is calling wuwstub.exe rather than
wuw4.dll - both wuwstub.exe and the licence file must be in the same folder
as your running application.
Is your Application Correctly Calling the Software Update Wizard?
Please refer to the examples in the "Example of the
Update Wizard in Action" help topic. We have tested the Software Update
Wizard in C++, C#, Visual Basic and Visual Basic for Applications projects
and verified that it works correctly.
If you are using wuw4.dll to choose whether to use
the Software Update Wizard service if the os is Windows NT or later or
WebUpdateSvc4.exe as a standard Windows application if it is Windows 98 then
any development language / IDE capable of calling a Windows DLL should work.
Remember to convert to MBCS if your application is Unicode based, using the
WideCharToMultiByte() Windows API function.
If you are calling WebUpdateSvc4.exe or WuWstub.exe directly then check the syntax for the
ShellExecute() API function.
Note that if the Software Update Wizard cannot download the specified server
script file, for whatever reason, it makes the assumption that the user is
not connected to the internet and silently finishes. It does not show any
Therefore, if your web server logs show that the Software Update
Wizard is NOT reading your script file but you ARE connected to the internet
then the URL of the server script file is probably misspelled, or there is a
security / firewall issue which is preventing the Software Update Wizard from
downloading the script file using the standard http protocol. In this case,
try typing the URL into the address bar of Internet Explorer. If this works
but it fails with the Software Update Wizard then the likelihood is that that the
firewall is blocking the Software Update Wizard or the URL has been misspelled.
If the Software Update Wizard IS successfully downloading your server script file
then the problem is with your script.
Script File Issues
If you have verified that the Software Update Wizard is correctly installed and
that your application is correctly calling the Software Update Wizard then there
is a problem with your script. Here are some suggestions:
If you require support,
the easiest way we can help you is if you allow us to run your script from
Please ask your web server administrator to provide a secure login
for us, and we will happily run your script through and endeavour to locate
If you would rather not take advantage of this option, then
please, please provide as much detail about the problem as possible:
- Check the syntax of each keyword line against the keyword reference examples in this help
file. Note that keywords ARE case-sensitive.
- If the script is unable to download a file needed for the update, check
you have a leading '/' character in your Filename or Zipfile keyword line or that
you have specified the full URL, including the "http://" part.
- If the script is unable to download a file needed for the update, can
you download it by typing the URL into the address bar of Internet
Explorer? If not, perhaps you have misspelled the URL, not uploaded the
correct file or there is a security issue on your server which is
preventing the Software Update Wizard getting at the file.
- Check the WebUpdateSvc4.log, which is maintained by the Software Update
Wizard service as it runs. You will find this file in the same folder as
WebUpdateSvc4.exe (normally the Windows\System32 folder). Check for error
messages and that the log conforms the steps you expect from your script
have been completed. Ensure
you conduct your tests with SuperLogging switched
- If your ExecBefore or
ExecAfter commands are not
working correctly, ensure that you use quotation marks where the path is
or expands to a long filename.
- Start with a simple script section and add to it one line at a time.
Test on each added line.
- Ensure your test environment is set up correctly - i.e. you start with
the correct versions of files, folder contents etc..
If you see
inconsistent behaviour from the Software Update Wizard between tests then this
is the most likely cause.
- Your update script file
- The exact behaviour (or misbehaviour!) that you see
- The Software Update Wizard log file, captured with SuperLogging
- Your operating system
- How you are calling the Software Update Wizard:
- via wuw4.dll
- via wuwstub.exe
- via WebUpdateSvc4.exe