When installing Autodesk products via SMS as the system account we run into sporadic errors where the package runs fine as a user, but when run from sms fails with an error 1606 - can't access network location. 

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

0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Answers

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
0

Would this same vb file work for any application?

Answered 03/11/2008 by: cduplessis
Orange Senior Belt

Please log in to comment
0

Currently I am using it for all the Autodesk 2008 "verticals" AutoCAD 2008, Civil 3D 2008, ADT2008, MEP 2008, TrueView 2008 / also for previous version.  I have modified it so it checks/fills in more default registry settings.  The example below is likely missing a couple const values stored in the lager install script.  But the subroutine I use is below.

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

Answered 03/11/2008 by: AndyKingCDM
Yellow Belt

Please log in to comment
0

Nice....

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

Answered 03/12/2008 by: VBScab
Red Belt

Please log in to comment
0

I am trying to deploy the above mentioned product with SCCM 2007, can you post more specificlly how you are doing it? I have tried using the Civil 3d.lnk file in the Program, and also the setup.exe but to avail!

Answered 04/30/2008 by: tommy_a_d
Yellow Belt

Please log in to comment
0

Been trying to package Map 3D 2008 and  push it out via Altiris to Vista SP1 machine.

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.

Answered 08/28/2008 by: oilernut
Senior Yellow Belt

Please log in to comment
0

I have to install Civil 3D 2009 from SMS and I have a similar issue on Vista. In XP, everything works fine.
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.

Answered 11/24/2009 by: msi_support
Orange Belt

Please log in to comment
0

I have changed the script to this and it did put all the entries in registry but no luck with the install [8|]
Please let me know if I am doing something wrong here..

Answered 11/24/2009 by: msi_support
Orange Belt

Please log in to comment
0

I don't know how I missed this when the thread was more current but you do know, of course, that in spite of its name, HKEY_USERS\.Default is NOT the default user profile hive? It's the local System user's profile hive. It's not generally a good idea to mess with stuff there.

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! :)

Answered 11/25/2009 by: VBScab
Red Belt

Please log in to comment
0
What worked for me



AppData=%USERPROFILE%\AppData\RoamingAppData=C:\Users\testuser\AppData\Roaming


Answered 12/01/2009 by: msi_support
Orange Belt

Please log in to comment
0

I suspect the paths weren't resolved because your property usage was incorrect. If you want to use properties based on environment variables, the format should be [%USERPROFILE]AppData\Roaming

Answered 12/02/2009 by: VBScab
Red Belt

Please log in to comment
0
ORIGINAL:  VBScab
the format should be [%USERPROFILE]AppData\Roaming


\
Answered 12/02/2009 by: AngelD
Red Belt

Please log in to comment
0

Good catch, Kim. I was forgetting env. vars don't get resolved with trailing backslahses.

Answered 12/02/2009 by: VBScab
Red Belt

Please log in to comment
Answer this question or Comment on this question for clarity