Win10-Initial-Setup-Script icon indicating copy to clipboard operation
Win10-Initial-Setup-Script copied to clipboard

Choose which folders appear on Start

Open guixxx opened this issue 6 years ago • 15 comments

It's a really small feature. Windows 10 defaults to these icons in the Start menu:

Screenshot

annotation 2019-02-03 024105


IMO they're useless except for the 'Settings' one. So I just want to leave the 'File Explorer' and 'Settings' icons enabled, like this:

Screenshot

annotation 2019-02-03 024903


Right-clicking one of those icons gives you this 'Personalize this list' option:

Screenshot

annotation 2019-02-03 024230


Which then enables you to personalize them:

Screenshot

untitled



That's it. Hope that's feasible. And thanks for this amazing tool!

guixxx avatar Feb 03 '19 04:02 guixxx

Last time I've checked, these were stored in one of the impossible-to-read binary blobs, otherwise the tweak would already exist as I also find them useless and remove them.

I'll check again. Maybe I'll figure out something this time.

Disassembler0 avatar Feb 03 '19 07:02 Disassembler0

these were stored in one of the impossible-to-read binary blobs

Yeah, you're right. I don't think it could be done easily, unless you store every single combination of icons possible. lol

Anyway, for my use case ('File Explorer' and 'Settings' icons only), I'll be using this cmdlet for now:

$FileExplorerAndSettings = "02,00,00,00,d4,ca,e9,80,d4,bb,d4,01,00,00,00,00,43,42,01,00,cb,32,0a,02,05,bc,c9,a8,a4,01,24,8c,ac,03,44,89,85,01,66,a0,81,ba,cb,bd,d7,a8,a4,82,01,00,05,86,91,cc,93,05,24,aa,a3,01,44,c3,84,01,66,9f,f7,9d,b1,87,cb,d1,ac,d4,01,00,c2,3c,01,c2,46,01,c5,5a,01,00"
$Key = Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\*windows.data.unifiedtile.startglobalproperties\Current"
$BinaryData = [byte[]](($FileExplorerAndSettings.Split(',')) | % { "0x$_" })
Set-ItemProperty -Path $Key.PSPath -Name "Data" -Type Binary -Value $BinaryData

I had to restart Windows Explorer for it to work.

guixxx avatar Feb 03 '19 16:02 guixxx

I think I've got it.

First 20 bytes of the value are always 02,00,00,00,xx,xx,xx,xx,xx,xx,xx,xx,00,00,00,00,43,42,01,00 where xx bytes are a timestamp (presumably of the last change). These can be all taken from data currently present in the registry as they have no significance for the rest of the tweak.

Then it depends if you want to have any items or not. If you don't, then go directly to the last part. If you do, then next 4 bytes are cb,32,0a,yy, where yy is number of items (presumably some list/array length).

Then you chain the items you want to display. An item always starts with byte 05 and ends with 00.

  • 05,bc,c9,a8,a4,01,24,8c,ac,03,44,89,85,01,66,a0,81,ba,cb,bd,d7,a8,a4,82,01,00 = File explorer
  • 05,86,91,cc,93,05,24,aa,a3,01,44,c3,84,01,66,9f,f7,9d,b1,87,cb,d1,ac,d4,01,00 = Settings
  • 05,ce,ab,d3,e9,02,24,da,f4,03,44,c3,8a,01,66,82,e5,8b,b1,ae,fd,fd,bb,3c,00 = Documents
  • 05,af,e6,9e,9b,0e,24,de,93,02,44,d5,86,01,66,bf,9d,87,9b,bf,8f,c6,d4,37,00 = Downloads
  • 05,a0,8c,ac,80,0b,24,d1,fe,01,44,b2,98,01,66,aa,bd,d0,e1,cc,ea,df,b9,15,00 = Music
  • 05,a0,8f,fc,c1,03,24,8a,d0,03,44,80,99,01,66,b0,b5,99,dc,cd,b0,97,de,4d,00 = Pictures
  • 05,c5,cb,ce,95,04,24,86,fb,01,44,f4,85,01,66,80,c9,ce,d4,af,d9,9e,c4,b5,01,00 = Videos
  • 05,c4,82,d6,f3,0f,24,8d,10,44,ae,85,01,66,8b,b5,d3,e9,fe,d2,ed,b1,94,01,00 = Network
  • 05,ca,e0,f6,a5,07,24,ca,f2,03,44,e8,9e,01,66,8b,ad,8f,c2,f9,a0,87,d4,bc,01,00 = Personal folders

Last 10 bytes are always c2,3c,01,c2,46,01,c5,5a,01,00.


So the universal tweak could look as follows (with explorer and settings set in $itemsToDisplay on the first line):

$itemsToDisplay = @("explorer", "settings")
$key = Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\*windows.data.unifiedtile.startglobalproperties\Current"
$data = $key.Data[0..19] -Join ","
If ($itemsToDisplay.Length -gt 0) {
    $data += ",203,50,10,$($itemsToDisplay.Length)"
    If ($itemsToDisplay -contains "explorer") {
        $data += ",5,188,201,168,164,1,36,140,172,3,68,137,133,1,102,160,129,186,203,189,215,168,164,130,1,0"
    }
    If ($itemsToDisplay -contains "settings") {
        $data += ",5,134,145,204,147,5,36,170,163,1,68,195,132,1,102,159,247,157,177,135,203,209,172,212,1,0"
    }
    If ($itemsToDisplay -contains "documents") {
        $data += ",5,206,171,211,233,2,36,218,244,3,68,195,138,1,102,130,229,139,177,174,253,253,187,60,0"
    }
    If ($itemsToDisplay -contains "downloads") {
        $data += ",5,175,230,158,155,14,36,222,147,2,68,213,134,1,102,191,157,135,155,191,143,198,212,55,0"
    }
    If ($itemsToDisplay -contains "music") {
        $data += ",5,160,140,172,128,11,36,209,254,1,68,178,152,1,102,170,189,208,225,204,234,223,185,21,0"
    }
    If ($itemsToDisplay -contains "pictures") {
        $data += ",5,160,143,252,193,3,36,138,208,3,68,128,153,1,102,176,181,153,220,205,176,151,222,77,0"
    }
    If ($itemsToDisplay -contains "videos") {
        $data += ",5,197,203,206,149,4,36,134,251,1,68,244,133,1,102,128,201,206,212,175,217,158,196,181,1,0"
    }
    If ($itemsToDisplay -contains "network") {
        $data += ",5,196,130,214,243,15,36,141,16,68,174,133,1,102,139,181,211,233,254,210,237,177,148,1,0"
    }
    If ($itemsToDisplay -contains "personal") {
        $data += ",5,202,224,246,165,7,36,202,242,3,68,232,158,1,102,139,173,143,194,249,160,135,212,188,1,0"
    }
}
$data += ",194,60,1,194,70,1,197,90,1,0"
Set-ItemProperty -Path $key.PSPath -Name "Data" -Type Binary -Value $data.Split(",")

Now only to figure it out how to make an accessible and mostly foolproof tweak out of this. :)

Disassembler0 avatar Mar 07 '19 09:03 Disassembler0

Great job!

guixxx avatar Mar 07 '19 23:03 guixxx

Hello

I've been skimming through the Microsoft API references, and am narrowing down the Desktop, Shell, Menu, Tiles, and what ever else MSFT have used to try and obfuscate the Start Menu API.. but I came across where the Start Menu, is referenced as "Launcher". I am also going to be skimming through the CRT and COM API.

Original Post

This may be something way off, but is similar to the data structure in the Reg Key. Shell Column State: https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/index

typedef enum tagSHCOLSTATE {
  SHCOLSTATE_DEFAULT,
  SHCOLSTATE_TYPE_STR,
  SHCOLSTATE_TYPE_INT,
  SHCOLSTATE_TYPE_DATE,
  SHCOLSTATE_TYPEMASK,
  SHCOLSTATE_ONBYDEFAULT,
  SHCOLSTATE_SLOW,
  SHCOLSTATE_EXTENDED,
  SHCOLSTATE_SECONDARYUI,
  SHCOLSTATE_HIDDEN,
  SHCOLSTATE_PREFER_VARCMP,
  SHCOLSTATE_PREFER_FMTCMP,
  SHCOLSTATE_NOSORTBYFOLDERNESS,
  SHCOLSTATE_VIEWONLY,
  SHCOLSTATE_BATCHREAD,
  SHCOLSTATE_NO_GROUPBY,
  SHCOLSTATE_FIXED_WIDTH,
  SHCOLSTATE_NODPISCALE,
  SHCOLSTATE_FIXED_RATIO,
  SHCOLSTATE_DISPLAYMASK
} SHCOLSTATE;

The Reg Key data could also be hidden somewhere in the GPO API, or the Data Structures API. https://docs.microsoft.com/en-us/windows/desktop/api/wtypesbase/ns-wtypesbase-blob https://docs.microsoft.com/en-us/windows/desktop/api/OleDlg/ns-oledlg-tagoleuignrlpropsa

typedef struct tagOLEUIOBJECTPROPSA {
  DWORD              cbStruct;
  DWORD              dwFlags;
  LPPROPSHEETHEADERA lpPS;
  DWORD              dwObject;
  LPOLEUIOBJINFOA    lpObjInfo;
  DWORD              dwLink;
  LPOLEUILINKINFOA   lpLinkInfo;
  LPOLEUIGNRLPROPSA  lpGP;
  LPOLEUIVIEWPROPSA  lpVP;
  LPOLEUILINKPROPSA  lpLP;
} OLEUIOBJECTPROPSA, *POLEUIOBJECTPROPSA, *LPOLEUIOBJECTPROPSA;

What is frustrating is that the marketable name 'Start Menu' does not return any search results using Microsoft's Search Engine for Docs. Neither does 'Task Bar'. The Start Menu isn't part of the Menu API, as I think this handles the Win32 Forms Menu Bar.

It's also frustrating that there have been deprecated API for Tiles, and I think they are still in the middle of sorting out the Documents Pages.

I'll be back when I find more Info.

edit: I think Start Menu may be part of the Windows Property System, Shell Object Core.. https://docs.microsoft.com/en-us/windows/desktop/api/_properties/ https://docs.microsoft.com/en-us/windows/desktop/api/shobjidl_core/

EDIT: Found it. Now to analyse. https://docs.microsoft.com/en-us/windows/desktop/api/shobjidl_core/nf-shobjidl_core-ishellmenu-setshellfolder

I'm going to play around on a VM later, and see if I can get the shortcuts appearing in different order, or adding my own shortcuts

NeoBeum avatar May 12 '19 12:05 NeoBeum

@guixxx Found Them: 0 == Hide, 1 == Show

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\ControlPanel /v DefaultValue /t REG_DWORD /d 0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Documents /v DefaultValue /t REG_DWORD /d 0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Downloads /v DefaultValue /t REG_DWORD /d 0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Music /v DefaultValue /t REG_DWORD /d 0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Network /v DefaultValue /t REG_DWORD /d 0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Personal /v DefaultValue /t REG_DWORD /d 0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Pictures /v DefaultValue /t REG_DWORD /d 0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Videos /v DefaultValue /t REG_DWORD /d 0

NeoBeum avatar May 22 '19 21:05 NeoBeum

These don't seem to do anything. Neither for current user, nor for newly created ones.

Disassembler0 avatar May 25 '19 18:05 Disassembler0

@Disassembler0 Sorry, I was on my mobile when I posted that.

I'm still in the middle of tracing which of the OSD configuration passes writes to the registry - overriding the set values stored with the default predetermined value. Looking through Windows SystemResources Windows.UI.Shell & Windows.UI.* and then also in SystemApps Windows.StartExperienceHost

https://i.imgur.com/pha3NHL.jpg

Some of the SystemResources.mun contain strings which other components use to write to registry, so this may also be used by what ever it is that's controlling the Pinned Items. I haven't done this stuff for a long time, so I'm a bit slow and rusty.

There's also the possibility that corresponding resources in Winre.wim may need to be set to equal values - as I have encountered scenarios where Windows detects changes, and uses the WinSxS to restore the health of the system.

NeoBeum avatar May 25 '19 19:05 NeoBeum

I'm not entirely sure if you're on the correct track. StartMenuExperienceHost.exe is the Start Menu itself, but it doesn't write the registry values we're after. This is the call stack (on 1903, build 18362.116) which leads from the thread start to the registry write

"Frame","Module","Location","Address","Path"
"0","ntoskrnl.exe","SeUnlockSubjectContext + 0x20df","0xfffff801655f0b1f","C:\Windows\system32\ntoskrnl.exe"
"1","ntoskrnl.exe","FsRtlAcknowledgeEcp + 0x1890","0xfffff80165647bf0","C:\Windows\system32\ntoskrnl.exe"
"2","ntoskrnl.exe","setjmpex + 0x7b55","0xfffff801651cdf95","C:\Windows\system32\ntoskrnl.exe"
"3","ntdll.dll","NtSetValueKey + 0x14","0x7ffcb391cc54","C:\Windows\SYSTEM32\ntdll.dll"
"4","KERNELBASE.dll","RegSetValueExW + 0x388","0x7ffcb140d918","C:\Windows\System32\KERNELBASE.dll"
"5","KERNELBASE.dll","RegSetValueExW + 0x147","0x7ffcb140d6d7","C:\Windows\System32\KERNELBASE.dll"
"6","KERNELBASE.dll","RegSetKeyValueW + 0x55","0x7ffcb144d965","C:\Windows\System32\KERNELBASE.dll"
"7","Windows.CloudStore.dll","DllGetClassObject + 0x1271","0x7ffc9f382b31","C:\Windows\System32\Windows.CloudStore.dll"
"8","Windows.CloudStore.dll","DllCanUnloadNow + 0x194b","0x7ffc9f37d4cb","C:\Windows\System32\Windows.CloudStore.dll"
"9","Windows.CloudStore.dll","DllCanUnloadNow + 0x1807","0x7ffc9f37d387","C:\Windows\System32\Windows.CloudStore.dll"
"10","Windows.CloudStore.dll","DllGetClassObject + 0xa518","0x7ffc9f38bdd8","C:\Windows\System32\Windows.CloudStore.dll"
"11","Windows.CloudStore.dll","DllGetClassObject + 0x34b8b","0x7ffc9f3b644b","C:\Windows\System32\Windows.CloudStore.dll"
"12","StartTileData.dll","GetSetting + 0x13ccf4","0x7ffc9bc71974","C:\Windows\System32\StartTileData.dll"
"13","StartTileData.dll","GetSetting + 0x144858","0x7ffc9bc794d8","C:\Windows\System32\StartTileData.dll"
"14","StartTileData.dll","GetSetting + 0x14a767","0x7ffc9bc7f3e7","C:\Windows\System32\StartTileData.dll"
"15","StartTileData.dll","DllCanUnloadNow + 0x98fc","0x7ffc9ba5c58c","C:\Windows\System32\StartTileData.dll"
"16","StartTileData.dll","GetSetting + 0x139a9c","0x7ffc9bc6e71c","C:\Windows\System32\StartTileData.dll"
"17","StartTileData.dll","GetSetting + 0x13e6fc","0x7ffc9bc7337c","C:\Windows\System32\StartTileData.dll"
"18","StartTileData.dll","GetSetting + 0x13e64a","0x7ffc9bc732ca","C:\Windows\System32\StartTileData.dll"
"19","StartTileData.dll","GetSetting + 0x144089","0x7ffc9bc78d09","C:\Windows\System32\StartTileData.dll"
"20","StartTileData.dll","GetSetting + 0x1478c0","0x7ffc9bc7c540","C:\Windows\System32\StartTileData.dll"
"21","StartTileData.dll","GetSetting + 0x14c18b","0x7ffc9bc80e0b","C:\Windows\System32\StartTileData.dll"
"22","StartTileData.dll","DllCanUnloadNow + 0x1a9e","0x7ffc9ba5472e","C:\Windows\System32\StartTileData.dll"
"23","StartTileData.dll","GetSetting + 0x14d007","0x7ffc9bc81c87","C:\Windows\System32\StartTileData.dll"
"24","StartTileData.dll","GetSetting + 0x1502f3","0x7ffc9bc84f73","C:\Windows\System32\StartTileData.dll"
"25","StartTileData.dll","DllCanUnloadNow + 0x6e4","0x7ffc9ba53374","C:\Windows\System32\StartTileData.dll"
"26","StartTileData.dll","DllGetActivationFactory + 0x7555","0x7ffc9ba51db5","C:\Windows\System32\StartTileData.dll"
"27","ntdll.dll","TpReleaseWait + 0x54d","0x7ffcb38b082d","C:\Windows\SYSTEM32\ntdll.dll"
"28","ntdll.dll","RtlInitializeResource + 0xce4","0x7ffcb38b45c4","C:\Windows\SYSTEM32\ntdll.dll"
"29","KERNEL32.DLL","BaseThreadInitThunk + 0x14","0x7ffcb28b7bd4","C:\Windows\System32\KERNEL32.DLL"
"30","ntdll.dll","RtlUserThreadStart + 0x21","0x7ffcb38ece71","C:\Windows\SYSTEM32\ntdll.dll"

PITA will be to get the proper parameters which are getting passed, as there are ridiculously few exposed DLL functions. This is where IDA will come in really handy.

StartTileData.dll exposes:

  • DllCanUnloadNow
  • DllGetActivationFactory
  • DllGetClassObject
  • GetSetting
  • HasMigratedTDLData
  • TryMigrateTDLData

and Windows.CloudStore.dll exposes:

  • DllCanUnloadNow
  • DllGetActivationFactory
  • DllGetClassObject
  • GetProxyDllInfo

But this was just a swift analysis, maybe you're already much farther than I think.

Disassembler0 avatar May 25 '19 20:05 Disassembler0

@Disassembler0

There's a few possible solutions to set the Pinned Folders;

  • the main one you have already given the example for by injecting the binary data
  • finding the the administrative version via policies
  • finding the task associated or template used that writes the data structure that the cloud store eventually uses (which is the one i'm attempting to find)
tldr another solution could be to trick the StartTileData to thinking that it is coming from an existing installation, and use TryMigrateTDLData - however - this was also one of the issues that got me starting to dive in to OSD - as there are lots of things breaking with Windows. Tile Data Layer is one/was of them. It's been deprecated - and I think the new functions could be handled by DataExchange.dll or Windows.UI.Immersive.dll - I haven't had a chance to look at them yet.

Actually, MS just updated the Docs pages that I complained about and listed what has replaced TLD.

Tile Data Layer To be replaced by the Tile Store.

1709 Removed Features

IT-Pro Docs #3478

At the same time - this could be why the Registry Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\ControlPanel isn't affecting 1903 - I'm just doing guess work.

EDIT: I just found this - but haven't had the chance to go through it yet - https://4sysops.com/archives/roaming-profiles-and-start-tiles-tiledatalayer-in-the-windows-10-1703-creators-update/

NeoBeum avatar May 25 '19 21:05 NeoBeum

I think I've found part of the API, I will look more tomorrow. This is just for bookmark.

10.0.18362.0\um Windows.Storage.Provider - Cloud Windows.System.UserProfile shappmgr ... shtypes ShlObj.h ShlObj_core.h

    REST_NOUSERNAMEINSTARTPANEL     = 0x40000062,   // don't show the username is the startpanel.
    REST_NOMYCOMPUTERICON           = 0x40000063,   // don't show my computer anywhere, hide its contents
    REST_NOSMNETWORKPLACES          = 0x40000064,   // don't show network places in startpanel.
    REST_NOSMPINNEDLIST             = 0x40000065,   // don't show the pinned list in startpanel.
    REST_NOSMMYMUSIC                = 0x40000066,   // don't show MyMusic folder in startpanel
    REST_NOSMEJECTPC                = 0x40000067,   // don't show "Undoc PC" command in startmenu
    REST_NOSMMOREPROGRAMS           = 0x40000068,   // don't show "More Programs" button in StartPanel.
    REST_NOSMMFUPROGRAMS            = 0x40000069,   // don't show the MFU programs list in StartPanel.
    REST_NOTRAYITEMSDISPLAY         = 0x4000006A,   // disables the display of the system tray
    REST_NOTOOLBARSONTASKBAR        = 0x4000006B,   // disables toolbar display on the taskbar

NeoBeum avatar May 25 '19 23:05 NeoBeum

Long post Just updating my investigating.

I'm heavily in to the ADK API and Component Installation - it's in conjecture with my other investigation of the Servicing Stack and why it was uninstalling critical components and not reinstalling them - similar to what happened in 2017.

The servicing stack and Windows setup share source files - this is most likely the reason why any registry modifications are reverted for user profiles until the final phases/configuration pass of the image deployment - "Specialize" and/or "Re-specialize".

The ADK has template HIV (Hive) files for Setup - I just haven't looked in there yet, as I'm still doing traces, as a bulk of what I'm doing spans across the entire life-cycle of the OS (I'm trying to rectify and provide a solution to ensure that people with older hardware don't have their system disks rearranged - as in 2015, my NVMe drive didn't exist for windows - depending on what program was used to identify the hardware - There was no NVMe Enumerator for WMIC BusType back then, and also at one stage, the other SSD I had installed was reported back as IDE) DevCon Get-Disk Get-PhysicalDisk DISKPART WMIC (I ran a test last night, and finally, all 5 will report matching BusType - I complained about this on the MSDN forums a while ago)

I've found some new registry entries - which are likely related to the Start Panel - but am working out how they are referenced or called. (This currently doesn't have any effect on OSD)

REG LOAD HKU\TEMPSOFTWARE "E:\WinROG\mount\OS\Windows\System32\config\SOFTWARE"

REG ADD "HKU\TEMPSOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_ShowPCSettings /t REG_DWORD /d 1 /f
REG ADD "HKU\TEMPSOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_ShowPersonal /t REG_DWORD /d 1 /f
REG ADD "HKU\TEMPSOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_ShowNetwork /t REG_DWORD /d 1 /f
REG ADD "HKU\TEMPSOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_ShowPictures /t REG_DWORD /d 0 /f
REG ADD "HKU\TEMPSOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_ShowDocuments /t REG_DWORD /d 0 /f
REG ADD "HKU\TEMPSOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_ShowDownloads /t REG_DWORD /d 0 /f
REG ADD "HKU\TEMPSOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_ShowMusic /t REG_DWORD /d 0 /f
REG ADD "HKU\TEMPSOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_ShowVideos /t REG_DWORD /d 0 /f

REG UNLOAD HKU\TEMPSOFTWARE

Key Values for directories (Can be HKCU or HKLM) Note that HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu does not exist.

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems
    Bitmap    REG_SZ    %SystemRoot%\System32\imageres.dll,5100
    Text    REG_SZ    @shell32.dll,-30608
    Type    REG_SZ    group

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\ControlPanel
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\DefaultPrograms
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Devices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Documents
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Downloads
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Help
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Homegroup
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Music
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Network
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\PCSettings
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Personal
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Pictures
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\ThisPC
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Videos

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\PinnedItems\Documents
    CheckedValue    REG_DWORD    0x1
    DefaultValue    REG_DWORD    0x1
    HKeyRoot    REG_DWORD    0x80000001
    RegPath    REG_SZ    Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
    Text    REG_SZ    @shell32.dll,-30612
    Type    REG_SZ    checkbox
    UncheckedValue    REG_DWORD    0x0
    ValueName    REG_SZ    Start_ShowDocuments


PS E:\WinROG> REG QUERY "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"                                                                                                                                                   
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
    Start_TrackDocs    REG_DWORD    0x1
    TaskbarSizeMove    REG_DWORD    0x0

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DelayedApps
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\NavPane
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
    Start_SearchFiles    REG_DWORD    0x2
    ServerAdminUI    REG_DWORD    0x0
    Hidden    REG_DWORD    0x2
    ShowCompColor    REG_DWORD    0x1
    HideFileExt    REG_DWORD    0x0
    DontPrettyPath    REG_DWORD    0x0
    ShowInfoTip    REG_DWORD    0x1
    HideIcons    REG_DWORD    0x0
    MapNetDrvBtn    REG_DWORD    0x0
    WebView    REG_DWORD    0x1
    Filter    REG_DWORD    0x0
    ShowSuperHidden    REG_DWORD    0x1
    SeparateProcess    REG_DWORD    0x1
    AutoCheckSelect    REG_DWORD    0x1
    IconsOnly    REG_DWORD    0x0
    ShowTypeOverlay    REG_DWORD    0x1
    ShowStatusBar    REG_DWORD    0x1
    StoreAppsOnTaskbar    REG_DWORD    0x1
    ListviewAlphaSelect    REG_DWORD    0x1
    ListviewShadow    REG_DWORD    0x1
    TaskbarAnimations    REG_DWORD    0x1
    StartMenuInit    REG_DWORD    0xd
    TaskbarStateLastRun    REG_BINARY    E083ED5C00000000
    ReindexedProfile    REG_DWORD    0x1
    Start_TrackProgs    REG_DWORD    0x0
    LaunchTo    REG_DWORD    0x1
    DisablePreviewDesktop    REG_DWORD    0x0
    TaskbarSizeMove    REG_DWORD    0x1
    TaskbarSmallIcons    REG_DWORD    0x1
    TaskbarGlomLevel    REG_DWORD    0x0
    ShowSyncProviderNotifications    REG_DWORD    0x0
    ShellViewReentered    REG_DWORD    0x1
    MMTaskbarMode    REG_DWORD    0x1
    MMTaskbarEnabled    REG_DWORD    0x1
    ShowCortanaButton    REG_DWORD    0x1
    ShowEncryptCompressedColor    REG_DWORD    0x1
    NavPaneShowAllFolders    REG_DWORD    0x1

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People

Theme (Use AppsUseLightTheme and SystemUsesLightTheme)

PS E:\WinROG> REG QUERY "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme\"                                                                                                                                            
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme
    Bitmap    REG_EXPAND_SZ    %SystemRoot%\System32\imageres.dll,114
    Text    REG_SZ    @shell32.dll,-51729
    Type    REG_SZ    group

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme\USEDARKMODE
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme\USELIGHTMODE
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme\USESYSTEMMODE
PS E:\WinROG> REG QUERY "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme\USESYSTEMMODE"                                                                                                                               
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme\USESYSTEMMODE
    CheckedValue    REG_DWORD    0x1
    DefaultValue    REG_DWORD    0x1
    HKeyRoot    REG_DWORD    0x80000001
    RegPath    REG_SZ    Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
    Text    REG_SZ    @shell32.dll,-51732
    Type    REG_SZ    radio
    ValueName    REG_SZ    Theme

PS E:\WinROG> REG QUERY "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme\USEDARKMODE"                                                                                                                                 
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme\USEDARKMODE
    CheckedValue    REG_DWORD    0x2
    DefaultValue    REG_DWORD    0x0
    HKeyRoot    REG_DWORD    0x80000001
    RegPath    REG_SZ    Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
    Text    REG_SZ    @shell32.dll,-51731
    Type    REG_SZ    radio
    ValueName    REG_SZ    Theme

PS E:\WinROG> REG QUERY "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme\USELIGHTMODE"                                                                                                                                
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Theme\USELIGHTMODE
    CheckedValue    REG_DWORD    0x3
    DefaultValue    REG_DWORD    0x0
    HKeyRoot    REG_DWORD    0x80000001
    RegPath    REG_SZ    Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
    Text    REG_SZ    @shell32.dll,-51730
    Type    REG_SZ    radio
    ValueName    REG_SZ    Theme
PS E:\WinROG> REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize"                                                                                                                                                  
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize
    ColorPrevalence    REG_DWORD    0x0
    EnableTransparency    REG_DWORD    0x1
    AppsUseLightTheme    REG_DWORD    0x0
    SystemUsesLightTheme    REG_DWORD    0x0

With what is observable of the Windows UI - setting registry values from the registry - and not via the immersive control panel - sometimes can have undesired effects at times - where the UI will appear bugged as toggle switches or radio buttons have a different visual appearance to what is set in registry, and sometimes require the user to "kickstart" the bugged/stuck setting to trigger the desired effect.

This is what is currently happening with Multiple Displays and the Brightness Slider, when the Main display is set as one of the connected Displays. Example: My laptop has 5 different monitor configurations

  1. Single Display
  2. Dual Display (Main Display == Display 1)
  3. Dual Display (Main Display == Display 2)
  4. Triple Display (Main Display == Display 1)
  5. Triple Display (Main Display == Display 3)

In configurations where the main display is set to the external monitors, some fullscreen apps or daily usage triggers my laptop display to go to 100% brightness, yet the Action Center Slider is at minimum. The display won't change to the visual setting until I nudge the slider, and only after doing so, will slider value be correctly represented with changes to display brightness on the laptop display.

I'll also let you guys wrap your head around this: (This is another reason why Microsoft can't get the Action Center animations nested to the correct screen right) BuggySettings

I'll be back when I gather more information.

EDIT: Adding this for reference: Image

NeoBeum avatar Jun 03 '19 12:06 NeoBeum

img img

@Disassembler0

_ProviderSet"=dword:00000000 == Allows User Toggle _ProviderSet"=dword:00000001 == Blocks User Toggle "AllowPinnedFolderXXXXXXXXXXXX"=dword:00000001 == Show "AllowPinnedFolderXXXXXXXXXXXX"=dword:00000000 == Hide

fuckyoumicrosoft.reg

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\Start]
"AllowPinnedFolderDocuments"=dword:00000001
"AllowPinnedFolderDocuments_ProviderSet"=dword:00000001
"AllowPinnedFolderDownloads"=dword:00000001
"AllowPinnedFolderDownloads_ProviderSet"=dword:00000001
"AllowPinnedFolderFileExplorer"=dword:00000001
"AllowPinnedFolderFileExplorer_ProviderSet"=dword:00000001
"AllowPinnedFolderMusic"=dword:00000001
"AllowPinnedFolderMusic_ProviderSet"=dword:00000001
"AllowPinnedFolderNetwork"=dword:00000001
"AllowPinnedFolderNetwork_ProviderSet"=dword:00000001
"AllowPinnedFolderPersonalFolder"=dword:00000001
"AllowPinnedFolderPersonalFolder_ProviderSet"=dword:00000001
"AllowPinnedFolderPictures"=dword:00000001
"AllowPinnedFolderPictures_ProviderSet"=dword:00000001
"AllowPinnedFolderSettings"=dword:00000001
"AllowPinnedFolderSettings_ProviderSet"=dword:00000001
"AllowPinnedFolderVideos"=dword:00000001
"AllowPinnedFolderVideos_ProviderSet"=dword:00000001

I'm testing this setting on OSD Environment during Offline servicing... but I still need to find the other variables

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start]
"AllowPinnedFolderDocuments"=dword:00000001
"AllowPinnedFolderDocuments_ProviderSet"=dword:00000001
"AllowPinnedFolderDownloads"=dword:00000001
"AllowPinnedFolderDownloads_ProviderSet"=dword:00000001
"AllowPinnedFolderFileExplorer"=dword:00000001
"AllowPinnedFolderFileExplorer_ProviderSet"=dword:00000001
"AllowPinnedFolderMusic"=dword:00000001
"AllowPinnedFolderMusic_ProviderSet"=dword:00000001
"AllowPinnedFolderNetwork"=dword:00000001
"AllowPinnedFolderNetwork_ProviderSet"=dword:00000001
"AllowPinnedFolderPersonalFolder"=dword:00000001
"AllowPinnedFolderPersonalFolder_ProviderSet"=dword:00000001
"AllowPinnedFolderPictures"=dword:00000001
"AllowPinnedFolderPictures_ProviderSet"=dword:00000001
"AllowPinnedFolderSettings"=dword:00000001
"AllowPinnedFolderSettings_ProviderSet"=dword:00000001
"AllowPinnedFolderVideos"=dword:00000001
"AllowPinnedFolderVideos_ProviderSet"=dword:00000001

NeoBeum avatar Jun 07 '19 13:06 NeoBeum

Just tested the OSD, Audit Mode settings persist. Make sure it's PolicyManager\default\Start, not PolicyManager\default\device\start Online Registry path is: PolicyManager\current\device\start

NeoBeum avatar Jun 07 '19 14:06 NeoBeum

I just tried to set the registry keys on 2 machines v1809 and it doesn't work. All the values are set on 0 but wen a user logs in, all the pinned folders are visible and the user can change it through Settings. Am I missing something ?

MarcVndrhgn avatar Sep 27 '19 19:09 MarcVndrhgn