TaskbarDa (Widgets) registry change is now blocked

Discussion in 'Windows 11' started by Outbreaker, Aug 14, 2024.

  1. Outbreaker

    Outbreaker MDL Senior Member

    Jan 20, 2018
    333
    84
    10
    I noticed that with the last August "Cumulative Update " that you can't change the "TaskbarDa" registry value anymore to disable the crappy TaskBar Widgets Icon that forces you to have a Microsoft Account.
     
  2. RanCorX2

    RanCorX2 MDL Expert

    Jul 19, 2009
    1,019
    563
    60
    what version of windows 11 are we talking about?

    i'm on 23h2 latest cu and that reg setting is 0 and i have no widget icon.
     

    Attached Files:

  3. Outbreaker

    Outbreaker MDL Senior Member

    Jan 20, 2018
    333
    84
    10
  4. sonic9

    sonic9 MDL Member

    Aug 4, 2009
    177
    66
    10
    #6 sonic9, Aug 19, 2024
    Last edited: Aug 21, 2024
    BTW, they do harder on Windows 10 with ShellFeedsTaskbarViewMode replaced by a hashed EnShellFeedsTaskbarViewMode !
    Here I don't want use Policy to block "News and interests" widget, just disable it, then user can enable it if he wants, like before June 2024 (or KB5036979 )
     
  5. jeff789741

    jeff789741 MDL Novice

    Sep 11, 2018
    4
    32
    0
  6. sonic9

    sonic9 MDL Member

    Aug 4, 2009
    177
    66
    10
    #8 sonic9, Aug 20, 2024
    Last edited: Aug 21, 2024
    Thanks! is there EnShellFeedsTaskbarViewMode.exe by lucky789741 available ? :worthy:
     
  7. 12 lb Turkey

    12 lb Turkey MDL Member

    Nov 24, 2022
    120
    64
    10
    Isn't the other workaround to disable UCPD service, and the scheduled task which enforces it?
     
  8. sonic9

    sonic9 MDL Member

    Aug 4, 2009
    177
    66
    10
    #10 sonic9, Aug 21, 2024
    Last edited: Aug 21, 2024
    I've hijacked this Windows 11 topic. Better was create a new topic but want genius get notified :D.
    EnShellFeedsTaskbarViewMode is only for Windows 10 and value is hashed instead 0/1 switch for Windows 11.
    reg1.exe is only the UCPD regedit protection bypass.
     
  9. 12 lb Turkey

    12 lb Turkey MDL Member

    Nov 24, 2022
    120
    64
    10
    Yeah, sorry I wasn't clear when I was replying on W11.
     
  10. drew84

    drew84 MDL Expert

    Mar 13, 2014
    1,396
    2,376
    60
    Some clarification might be needed here, you use EncShellFeedsTaskbarViewMode while the image in @jeff789741 's post above clearly shows EnShellFeedsTaskbarViewMode
    surely only one of these could be correct?
     
  11. sonic9

    sonic9 MDL Member

    Aug 4, 2009
    177
    66
    10
    indeed EnShellFeedsTaskbarViewMode , sorry typo, posts edited
     
  12. jeff789741

    jeff789741 MDL Novice

    Sep 11, 2018
    4
    32
    0
    I can't find where I can attach files but I made a PowerShell script that performs the same job without error handling.

    We can import HashData first
    Code:
    $MethodDefinition = @'
    
    [DllImport("Shlwapi.dll", CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = false)]
       public static extern int HashData(
        byte[] pbData,
        int cbData,
        byte[] piet,
       int outputLen);
    
    '@
    $Shlwapi = Add-Type -MemberDefinition $MethodDefinition -Name 'Shlwapi' -Namespace 'Win32' -PassThru

    Set option variable (2 is for off)
    Code:
    $option=2

    Get MachineId from registry
    the fallback value is hardcoded into explorer.exe
    Code:
    $machineIdReg = Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\SQMClient\' -Name 'MachineId' -ErrorAction SilentlyContinue
    $machineId = '{C283D224-5CAD-4502-95F0-2569E4C85074}' #Fallback Value
    if($machineIdReg) {
        $machineId = $machineIdReg.MachineId
    }

    Do what the Encrypt algorithm does in explorer.exe
    Code:
    $combined = $machineId+'_'+$option.ToString()
    $reverse = $combined[($combined.Length-1)..0] -join ''
    $bytesIn = [system.Text.Encoding]::Unicode.GetBytes($reverse)
    $bytesOut = [byte[]]::new(4)
    $Shlwapi::HashData($bytesIn,0x53, $bytesOut, $bytesOut.Count)

    Convert bytes to dword
    Code:
    $dwordData = [System.BitConverter]::ToUInt32($bytesOut,0)

    Make the reg1.exe
    Code:
    Copy-Item (Get-Command reg).Source .\reg1.exe

    Run the reg1.exe
    There are reports about feeds turning self back to previous state when first build of this encryption thing was released because ShellFeedsTaskbarViewMode isn't being set and part of it still respects it so I still set the value
    Code:
    Start-Process -NoNewWindow -Wait -FilePath .\reg1.exe -ArgumentList 'ADD','HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Feeds\','/v','ShellFeedsTaskbarViewMode','/t','REG_DWORD','/d',$option,'/f'
    Start-Process -NoNewWindow -Wait -FilePath .\reg1.exe -ArgumentList 'ADD','HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Feeds\','/v','EnShellFeedsTaskbarViewMode','/t','REG_DWORD','/d',$dwordData,'/f'
     
  13. Dark Dinosaur

    Dark Dinosaur X Æ A-12

    Feb 2, 2011
    4,150
    5,951
    150
    #15 Dark Dinosaur, Aug 21, 2024
    Last edited: Aug 21, 2024
    mklink work fine .. too.
    see 2 posts under (#17)

    -------------------------

    mklink ... will works too ?
    Code:
    cmd /c mklink %windir%\reg.exe %windir%\reg1.exe
    edit.
    error with syntax. i will fix it.

    edit. this fail. access denied.
    i want try something else
    Code:
    mklink /h %windir%\system32\reg_1.exe %windir%\system32\reg.exe
    
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  14. sonic9

    sonic9 MDL Member

    Aug 4, 2009
    177
    66
    10
  15. Dark Dinosaur

    Dark Dinosaur X Æ A-12

    Feb 2, 2011
    4,150
    5,951
    150
    this work, if you run as TI. (using mklink)

    upload_2024-8-21_22-12-57.png

    Code:
    del /q c:\Windows\reg1.exe
    mklink /h c:\Windows\reg1.exe c:\Windows\System32\reg.exe
    reg1 add "HKLM\Software\Microsoft\Windows\CurrentVersion\Feeds" /f /v ShellFeedsTaskbarViewMode /t REG_DWORD /d 2
    reg1 add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /f /v TaskbarDa /t REG_DWORD /d 0
    del /q c:\Windows\reg1.exe
    pause
    
    
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  16. sonic9

    sonic9 MDL Member

    Aug 4, 2009
    177
    66
    10
    I've made a note for my Windows 10 systems deployed before June 2024 where ShellFeedsTaskbarViewMode was set to 2 by RunOnce reg add ,
    I had written down delete ShellFeedsTaskbarViewMode because users can't re-enable Feeds or if they can, not kept on Reboot.
     
  17. TairikuOkami

    TairikuOkami MDL Expert

    Mar 15, 2014
    1,252
    1,149
    60
    #19 TairikuOkami, Aug 30, 2024
    Last edited: Aug 30, 2024

    Attached Files:

  18. Outbreaker

    Outbreaker MDL Senior Member

    Jan 20, 2018
    333
    84
    10
    #20 Outbreaker, Sep 5, 2024
    Last edited: Sep 5, 2024
    (OP)
    @jeff789741
    Do you know how to suppress the 0 after a successful execution?

    Here is also a batch conversion if someone needs it, including with Remove-Item '.\reg1.exe'

    Code:
    @ECHO OFF
    Set "TNI=%Temp%\Disable Taskbar News and Interests.ps1"
    
    > "%TNI%" ECHO $MethodDefinition = @'
    
    >>"%TNI%" ECHO [DllImport("Shlwapi.dll", CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = false)]
    >>"%TNI%" ECHO    public static extern int HashData(
    >>"%TNI%" ECHO     byte[] pbData,
    >>"%TNI%" ECHO     int cbData,
    >>"%TNI%" ECHO     byte[] piet,
    >>"%TNI%" ECHO    int outputLen);
    
    >>"%TNI%" ECHO '@
    >>"%TNI%" ECHO $Shlwapi = Add-Type -MemberDefinition $MethodDefinition -Name 'Shlwapi' -Namespace 'Win32' -PassThru
    
    >>"%TNI%" ECHO $option=2
    
    >>"%TNI%" ECHO $machineIdReg = Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\SQMClient\' -Name 'MachineId' -ErrorAction SilentlyContinue
    >>"%TNI%" ECHO $machineId = '{C283D224-5CAD-4502-95F0-2569E4C85074}' #Fallback Value
    >>"%TNI%" ECHO if($machineIdReg) {
    >>"%TNI%" ECHO     $machineId = $machineIdReg.MachineId
    >>"%TNI%" ECHO }
    
    >>"%TNI%" ECHO $combined = $machineId+'_'+$option.ToString()
    >>"%TNI%" ECHO $reverse = $combined[($combined.Length-1)..0] -join ''
    >>"%TNI%" ECHO $bytesIn = [system.Text.Encoding]::Unicode.GetBytes($reverse)
    >>"%TNI%" ECHO $bytesOut = [byte[]]::new(4)
    >>"%TNI%" ECHO $Shlwapi::HashData($bytesIn,0x53, $bytesOut, $bytesOut.Count)
    
    >>"%TNI%" ECHO $dwordData = [System.BitConverter]::ToUInt32($bytesOut,0)
    
    >>"%TNI%" ECHO Copy-Item (Get-Command reg).Source '.\reg1.exe'
    
    >>"%TNI%" ECHO Start-Process -NoNewWindow -Wait -FilePath '.\reg1.exe' -ArgumentList 'ADD','HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Feeds','/v','ShellFeedsTaskbarViewMode','/t','REG_DWORD','/d',$option,'/f 1>NUL'
    >>"%TNI%" ECHO Start-Process -NoNewWindow -Wait -FilePath '.\reg1.exe' -ArgumentList 'ADD','HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Feeds','/v','EnShellFeedsTaskbarViewMode','/t','REG_DWORD','/d',$dwordData,'/f 1>NUL'
    
    >>"%TNI%" ECHO Remove-Item '.\reg1.exe'
    
    PowerShell -NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File "%TNI%"
    DEL /f "%TNI%"