code:
; Global variables used in main program and subroutines
$CachedProfile = "%UserProfile%"
$CR = Chr(13)
$LF = Chr(10)
$NL = $CR + $LF
$HomeDir = "%HOMEDRIVE%%HOMEPATH%"
$LogFile = "$HomeDir" + "logon.log"
$TempDir = "E:\Temp\@UserID"
$ShellFolders_Key = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
$UserShellFolders_Key = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
$UserAppRun_Key = "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
$FIAApps = "%LOGONSERVER%\FIAApps" ; FIAApps source directory (share on authenticating server)
$TempFile = $TempDir + "\UsrLogon.tmp"
;
; Define Profile Folder Paths
$AppData_Folder ="$CachedProfile\Application Data"
$Appsrv_Folder ="$AppData_Folder\ICAClient"
$Appsrv_Src ="D:\Software\Client"
$Cache_Folder ="$CachedProfile\Temporary Internet Files"
$Cookies_Folder ="$CachedProfile\Cookies"
$Desktop_Folder ="$CachedProfile\Desktop"
$Favorites_Folder ="$CachedProfile\Favorites"
$Fonts_Folder ="%SystemRoot%\Fonts"
$History_Folder ="$CachedProfile\History"
$NetHood_Folder ="$CachedProfile\NetHood"
$Personal_Folder ="H:\"
$PrintHood_Folder ="$CachedProfile\PrintHood"
$Programs_Folder ="$CachedProfile\Start Menu\Programs"
$Recent_Folder ="$CachedProfile\Recent"
$SendTo_Folder ="$CachedProfile\SendTo"
$StartMenu_Folder ="$CachedProfile\Start Menu"
$Startup_Folder ="$CachedProfile\Start Menu\Programs\Startup"
$Templates_Folder ="$HomeDir" + "Winword\Template"
;
:FixShellFolderPaths
;*******************
if "$Verbose" = "Yes"
? "Fix shell folder paths" + $NL
endif
;
; Update Shell Folder path registry values
$Folders_Key ="$ShellFolders_Key"
$Value_Type = "REG_SZ"
gosub WriteShellFolderPaths
;
; Update User Shell Folder path registry values
$Folders_Key ="$UserShellFolders_Key"
$Value_Type = "REG_EXPAND_SZ"
gosub WriteShellFolderPaths
return
;
:WriteShellFolderPaths
;*********************
;
; Overwrite Shell Folder Path Registry Values
$R1 = writevalue("$Folders_Key", "AppData", "$AppData_Folder", "$Value_Type")
$R2 = writevalue("$Folders_Key", "Cache", "$Cache_Folder", "$Value_Type")
$R3 = writevalue("$Folders_Key", "Cookies", "$Cookies_Folder", "$Value_Type")
$R4 = writevalue("$Folders_Key", "Desktop", "$Desktop_Folder", "$Value_Type")
$R5 = writevalue("$Folders_Key", "Favorites", "$Favorites_Folder", "$Value_Type")
$R6 = writevalue("$Folders_Key", "Fonts", "$Fonts_Folder", "$Value_Type")
$R7 = writevalue("$Folders_Key", "History", "$History_Folder", "$Value_Type")
$R8 = writevalue("$Folders_Key", "NetHood", "$NetHood_Folder", "$Value_Type")
$R9 = writevalue("$Folders_Key", "Personal", "$Personal_Folder", "$Value_Type")
$R10 = writevalue("$Folders_Key", "PrintHood", "$PrintHood_Folder", "$Value_Type")
$R11 = writevalue("$Folders_Key", "Programs", "$Programs_Folder", "$Value_Type")
$R12 = writevalue("$Folders_Key", "Recent", "$Recent_Folder", "$Value_Type")
$R13 = writevalue("$Folders_Key", "SendTo", "$SendTo_Folder", "$Value_Type")
$R14 = writevalue("$Folders_Key", "Start Menu", "$StartMenu_Folder", "$Value_Type")
$R15 = writevalue("$Folders_Key", "Startup", "$Startup_Folder", "$Value_Type")
$R16 = writevalue("$Folders_Key", "Templates", "$Templates_Folder", "$Value_Type")
$Ret = "$R1$R2$R3$R4$R5$R6$R7$R8$R9$R10$R11$R12$R13$R14$R15$R16"
if $Ret <> "0000000000000000"
? "$CrLF" + "Error updating $Folders_Key, return code: $Ret" +"$NL"
? "The regsitry security permissions within your user profile may be incorrect."
? "Please report this problem to a system administrator."
endif
return
;