none
Windows 8 Customization for default user

    Question

  • I need help with customizing the default user in windows 8. We use ACRONIS for the imaging process which allows me to take an image and apply the image to a different hardware system, so the process of using sysprep+PE+unattend file are out. 

    1.) I've created a template profile and customized , started and tiles

    2.) need to apply this profile to the default profile

    from here ill test logging in with different to make sure the profile is applied. From here, ACRONIS will take over.

    Whats the best method other than what I mentioned above?

    Tuesday, March 19, 2013 3:04 PM

All replies

  • Check out Ben Hunter's blog about this: http://blogs.technet.com/b/deploymentguys/archive/2012/10/26/start-screen-customization-with-mdt.aspx

    Since you aren't using sysprep for delivery or MDT, the first two options are out.  Your likely best option is to do it on a machine where you have configured the Start Screen as desired (doesn't have to be the one you are capturing with Acronis), run sysprep into Audit and grab the AppsFolderLayout.bin file.  During your image build with Acronis, just put this file into the default profile path (C:\Users\Default\AppData\Local\Microsoft\Windows\AppsFolderLayout.bin) and capture and deploy as normal.  This should make the Start Screen on any user the same as what you configured (assuming all the apps configured are present).


    David Coulter | http://DCtheGeek.blogspot.com | @DCtheGeek

    Tuesday, March 19, 2013 3:25 PM
    Answerer
  • now this will get the tiles but does it get the desktop as well, which i dont think it does
    Tuesday, March 19, 2013 4:17 PM
  • Correct, that is for Start Screen only.  If you need things on every users desktop, use C:\Users\default\Desktop.

    David Coulter | http://DCtheGeek.blogspot.com | @DCtheGeek

    Tuesday, March 19, 2013 4:22 PM
    Answerer
  • ok and taskbar? why cant they make this simple really.
    Tuesday, March 19, 2013 4:29 PM
  • Yeah, pinning to Taskbar is even more fun... I put a VBscript in the default users startup so that any new users gets the pinned items:

    C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\SetTaskbar.vbs

    Option Explicit
    
    Const CSIDL_COMMON_PROGRAMS = &H17
    Const CSIDL_PROGRAMS = &H2
    Const CSIDL_STARTMENU = &HB
    
    Dim objShell, objFSO
    Dim objCurrentUserStartFolder
    Dim strCurrentUserStartFolderPath
    Dim objAllUsersProgramsFolder
    Dim strAllUsersProgramsPath
    Dim objFolder
    Dim objFolderItem
    Dim colVerbs
    Dim objVerb
    
    Set objShell = CreateObject("Shell.Application")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objCurrentUserStartFolder = objShell.NameSpace (CSIDL_STARTMENU)
    strCurrentUserStartFolderPath = objCurrentUserStartFolder.Self.Path
    Set objAllUsersProgramsFolder = objShell.NameSpace(CSIDL_COMMON_PROGRAMS)
    strAllUsersProgramsPath = objAllUsersProgramsFolder.Self.Path
    
    ' - Pin to Taskbar -
    
    ' Microsoft Word 2013
    If objFSO.FileExists(strAllUsersProgramsPath & "\Microsoft Office 2013\Word 2013.lnk") Then
    	Set objFolder = objShell.Namespace(strAllUsersProgramsPath & "\Microsoft Office 2013")
    	Set objFolderItem = objFolder.ParseName("Word 2013.lnk")
    	Set colVerbs = objFolderItem.Verbs
    	For Each objVerb in colVerbs
    		If Replace(objVerb.name, "&", "") = "Pin to Taskbar" Then objVerb.DoIt
    	Next
    End If
    
    'Delete the script
    DeleteSelf
    
    Sub DeleteSelf()       
            Dim objFSO
            'Create a File System Object
            Set objFSO = CreateObject("Scripting.FileSystemObject")
            'Delete the currently executing script
            objFSO.DeleteFile WScript.ScriptFullName
            Set objFSO = Nothing
    End Sub

    Just repeat the segment for Word 2013 with each additional app you want (in order) and any new user has pinned apps.


    David Coulter | http://DCtheGeek.blogspot.com | @DCtheGeek

    Tuesday, March 19, 2013 4:47 PM
    Answerer
  • hey there

    im trying to use this script by copying it to:

    C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\SetTaskbar.vbs

    on windows 8

    but guess what>?

    there is no "startup" folder in that directory(C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs)

    the script itself works flawlessly and does the job when I click it or even copy it to the current user(test user) startup folder

    I tried to manually create the folder and copy it over there but it gets deleted after sysprep(I think)

    I also tried copying to the administrator startup but that also doesn't work(I hoped it will be copied to default since I have the copyprofile-true)

    anybody seen this behavior?

    Friday, June 28, 2013 9:20 PM
  • Yes, the folder needs to be created and then the file copied into it.  I do it this way and I don't use CopyProfile (which is an abomination).


    David Coulter | http://DCtheGeek.blogspot.com | @DCtheGeek

    Friday, June 28, 2013 9:47 PM
    Answerer
  • weird,

    I created it(when at the suspend script)

    copy the file over and then continue>>sysprep and capture

    but when I drop the image the script is deleted(gone from default and also doesn't exist in any other profile)

    I modified rhe script but I don't think it has anything to do with it:

    Option Explicit
    
    Const CSIDL_COMMON_PROGRAMS = &H17
    Const CSIDL_PROGRAMS = &H2
    Const CSIDL_STARTMENU = &HB
    
    Dim objShell, objFSO
    Dim objCurrentUserStartFolder
    Dim strCurrentUserStartFolderPath
    Dim objAllUsersProgramsFolder
    Dim strAllUsersProgramsPath
    Dim objFolder
    Dim objFolderItem
    Dim colVerbs
    Dim objVerb
    
    Set objShell = CreateObject("Shell.Application")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objCurrentUserStartFolder = objShell.NameSpace (CSIDL_STARTMENU)
    strCurrentUserStartFolderPath = objCurrentUserStartFolder.Self.Path
    Set objAllUsersProgramsFolder = objShell.NameSpace(CSIDL_COMMON_PROGRAMS)
    strAllUsersProgramsPath = objAllUsersProgramsFolder.Self.Path
    
    ' - Pin to Taskbar -
    
    ' Microsoft Word 2013
    If objFSO.FileExists(strAllUsersProgramsPath & "\Microsoft Office 2013\Word 2013.lnk") Then
    	Set objFolder = objShell.Namespace(strAllUsersProgramsPath & "\Microsoft Office 2013")
    	Set objFolderItem = objFolder.ParseName("Word 2013.lnk")
    	Set colVerbs = objFolderItem.Verbs
    	For Each objVerb in colVerbs
    		If Replace(objVerb.name, "&", "") = "Pin to Taskbar" Then objVerb.DoIt
    	Next
    End If
    ' Microsoft Excel 2013
    If objFSO.FileExists(strAllUsersProgramsPath & "\Microsoft Office 2013\Excel 2013.lnk") Then
    	Set objFolder = objShell.Namespace(strAllUsersProgramsPath & "\Microsoft Office 2013")
    	Set objFolderItem = objFolder.ParseName("Excel 2013.lnk")
    	Set colVerbs = objFolderItem.Verbs
    	For Each objVerb in colVerbs
    		If Replace(objVerb.name, "&", "") = "Pin to Taskbar" Then objVerb.DoIt
    	Next
    End If
    ' Microsoft Outlook 2013
    If objFSO.FileExists(strAllUsersProgramsPath & "\Microsoft Office 2013\Outlook 2013.lnk") Then
    	Set objFolder = objShell.Namespace(strAllUsersProgramsPath & "\Microsoft Office 2013")
    	Set objFolderItem = objFolder.ParseName("Outlook 2013.lnk")
    	Set colVerbs = objFolderItem.Verbs
    	For Each objVerb in colVerbs
    		If Replace(objVerb.name, "&", "") = "Pin to Taskbar" Then objVerb.DoIt
    	Next
    End If
    ' Microsoft Powerpoint 2013
    If objFSO.FileExists(strAllUsersProgramsPath & "\Microsoft Office 2013\Powerpoint 2013.lnk") Then
    	Set objFolder = objShell.Namespace(strAllUsersProgramsPath & "\Microsoft Office 2013")
    	Set objFolderItem = objFolder.ParseName("Powerpoint 2013.lnk")
    	Set colVerbs = objFolderItem.Verbs
    	For Each objVerb in colVerbs
    		If Replace(objVerb.name, "&", "") = "Pin to Taskbar" Then objVerb.DoIt
    	Next
    End If
    
    'Delete the script
    DeleteSelf
    
    Sub DeleteSelf()       
            Dim objFSO
            'Create a File System Object
            Set objFSO = CreateObject("Scripting.FileSystemObject")
            'Delete the currently executing script
            objFSO.DeleteFile WScript.ScriptFullName
            Set objFSO = Nothing
    End Sub


    Saturday, June 29, 2013 11:54 AM
  • I've never had an issue like that.  I actually "install" it as an Application and use a VBScript to create the folder and copy the SetTaskbar.vbs into place so that I can do my image build automatically and without manual touch.

    Just curious, are you using CopyProfile?


    David Coulter | http://DCtheGeek.blogspot.com | @DCtheGeek

    Saturday, June 29, 2013 1:04 PM
    Answerer
  • yes I am

    it keeps all my start menu setup and even desktop customization just fine.

    one thing I did remember is I set it on both install and image tasks(bad idea I just remember I forgot to remove it from the install/capture unnateneded)

    ill remove it and try again(ill leave it on the image task only)

    if that doesn't work ill try to copy it to that folder(create and copy the script) once I drop the sysprep image at the very end.

    Saturday, June 29, 2013 1:20 PM
  • so I removed the copyprofile=true from the actual capture process(left the image drop only)

    and tried again

    I verified the script stays in the wim after I do the capture(its in the defualt user startup)

    but when I drop this image >>nothing no shortcuts and no script either in the default profile anymore

    very weird

    like its running once and deletes itself

    Saturday, June 29, 2013 9:10 PM
  • my conclusion is that since its in the right folder(default profile startup) when the image is captured and then it "disappears" when you actually deploy it(its not there anymore and also doesn't work) is that the copyprofile is why since it happens when you lay down the image(I verified it copies administrator to default it probably overwrites it)

    ill just add this script after that happens when I deploy the image.

    Monday, July 01, 2013 2:44 PM
  • so I removed the copyprofile=true from the actual capture process(left the image drop only)

    Just as a note, CopyProfile is executed in Specialize, not Generalize... so it really only matters on the Deploy Task Sequence Unattend.xml, not the Capture Task Sequence Unattend.xml.

    David Coulter | http://DCtheGeek.blogspot.com | @DCtheGeek

    Monday, July 01, 2013 4:29 PM
    Answerer
  • Placing the file under startup can cause problems.  If someone chooses to remove the pinning shortcuts they will come back at each logon.  A better way to apply this file to all users on the system is the use of Active Setup registry keys.

    With Active Setup, you can place this vbs file where everyone has access to and the registry will run it once for new and existing users. MSI setup files take advantage of Active Setup to install components for each currently logged on user.

    The following registry file/keys are used for ActiveSetup. Every time someone logs on, the system will compare the HKLM section against the HKCU section.  If the HKCU section is missing, it will execute the file and then copy the key to the HKCU side.

    Both sections are compared during each login after that, but the file is only executed if the "Version" value under HKLM is incremented above the HKCU section (if you update the file and want to execute it again for each user, change Version to "2" under HKLM).

    You can use this to basically run anything from pinning tiles to setting the theme and copying files.  It could be a vbs, cmd, bat, exe, etc.

    ---------------------ActiveSetup.reg-------------------------------

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\<unique name>]
    "StubPath"="C:\<path to file\<filename>.<ext>"
    "Version"="1"

    ----------------------End of file-----------------------------------

    Thursday, July 04, 2013 12:41 AM
  • Placing the file under startup can cause problems.  If someone chooses to remove the pinning shortcuts they will come back at each logon.  

    As a note, I agree and have mentioned before doing this with Active Setup might be better (unless elevated permissions are needed).  However, to your concern about it happening each logon, note that the last lines in the script forces it to self delete.

    Basically:

    New User Logs On --> Files copied from Default profile (including Pin Script) --> Pin Script runs from Startup --> Pin Script deletes itself, never to run again for this user


    David Coulter | http://DCtheGeek.blogspot.com | @DCtheGeek

    Thursday, July 04, 2013 9:45 PM
    Answerer