It is currently Wed Dec 13, 2017 6:02 am

All times are UTC - 8 hours [ DST ]


Forum rules


Please, keep discussions on topic and in the right forum. The start menu topics go into the Classic Start Menu forum, etc. This makes it easier for people to locate topics they are looking for.
If you get a satisfactory response to your question, please mark the topic as "solved". Click the green √ button in the bottom-right of the post.



Post new topic Reply to topic  [ 15 posts ] 
Author Message
PostPosted: Thu Sep 29, 2016 2:42 pm 
Offline

Joined: Mon Jun 22, 2015 9:07 pm
Posts: 17
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?


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 30, 2016 5:35 am 
Offline

Joined: Mon Jun 22, 2015 9:07 pm
Posts: 17
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.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 30, 2016 5:49 am 
Online
User avatar

Joined: Thu Jan 03, 2013 12:38 am
Posts: 5340
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)

_________________
Links to some general topics:

Compare Start Menus

Read the Search box usage guide.

I am a Windows enthusiast and Classic Shell tester.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 30, 2016 6:05 am 
Offline

Joined: Mon Jun 22, 2015 9:07 pm
Posts: 17
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?


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 30, 2016 6:54 am 
Online
User avatar

Joined: Thu Jan 03, 2013 12:38 am
Posts: 5340
The Windows version has to match the value stored in HKEY_LOCAL_MACHINE\SOFTWARE\IvoSoft\ClassicShell: DWORD WinVersion.

_________________
Links to some general topics:

Compare Start Menus

Read the Search box usage guide.

I am a Windows enthusiast and Classic Shell tester.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 30, 2016 7:17 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5310
Why not just upgrade all computers to version 4.3.0? It will not be removed by the AU.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 30, 2016 8:18 am 
Offline

Joined: Mon Jun 22, 2015 9:07 pm
Posts: 17
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.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 30, 2016 8:35 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5310
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.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 30, 2016 8:43 am 
Offline

Joined: Mon Jun 22, 2015 9:07 pm
Posts: 17
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.


Top
 Profile  
Reply with quote  
PostPosted: Sat Oct 01, 2016 11:25 am 
Offline

Joined: Mon Jun 22, 2015 9:07 pm
Posts: 17
Maybe I'm missing it, but is the WinVersion calculated or is it based on a value from Windows?


Top
 Profile  
Reply with quote  
PostPosted: Sat Oct 01, 2016 11:46 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5310
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.


Top
 Profile  
Reply with quote  
PostPosted: Sat Oct 01, 2016 1:02 pm 
Offline

Joined: Mon Jun 22, 2015 9:07 pm
Posts: 17
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.


Top
 Profile  
Reply with quote  
PostPosted: Thu Oct 26, 2017 5:05 pm 
Offline

Joined: Thu Oct 26, 2017 4:59 pm
Posts: 1
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.


Top
 Profile  
Reply with quote  
PostPosted: Thu Oct 26, 2017 9:51 pm 
Offline

Joined: Mon Jun 22, 2015 9:07 pm
Posts: 17
I have no idea how you figured that out, but thanks for the work!


Top
 Profile  
Reply with quote  
PostPosted: Mon Oct 30, 2017 5:37 am 
Offline

Joined: Mon Oct 30, 2017 5:07 am
Posts: 1
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 * --------------------------------------------------------------------------



Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 15 posts ] 

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 10 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group, Almsamim WYSIWYG Classic Shell © 2010-2016, Ivo Beltchev.
All right reserved.