ERROR 1606 - With Autodesk Products & SMS
All the 1606 errors I have run into relate to the Windows installer trying to read / use a variable that is not populated. Different Autodesk products want to place files in different places. For example, Architectural Desktop wants to place some files in the My Documents folder, while the DWG viewer does not. The installer reads the variables from the system's registry. If running as a user it reads the variable from HKCU if running as the system account (such as via a GPO or SMS) it should read from the system registry HKEY-USERS\S-1-5-18\Software\Microsoft\Windows\Currentversion\Explorer\Shell Folders... but it appears that it is instead reading from HKEY-USERS\.DEFAULT.
I tried the fix suggest in Autodesk support article TS100633 but found the system registry was correctly populated and I was still getting the error. You can turn on verbose logging and compare a failed log to a successful log and see where it incorrectly sets a variable when the registry setting is not configured, then when it tries to read/write to that path it fails with the 1606 error that it cannot access the location because it does not exist.
The script below will populate all the default user values in the registry with the "default" values, except for the personal (my docs), app data, and local settings folder which are populated with the paths to the system account's profile. After making the changes on my test machines I did logon as a user without a profile to ensure new profile creation is not effected and indeed a new user's registry is normal (points to its own my docs folder, not the system's). I'm sending this script as a silent mandatory to all the systems to prevent further 1606 errors due to this cause. My guess is there is an error with the Windows installer technology, Autodesk's use of the installer is reading from the wrong key, or possibly the system account is being regenerated each time it runs for some reason and each time pulls its values from the default user registry... in any case, this script has been resolving the 1606 errors.'
The "default" default user settings I used came from this post which lead me to the fix - with outside help of course... hopeful this solves the same problems for others.
'==========================================================================
'
' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 3.1
'
' NAME: SetDefaultUserReg.vbs
'
' AUTHOR: Andy King , CDM
' DATE : 7/19/2006
'
' COMMENT: populates the default user registry key with the required values
' to allow Autodesk software to be installed via SMS. "Should" work for
' Wndows Xp and Windows 2000...possibly Vista. Will quit if detects NT4.
' Uncomment the Wscript.Echo statements to see what keys/folders are Set
' and or created.
'===============================================================
On Error Resume Next
const HKEY_USERS = &H80000003
strComputer = "."
'get Os... quit if less than Win2000 (<v5)
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOS in colOSes
iVersion = Left(objOS.Version,1) 'Version & build
If iVersion <5 Then
WScript.Quit
End IF
Next
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Determine Windows Directory
Const WINDOWS = &H24&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(WINDOWS)
Set objFolderItem = objFolder.Self
sWinDir = objFolderItem.Path 'grabs the path to windows or winnt
'Create Dictonary Object with all registry names/values to populate
Set oDicRegValues = CreateObject("Scripting.Dictionary")
oDicRegValues.CompareMode = TextMode
oDicRegValues.Add "AppData","c:\Documents and Settings\Default User\Application Data"
oDicRegValues.Add "Cookies","c:\Documents and Settings\Default User\Cookies"
oDicRegValues.Add "Desktop","c:\Documents and Settings\Default User\Desktop"
oDicRegValues.Add "Favorites","c:\Documents and Settings\Default User\Favorites"
oDicRegValues.Add "NetHood","c:\Documents and Settings\Default User\NetHood"
oDicRegValues.Add "Personal",sWinDir & "\system32\config\systemprofile\My Documents"
oDicRegValues.Add "My Pictures","c:\Documents and Settings\Default User\My Documents\My Pictures"
oDicRegValues.Add "PrintHood","c:\Documents and Settings\Default User\PrintHood"
oDicRegValues.Add "Recent","c:\Documents and Settings\Default User\Recent"
oDicRegValues.Add "SendTo","c:\Documents and Settings\Default User\SendTo"
oDicRegValues.Add "Start Menu","c:\Documents and Settings\Default User\Start Menu"
oDicRegValues.Add "Templates","c:\Documents and Settings\Default User\Templates"
oDicRegValues.Add "Programs","c:\Documents and Settings\Default User\Start Menu\Programs"
oDicRegValues.Add "Startup","c:\Documents and Settings\Default User\Start Menu\Programs\Startup"
oDicRegValues.Add "Local Settings",sWinDir & "\system32\config\systemprofile\Local Settings"
oDicRegValues.Add "Local AppData",sWinDir & "\system32\config\systemprofile\Local Settings\Application Data"
oDicRegValues.Add "Cache","c:\Documents and Settings\Default User\Local Settings\Temporary Internet Files"
oDicRegValues.Add "History","c:\Documents and Settings\Default User\Local Settings\History"
oDicRegValues.Add "Fonts",sWinDir & "\Fonts"
colKeys = oDicRegValues.Keys
For Each strKey In colKeys
strValueName = strKey
strValue = oDicRegValues.Item(strKey)
'WScript.Echo "Populating: " & strValueName & " [with] " & strValue
SetRegStringValue strValueName,strValue
CheckFolderExists(strValue)
Next
Sub SetRegStringValue(strValueName, strValue)
'Configure the Default User Local Settings Values
strKeyPath = ".DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
oReg.SetStringValue HKEY_USERS,strKeyPath,strValueName,strValue
End Sub
Sub CheckFolderExists(strValue)
'Create the corresponding paths if they do not exist
If NOT objFSO.FolderExists(strValue) Then
'WScript.Echo strValue & " does not exist, creating..."
Set objFolder = objFSO.CreateFolder(strValue)
Else
'WScript.Echo strValue & " exists."
End If
End Sub
Answers (14)
For the silent or quiet (unattended) installation of Autodesk Design Review or DWG TrueView, create a batch file next to Setup.exe, name it Install.cmd, Setup.cmd, Install.bat or Setup.bat or so. Write in the file:
@Echo Off
start /w "" "%~dp0Setup.exe" /S /Q /W /I"%~dp0Setup.ini"
The /W makes Setup.exe wait intill the end of the installation. The return code or errorlevel or exit code should now be 0.
For the silent or quiet (unattended) installation of Autodesk Design Review or DWG TrueView, create a batch file next to Setup.exe, name it Install.cmd, Setup.cmd, Install.bat or Setup.bat or so. Write in the file:
@Echo Off
start /w "" "%~dp0Setup.exe" /S /Q /W /I"%~dp0Setup.ini"
The /W makes Setup.exe wait intill the end of the installation. The return code or errorlevel or exit code should now be 0.
I have SMS run a vbscript that runs the Autodesk network install/setup.exe that is created from the Autodesk DVD. The vbscript makes the reg change, pauses the antivirus service, runs the network install / monitors it for completion, makes some post install customizations, then resumes the antivirus service. I've used it to deploy Autodesk products to around 2000 workstations.
Sub FixAutoDeskRegIssue()
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
'===================================================
'Set Default User Reg Values
'===================================================
Set oRegDic = CreateObject("Scripting.Dictionary")
oRegDic.CompareMode = TextMode
oRegDic.Add "AppData","C:\WINDOWS\system32\config\systemprofile\Application Data"
oRegDic.Add "Cookies","C:\WINDOWS\system32\config\systemprofile\Cookies"
oRegDic.Add "Desktop","C:\WINDOWS\system32\config\systemprofile\Desktop"
oRegDic.Add "Favorites","C:\WINDOWS\system32\config\systemprofile\Favorites"
oRegDic.Add "NetHood","C:\WINDOWS\system32\config\systemprofile\NetHood"
oRegDic.Add "Personal","C:\WINDOWS\system32\config\systemprofile\My Documents"
oRegDic.Add "PrintHood","C:\WINDOWS\system32\config\systemprofile\PrintHood"
oRegDic.Add "Recent","C:\WINDOWS\system32\config\systemprofile\Recent"
oRegDic.Add "SendTo","C:\WINDOWS\system32\config\systemprofile\SendTo"
oRegDic.Add "Start Menu","C:\WINDOWS\system32\config\systemprofile\Start Menu"
oRegDic.Add "Templates","C:\WINDOWS\system32\config\systemprofile\Templates"
oRegDic.Add "Programs","C:\WINDOWS\system32\config\systemprofile\Start Menu\Programs"
oRegDic.Add "Startup","C:\WINDOWS\system32\config\systemprofile\Start Menu\Programs\Startup"
oRegDic.Add "Local Settings","C:\WINDOWS\system32\config\systemprofile\Local Settings"
oRegDic.Add "Local AppData","C:\WINDOWS\system32\config\systemprofile\Local Settings\Application Data"
oRegDic.Add "Cache","C:\WINDOWS\system32\config\systemprofile\Local Settings\Temporary Internet Files"
oRegDic.Add "History","C:\WINDOWS\system32\config\systemprofile\Local Settings\History"
oRegDic.Add "My Pictures","C:\WINDOWS\system32\config\systemprofile\My Documents\My Pictures"
oRegDic.Add "Fonts","C:\WINDOWS\Fonts"
oRegDic.Add "My Music","C:\WINDOWS\system32\config\systemprofile\My Documents\My Music"
oRegDic.Add "CD Burning","C:\WINDOWS\system32\config\systemprofile\Local Settings\Application Data\Microsoft\CD Burning"
oRegDic.Add "My Video","C:\WINDOWS\system32\config\systemprofile\My Documents\My Videos"
oRegDic.Add "Administrative Tools","C:\WINDOWS\system32\config\systemprofile\Start Menu\Programs\Administrative Tools"
strKeyPath = ".DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
colKeys = oRegDic.Keys
For Each sKey in colKeys
sValName = sKey
sVal = oRegDic.Item(sKey)
SetHkuRegValue strKeyPath,sValName,sVal
Next
'===================================================
'Set System Reg Values
'===================================================
Set oSysRegDic = CreateObject("Scripting.Dictionary")
oSysRegDic.CompareMode = TextMode
oSysRegDic.Add "AppData","C:\WINDOWS\system32\config\systemprofile\Application Data"
oSysRegDic.Add "Cookies","C:\WINDOWS\system32\config\systemprofile\Cookies"
oSysRegDic.Add "Desktop","C:\WINDOWS\system32\config\systemprofile\Desktop"
oSysRegDic.Add "Favorites","C:\WINDOWS\system32\config\systemprofile\Favorites"
oSysRegDic.Add "NetHood","C:\WINDOWS\system32\config\systemprofile\NetHood"
oSysRegDic.Add "Personal","C:\WINDOWS\system32\config\systemprofile\My Documents"
oSysRegDic.Add "PrintHood","C:\WINDOWS\system32\config\systemprofile\PrintHood"
oSysRegDic.Add "Recent","C:\WINDOWS\system32\config\systemprofile\Recent"
oSysRegDic.Add "SendTo","C:\WINDOWS\system32\config\systemprofile\SendTo"
oSysRegDic.Add "Start Menu","C:\WINDOWS\system32\config\systemprofile\Start Menu"
oSysRegDic.Add "Templates","C:\WINDOWS\system32\config\systemprofile\Templates"
oSysRegDic.Add "Programs","C:\WINDOWS\system32\config\systemprofile\Start Menu\Programs"
oSysRegDic.Add "Startup","C:\WINDOWS\system32\config\systemprofile\Start Menu\Programs\Startup"
oSysRegDic.Add "Local Settings","C:\WINDOWS\system32\config\systemprofile\Local Settings"
oSysRegDic.Add "Local AppData","C:\WINDOWS\system32\config\systemprofile\Local Settings\Application Data"
oSysRegDic.Add "Cache","C:\WINDOWS\system32\config\systemprofile\Local Settings\Temporary Internet Files"
oSysRegDic.Add "History","C:\WINDOWS\system32\config\systemprofile\Local Settings\History"
oSysRegDic.Add "My Pictures","C:\WINDOWS\system32\config\systemprofile\My Documents\My Pictures"
oSysRegDic.Add "Fonts","C:\WINDOWS\Fonts"
oSysRegDic.Add "My Music","C:\WINDOWS\system32\config\systemprofile\My Documents\My Music"
oSysRegDic.Add "CD Burning","C:\WINDOWS\system32\config\systemprofile\Local Settings\Application Data\Microsoft\CD Burning"
oSysRegDic.Add "My Video","C:\WINDOWS\system32\config\systemprofile\My Documents\My Videos"
oSysRegDic.Add "Administrative Tools","C:\WINDOWS\system32\config\systemprofile\Start Menu\Programs\Administrative Tools"
strKeyPath = "S-1-5-18\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
colKeys = oRegDic.Keys
For Each sKey in colKeys
sValName = sKey
sVal = oRegDic.Item(sKey)
SetHkuRegValue strKeyPath,sValName,sVal
Next
'===================================================
'Set LocalService Reg Values
'===================================================
Set oLSRegDic = CreateObject("Scripting.Dictionary")
oLSRegDic.CompareMode = TextMode
oLSRegDic.Add "AppData","C:\Documents and Settings\LocalService\Application Data"
oLSRegDic.Add "Cookies","C:\Documents and Settings\LocalService\Cookies"
oLSRegDic.Add "Desktop","C:\Documents and Settings\LocalService\Desktop"
oLSRegDic.Add "Favorites","C:\Documents and Settings\LocalService\Favorites"
oLSRegDic.Add "NetHood","C:\Documents and Settings\LocalService\NetHood"
oLSRegDic.Add "Personal","C:\Documents and Settings\LocalService\My Documents"
oLSRegDic.Add "PrintHood","C:\Documents and Settings\LocalService\PrintHood"
oLSRegDic.Add "Recent","C:\Documents and Settings\LocalService\Recent"
oLSRegDic.Add "SendTo","C:\Documents and Settings\LocalService\SendTo"
oLSRegDic.Add "Start Menu","C:\Documents and Settings\LocalService\Start Menu"
oLSRegDic.Add "Templates","C:\Documents and Settings\LocalService\Templates"
oLSRegDic.Add "Programs","C:\Documents and Settings\LocalService\Start Menu\Programs"
oLSRegDic.Add "Startup","C:\Documents and Settings\LocalService\Start Menu\Programs\Startup"
oLSRegDic.Add "Local Settings","C:\Documents and Settings\LocalService\Local Settings"
oLSRegDic.Add "Local AppData","C:\Documents and Settings\LocalService\Local Settings\Application Data"
oLSRegDic.Add "Cache","C:\Documents and Settings\LocalService\Local Settings\Temporary Internet Files"
oLSRegDic.Add "History","C:\Documents and Settings\LocalService\Local Settings\History"
oLSRegDic.Add "My Pictures","C:\Documents and Settings\LocalService\My Documents\My Pictures"
oLSRegDic.Add "Fonts","C:\WINDOWS\Fonts"
oLSRegDic.Add "My Music","C:\Documents and Settings\LocalService\My Documents\My Music"
oLSRegDic.Add "CD Burning","C:\Documents and Settings\LocalService\Local Settings\Application Data\Microsoft\CD Burning"
oLSRegDic.Add "My Video","C:\Documents and Settings\LocalService\My Documents\My Videos"
oLSRegDic.Add "Administrative Tools","C:\Documents and Settings\LocalService\Start Menu\Programs\Administrative Tools"
strKeyPath = "S-1-5-19\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
colKeys = oLSRegDic.Keys
For Each sKey in colKeys
sValName = sKey
sVal = oLSRegDic.Item(sKey)
SetHkuRegValue strKeyPath,sValName,sVal
Next
'===================================================
'Set NetworkService Reg Values
'===================================================
Set oNSRegDic = CreateObject("Scripting.Dictionary")
oNSRegDic.CompareMode = TextMode
oNSRegDic.Add "AppData","C:\Documents and Settings\NetworkService\Application Data"
oNSRegDic.Add "Cookies","C:\Documents and Settings\NetworkService\Cookies"
oNSRegDic.Add "Desktop","C:\Documents and Settings\NetworkService\Desktop"
oNSRegDic.Add "Favorites","C:\Documents and Settings\NetworkService\Favorites"
oNSRegDic.Add "NetHood","C:\Documents and Settings\NetworkService\NetHood"
oNSRegDic.Add "Personal","C:\Documents and Settings\NetworkService\My Documents"
oNSRegDic.Add "PrintHood","C:\Documents and Settings\NetworkService\PrintHood"
oNSRegDic.Add "Recent","C:\Documents and Settings\NetworkService\Recent"
oNSRegDic.Add "SendTo","C:\Documents and Settings\NetworkService\SendTo"
oNSRegDic.Add "Start Menu","C:\Documents and Settings\NetworkService\Start Menu"
oNSRegDic.Add "Templates","C:\Documents and Settings\NetworkService\Templates"
oNSRegDic.Add "Programs","C:\Documents and Settings\NetworkService\Start Menu\Programs"
oNSRegDic.Add "Startup","C:\Documents and Settings\NetworkService\Start Menu\Programs\Startup"
oNSRegDic.Add "Local Settings","C:\Documents and Settings\NetworkService\Local Settings"
oNSRegDic.Add "Local AppData","C:\Documents and Settings\NetworkService\Local Settings\Application Data"
oNSRegDic.Add "Cache","C:\Documents and Settings\NetworkService\Local Settings\Temporary Internet Files"
oNSRegDic.Add "History","C:\Documents and Settings\NetworkService\Local Settings\History"
oNSRegDic.Add "My Pictures","C:\Documents and Settings\NetworkService\My Documents\My Pictures"
oNSRegDic.Add "Fonts","C:\WINDOWS\Fonts"
oNSRegDic.Add "My Music","C:\Documents and Settings\NetworkService\My Documents\My Music"
oNSRegDic.Add "CD Burning","C:\Documents and Settings\NetworkService\Local Settings\Application Data\Microsoft\CD Burning"
oNSRegDic.Add "My Video","C:\Documents and Settings\NetworkService\My Documents\My Videos"
oNSRegDic.Add "Administrative Tools","C:\Documents and Settings\NetworkService\Start Menu\Programs\Administrative Tools"
strKeyPath = "S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
colKeys = oNSRegDic.Keys
For Each sKey in colKeys
sValName = sKey
sVal = oNSRegDic.Item(sKey)
SetHkuRegValue strKeyPath,sValName,sVal
Next
WriteToLog("Done Correcting Registry Values")
End Sub
Sub SetHkuRegValue(strKeyPath,strValueName,strValue)
oReg.SetStringValue HKEY_USERS,strKeyPath,strValueName,strValue
WriteToLog("HKEY_USERS,"&strKeyPath)
WriteToLog(strValueName & " | " & strValue)
End Sub
One point-ette, though: purists might like to alter the code so that the engine only needs to make one reference to the object being used. That is:
oLSRegDic.Add "AppData","C:\Documents and Settings\LocalService\Application Data"
oLSRegDic.Add "Cookies","C:\Documents and Settings\LocalService\Cookies"
etc, etc
becomes
With oLSRegDic
.Add "AppData","C:\Documents and Settings\LocalService\Application Data"
.Add "Cookies","C:\Documents and Settings\LocalService\Cookies"
etc, etc
End With
I used the steps above to get around the 1606 error code, but now I am getting a 259 error message saying "no more data is avaliable."
Also has anyone been able to slipstream the service packs into the main msi? It seems the only way to do it is through their deployment method.
In Vista, when I install the app logged in as an admin, it installs fine. If i am logged in as a normal user and try to install ('Run As' an admin) the installation fails.
Log file for the MSI shows [Product: AutoCAD Civil 3D 2009 -- Error 1606. Could not access network location Autodesk\LandXML Reporting]
I did use the above script but I guess I got a few paths wrong in my script for Vista. I shall try it again.
Meanwhile could someone give me some more ideas on what else can be tried.
Find out which path isn't being resolved correctly and fix that. A verbose log will show you all you need to know. Remember that any "odd" path is regarded as a network location by the WI engine, keeping up Microsoft's tradition of displaying error messages along the lines of "Something happened, I can't actually work out what it was but I have to tell you something so I'm going with this [error text follows]". Anyone who played with Word for Windows v1 with network-stored user templates will remember the classic message "Word cannot print" when, in reality, the problem was that the user had no drive mapped (or no write access) to the template location.
Oh, BTW, the CODE tag still exists in this forum. Please use it! :)
On a clean build here, all the registries in the path HKCU\Software\Microsoft\Windows\Current Version\Explorer\Shell Folders had %USERPROFILE% in the string values.
Apparently that was causing my MSI to not resolve paths. So modifying these entries made all the difference.
Example: AppData=%USERPROFILE%\AppData\Roaming changed to AppData=C:\Users\testuser\AppData\Roaming
I did not modify anything in the HKEY_USERS\.Default. Instead, I wrote a small wisescript to resolve the paths in the HKCU\Software\Microsoft\Windows\Current Version\Explorer\Shell Folders entries and the Civil 3d 2009 install went fine.
Thanks once again to everyone here!!
so that the conversation will remain readable.