AppDeploySM Package Knowledge Base

DirectX 9.x

Company: Microsoft
Setup type: Legacy setup with no known support
Package Difficulty Rating: 2 out of 5
Most Commonly Reported Method Used: Repackaged (MSI)


Notes

The DirectX 9.0a runtime cannot be uninstalled. If using XP it is recommended that you create a "System Restore" point before installing. See Microsoft Knowledge Base article 310405. (Provided by bkelly)
Download the redistributable (link below) and it will decompress the mdxredist.msi file and its source files into the specified directory.

The dxsetup.exe does not support any of the silent or automated switches the previous release did. There is reportadly a copy of dxsetup.exe that may be used to replace the one that comes with v9 at the Microsoft OEM site if you happen to have access (I don't). (Provided by bkelly)

We are dealing with a disappointing step backward from Microsoft in regards to installation with this release:
Only the .Net managed DX.NET portion of the installation utilizes an MSI setup file (and cannot be run on its own). The majority of the installation is performed by a legacy setup that no longer seems to support any switches (as 8.x did).

The only response from MS has been, "You can use the DirectX Setup API , DirectXSetup(), to install the runtime silently." but this does most administrators little good.

VB Code to get the job done was posted by Jerry Ham (not MS, but someone else tackling this problem) at microsoft.public.directx.misc (Provided by bkelly)

It is possible to do an unattended installation provided you’re connected to the internet (most corporate and academic sys-admins should be!). Essentially you need to hijack the automated DirectX9 installation from the Windows Update service. This was accomplished on Win2k – it should be basically the same procedure for other windows flavours. On a machine that doesn’t have DX9 you need to prepare: find (and preferably empty) your %temp% directory (use ‘set’ at command prompt for where) – setup files will be downloaded here. Goto Windows Update and add DX9. When you start the update 2 directories will appear in %temp%: IXP???.tmp (6 files) and DX?.tmp (133 files) or similar (? - random chr). Copy the IPX dir to another location – these are the only files you need. You can then run ‘dxwsetup.exe /windowsupdate’ to do an automated installation (and no prompting, of course). I’m presuming the DX file locations are hard coded into some library or other as there doesn’t seem to be a way to use local installation files (which are in the DX? dir). I’m certain the more ambitious among you will find a way to do this! (Provided by longtalltim)
[rant]This is amazing. I cannot believe that there weren't any command-line options for silent/unattended/no reboot installs with DirectX 9! This is truly a nightmare when it comes to network admins with lots of workstations to update.

I received the same answer as others when posting the questions to Microsoft folks. Either reference the setup API and create my own wrapper or else download dozens of megs of a DirectX OPK. I didn't create my own wrapper since I'm not a "real" programmer and downloading the DirectX OPK didn't help since I didn't have the OPK Wizard utility.[/rant]

As an FYI the OPK download in and of itself doesn't have a silent install option. Neither does downloading the DirectX Redistribution package. I am having some luck with the dxwsetup.exe /windowsupdate command-line switch at least.

I hope that this isn't a hint of things to come. With all of the security updates I have to roll out it's bad enough picking between the update.exe, hotfix.exe and ieupdate.exe command-line options that are present. But if I can't perform silent installs then I am definitely affecting our company's productivity. (Provided by gregarican)

As an FYI if you download the DirectX 8.1 Redistribution package you can then extract the DirectX 8.1 install to get that particular version of the dxsetup.exe file.

That version still has the /silent and /install switches. Then you can dump that executable into the 9.0b install extraction. It works fine as I've tested with Windows 98 SE and Windows 2000 Professional clients.

(Provided by gregarican)

from http://www.msfn.org/unattended/xp/directx.htm :

* Extract dx90b_redist.exe
* Open in a hex editor dxsetup.exe and go to offset 0x33e2 and change 74 to EB.
* dxsetup.exe /windowsupdate for unattended installation
* dxsetup.exe /opk for unattended+silent installation
(Provided by jj03)

Definately not an easy package. To create into an msi combine the redist from MS with the merge module (available from Installshield for AdminStudio (using 5.5)). This cannot be compressed into a single msi, and is sloppy but gets the job done. (Provided by mupdike)
It is possible to build a package that can be deployed unattended using Microsoft SMS Installer. SMS Installer has a specific command for installing DirectX.

You write an installer that installs all the .cab, .dll, and .exe files (BDA.cab, BDANT.cab, BDAXP.cab, DirectX.cab, dsetup32.dll, DSETUP.dll, dxnt.cab, dxsetup.exe, ManagedDX.cab, and mdxredist.msi) into a TEMP/DirectX9 directory.

Then you use SMS Installer's Install DirectX command with some settings. For the DSETUP.DLL pathname put the \DirectX9\dsetup.dll For DirectX Directory Path put \DirectX9 For DirectX Version select DirectX 3.0 or higher. Check "Complete Installation of DirectX", "DirectVideo", and "Install DirectX Setup DLLs"

You can then delete the files in TEMP\DirectX9 directory.
I hope these instructions are detailed enough for someone to use. I did not come up with this but rather found the instructions on myitforum.com which is a web site I use primarily for information/tips on SMS.
(Provided by eobiont)

We have dont it like "gregarican" works for ur, we have installed it on W2K sp4 clints this way. //Fetgor (Provided by fetgor)
DirectX 9.0c Redistributable is available:
http://download.microsoft.com/download/8/1/e/81ed90eb-dd87-4a23-aedc-298a9603b4e4/directx_9c_redist.exe

It looks like this version of dxsetup.exe supports
/silent
/packageinstall
/opk
/windowsupdate
/installmanageddx

I’ve only tried /silent and initial findings show it produces no dialogs and doesn't reboot.
(Provided by jasonclamb)

If you use WIWW (Windows Installer Wrapper Wizard) you can specify the the /silent switch for the DX 9.0c install and then you have a fully Active Directory Software Installations GPO friendly MSI. (Provided by cdupuis)
dxwebsetup.exe /c:"dxwsetup.exe /windowsupdate"

When you first run this command, all needed files are downloaded from the web to websetup folder and then installed.
open explorer, and saves all the downloaded files from websetup folder to a safe place before they are deleted.

for later unattended installation :
create a new folder under %windir%\system32\DirectX\ called websetup (you may have to create the DirectX folder first)
copy all the downloaded files to
%windir%\system32\DirectX\websetup
for a French DirectX 9.0c install on 2K Pro SP4 the files are :
*.cab (see filelist.dat for details)
dsetup.dll (extracted when dxwebsetup.exe is launched)
dsetup32.dll (extracted when dxwebsetup.exe is launched)
filelist.dat

then run
dxwebsetup.exe /c:"dxwsetup.exe /windowsupdate"

the installer will find the files already in place (reading the content of filelist.dat and comparing with the content of the websetup folder) and run the components installation phase without downloading first.

filelist.dat

[General]
Version=1
[DirectX_Setup]
Version=4,9,0,904
Locale=en
GUID={44BBA855-CC51-11CF-AAFA-00AA00B6015C}
URL0=33086,setup_all.cab
[DirectX_Win2K]
Version=4,9,0,904
Locale=en
GUID={44BBA855-CC51-11CF-AAFA-00AA00B6015C}
URL0=11911,setup_w2k.cab
URL1=9383,graphics_w2k.cab
URL2=543565,graphics_w2k_81.cab
URL3=54285,dinput_w2k_81.cab
URL4=183857,ks_nt.cab
URL5=1156403,bda_w2k.cab
[DirectX_WinNT]
Version=4,9,0,904
Locale=en
GUID={44BBA855-CC51-11CF-AAFA-00AA00B6015C}
URL0=686893,audio_nt.cab
URL1=322769,dplay_nt.cab
URL2=545920,dshow_nt.cab
URL3=48779,dshow_nt_81.cab
URL4=295557,graphics_nt.cab
URL5=675150,vb_nt.cab
[DirectX_Win2K_FRN]
Version=4,9,0,904
Locale=en
GUID={44BBA855-CC51-11CF-AAFA-00AA00B6015C}
URL0=241985,audio_nt_frn.cab
URL1=439983,dinput_w2k_81_frn.cab
URL2=337038,dplay_nt_frn.cab
URL3=858904,dshow_nt_frn.cab
URL4=667898,dxdiag_nt_frn.cab
URL5=1278441,graphics_nt_frn.cab
URL6=25284,ks_nt_frn.cab
URL7=610129,dshow_w2k_frn.cab
URL8=15384,setup_w2k_frn.cab

you can download files one by one at this URL :
http://download.microsoft.com/download/8/0/D/80D7E79D-C0E4-415A-BCCA-E229EAFE2679
example :
http://download.microsoft.com/download/8/0/D/80D7E79D-C0E4-415A-BCCA-E229EAFE2679/setup_all.cab




(Provided by Bilou_Gateux)

I'm only seeing 9.0b OPK on Microsoft's OEM site. What about 9.0c? I've managed to get DX9.0c to silently install. However, it does not work in a non-interactive install-mode (schedule an AT job to install it with no one logged on); just silently installing works fine. My company has approached Microsoft with for YEARS; I'm amazed that they still release patches/updates with this issue. (Provided by dengle)
Using Wise Package Studio

Here are the steps to install this executable in the machine or pre-login context.

1.) Create a new MSI project in WISE
2.) Put the file(s) in a directory in the files page (MUST be the DX executable)
3.) Go to the MSI Script tab and choose Execute Deferred
4.) Click on InstallFinalize
5.) Double click Execute Program from Installed Files
6.) Select the executable you wish to run
7.) Fill in the command line with any arguments
8.) Go to the properties tab and set In-Script Options to "Deferred execution - System Context"
9.) Set Processing to "Synchronous, ignore exit code"
10.) Click OK, Compile, and choose a file name for the MSI

(Credit to Dr. Lo for this.) (Provided by Charles Adie)

Script for AD deployment

Option Explicit
On Error Resume Next

Dim objShell, objFSO, Distr_Path, Directx_Check, Script_Path

Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Distr_Path = "\\domain\distribution\Microsoft\Directx\directx_mar2009_redist\"
Script_Path = "\\domain\netlogon\directx\"
Directx_Check = "c:\directx_mar2009_redist.txt"


If (Not objFSO.FileExists(Directx_Check))Then

' objShell.Run Script_Path & "Messagebox.vbs"
objShell.Run Distr_Path & "dxsetup.exe /silent", 7, True
objShell.Run "xcopy """ & Distr_Path & "directx_mar2009_redist.txt"" c:\ /Y /Q /E", 7, True
objShell.Run "shutdown -r -t 00"

End If (Provided by marsman69)

Command Lines

Unattended installation of DirectX without rebooting:
DXwebSetup.exe /c:"DXwSetup.exe /windowsupdate" /q /r:n

As tested on DireectX v9.0B
(Provided by C_Denninger)
It seems that it is true about 9.0c supporting command line switches. The only switch I test was /silent, but I can also confirm that the /opk switch does NOT work. (Provided by cdupuis)
To install directx_feb2006_redist.exe, I used:

directx_feb2006_redist.exe /t:"%temp%" /q
pushd "%temp%"
start /wait DXSETUP.exe /silent
popd
(Provided by rasa)
I do almost the same:

1. [PackagePath]\directx_apr2006_redist.exe /T:C:\temp /C
2. C:\temp\dxsetup /silent

Johnny
(Provided by johnnygoodface)
My solution for silent and clean installation is:

start /wait directx_jun2008_redist.exe /Q /T:"%temp%\DX9\"
%temp%\DX9\DXSETUP.exe /silent
del %temp%\DX9\" /F /S /Q
rd "%temp%\DX9\" /Q
(Provided by ExaFlop)
I am packaging the Feb 2007 version of DirectX and was having trouble getting it to work silently. I finally tried it with the following command line:

%installdir%\dxsetup.exe /SILENT

notice the caps- it did not work with lower case.
(Provided by mjhicks)
Related Links

Download the DirectX 9.0 redistributable setup here.
(Provided by bkelly)
You can download DX9a redistributable already silent install packaged from http://www.microsoft.com/oem/ (Microsoft OEM System Builder). Get an account, it's free. Then go to Drivers & Downloads and select in the list shown. Hope it helps!
(Provided by hers01)
http://unattended.msfn.org/xp/applications/directx.htm

Works like a charm and no need for command line options.
(Provided by Zhoerd)
You cannot use a scheduled task to install DirectX 9 on a computer that is running Windows Server 2003 or Windows XP

It's a known issue. An updated install is available, but not publicly available yet. You'll need to call them to get it.
(Provided by dengle)
Link above is broken. Here's the location of the latest end-user runtimes:

http://msdn.microsoft.com/en-us/directx/aa937788.aspx
(Provided by nzdude)
Lockdown Information

No Entries.


http://www.appdeploy.com/packages/detail.asp?id=169