Classic Shell
http://www.classicshell.net/forum/

Post Windows 10 AU Upgrade
http://www.classicshell.net/forum/viewtopic.php?f=7&t=6909
Page 1 of 1

Author:  powellap [ Thu Sep 29, 2016 2:42 pm ]
Post subject:  Post Windows 10 AU Upgrade

I am running CS 4.3.0. This was installed as an admin but the users on the PCs are not.

After Windows 10 AU (1607) installs, I receive a message about CS needing to configure itself for the new OS. If the user is a admin this happens with a prompt from the UAC, which they approve and life goes on. However, on the PCs that have standard users, this prompt happens every time they restart the PC because they obviously don't have the proper permissions to make the changes.

Is there a way to detect when CS is in this state so that I can do something about it? ie. Registry setting, etc?

Author:  powellap [ Fri Sep 30, 2016 5:35 am ]
Post subject:  Re: Post Windows 10 AU Upgrade

I want to automate the process. I need to know what CS is checking/looking for when it throws the message that it needs to configure itself for the new OS.

Author:  Gaurav [ Fri Sep 30, 2016 5:49 am ]
Post subject:  Re: Post Windows 10 AU Upgrade

You need to do two things:
1) In the registry, open HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, and find the value "Classic Start Menu". Replace the "-autorun" parameter with "-startup". This will stop the upgrading.
2) After the upgrade of Windows, run regsvr32 %windir%\System32\StartMenuHelper64.dll (or StartMenuHelper32.dll for 32-bit Windows)

Author:  powellap [ Fri Sep 30, 2016 6:05 am ]
Post subject:  Re: Post Windows 10 AU Upgrade

Okay this is a good start. But... let me ask this a different way.

Computer has Win 10 (1511) (not AU) and CS 4.30 installed. Everything is working fine. Microsoft randomly picks this PC to upgrade to 1607 AU.
(1) Next reboot into the GUI, CS throws the message that it needs to configure itself for the new OS. Admin user agrees (by allowing UAC prompt), changes are made.
(2) All reboots afterwards (until MS breaks it again) CS and Windows go along there merry way. No message from CS about configuration.

I assume CS is checking something (registry setting?, file versions?) in both (1) and (2) to decide whether to throw the message and attempt to do the "configure". Can you share what those checks are?

Author:  Gaurav [ Fri Sep 30, 2016 6:54 am ]
Post subject:  Re: Post Windows 10 AU Upgrade

The Windows version has to match the value stored in HKEY_LOCAL_MACHINE\SOFTWARE\IvoSoft\ClassicShell: DWORD WinVersion.

Author:  Ivo [ Fri Sep 30, 2016 7:17 am ]
Post subject:  Re: Post Windows 10 AU Upgrade

Why not just upgrade all computers to version 4.3.0? It will not be removed by the AU.

Author:  powellap [ Fri Sep 30, 2016 8:18 am ]
Post subject:  Re: Post Windows 10 AU Upgrade

Awesome. Thanks.

Ivo, 4.30 is installed. The problem is, CS needs permissions a standard user doesn't have. They will see this message every time they reboot the PC.

Author:  Ivo [ Fri Sep 30, 2016 8:35 am ]
Post subject:  Re: Post Windows 10 AU Upgrade

Ah, right. I was a bit confused.
The problem is that the AU upgrade will destroy some registry settings that require admin access to restore. You need to register the StartMenuHelper dll and update the Windows version in the registry, which will stop the update checks.

Author:  powellap [ Fri Sep 30, 2016 8:43 am ]
Post subject:  Re: Post Windows 10 AU Upgrade

I'm looking in HKLM\Software\Microsoft\Windows NT\CurrentVersion, but nothing seems to compare to your WinVersion value. Any ideas?

By the way thanks for the help on this.

Author:  powellap [ Sat Oct 01, 2016 11:25 am ]
Post subject:  Re: Post Windows 10 AU Upgrade

Maybe I'm missing it, but is the WinVersion calculated or is it based on a value from Windows?

Author:  Ivo [ Sat Oct 01, 2016 11:46 am ]
Post subject:  Re: Post Windows 10 AU Upgrade

You need to set the value WinVersion in HKEY_LOCAL_MACHINE\SOFTWARE\IvoSoft\ClassicShell to 167786553. It corresponds to the AU version.
If this number doesn't match the current Windows version, the auto-upgrade behavior will kick in and you will get the popup after you log in.

Author:  powellap [ Sat Oct 01, 2016 1:02 pm ]
Post subject:  Re: Post Windows 10 AU Upgrade

Thank you. I guess what I'm struggling with is, where that AU value is, so that I can update the WinVersion in the future so that it matches.

Author:  __trj [ Thu Oct 26, 2017 5:05 pm ]
Post subject:  Re: Post Windows 10 AU Upgrade

powellap wrote:
Thank you. I guess what I'm struggling with is, where that AU value is, so that I can update the WinVersion in the future so that it matches.



The formula is appears to be 2^24 * (Windows 10 major version number) + (Windows 10 build number).

So the Fall Creators Update (1709) is 2^24 * 10 + 16299 = 167788459

Just posting here because I have to deal with this every time there's a Windows 10 upgrade and I kept coming across this post and no answer, so I decided to figure out how the number is calculated.

Author:  powellap [ Thu Oct 26, 2017 9:51 pm ]
Post subject:  Re: Post Windows 10 AU Upgrade

I have no idea how you figured that out, but thanks for the work!

Author:  iorx [ Mon Oct 30, 2017 5:37 am ]
Post subject:  Re: Post Windows 10 AU Upgrade

Maybe resurrecting something very old here. But I've got this working for me with upgraded Windows 10 machines.

Note: I only use the Start Menu component from Classic shell, nothing else.

Running the below as a startup script on computers through a GPO.

Code:
@echo off
rem * --------------------------------------------------------------------------
SETLOCAL ENABLEDELAYEDEXPANSION

if Not Exist "%systemRoot%\System32\StartMenuHelper64.dll" (
echo * No Classic Shell found
goto :eof
)

set valCurrentBuild=
set valCalcCurrentBuild=
set valClassicWinVersion=

rem 10240 1507 Threshold 1
rem 10586 1511 November Update
rem 14393 1607 Anniversary Update
rem 15063 1703 Creators Update
rem 16299 1709 Fall Creators Update
rem xxxxx 1803 Redstone 4

rem * Windows build
for /f "tokens=1,2,3" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" ^| find "CurrentBuild"') do set valCurrentBuild=%%k
echo * Windows Build %valCurrentBuild%
set /a valCalcCurrentBuild=16777216*10+%valCurrentBuild%

rem * Classic Shell check
for /f "tokens=1,2,3" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\IvoSoft\ClassicShell" ^| find "WinVersion"') do set /a valClassicWinVersion=%%k
if Not Defined valClassicWinVersion (
echo * No Classic shell WinVersion number found
goto :eof
)
echo * Caclulated vaule for ClassicShell %valCalcCurrentBuild%
echo * Registry value for ClassicShell %valClassicWinVersion%

rem * Fix Classic Shell registry value
if %valCalcCurrentBuild% GTR %valClassicWinVersion% (
echo * New value to HKEY_LOCAL_MACHINE\SOFTWARE\IvoSoft\ClassicShell\WinVersion = %valCalcCurrentBuild%
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\IvoSoft\ClassicShell" /v "WinVersion" /t REG_DWORD /d %valCalcCurrentBuild% /f
regsvr32 /s %SystemRoot%\System32\StartMenuHelper64.dll
) else (
echo * Classic Shell WinVersion is OK.
)
rem * --------------------------------------------------------------------------


Page 1 of 1 All times are UTC - 8 hours [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/