Windows 7 - Remove EOSNotify

sli, I already gave the commands to run to get rid of EOSNotify in the opening post. It works for every update that adds the files / enables it, including the latest wallpaper fix update for those without ESU. I'll attach something that you can throw into the post setup section in NTLite. The forums don't allow .exe to be uploaded, so you'll have to unzip this and then put the exe into the post setup part of NTLite.
 

Attachments

  • Remove EOSNotify.zip
    676.6 KB
toomuchpie, Thanks! This is very kind of you :)

So, is the EXE file an exact copy of the commands in your OP?

If so then it did not completely work in my environment, I had other variants of EOSNotify (with different build dates and version numbers) that still remained in winsxs. I think this might be because the system did not have the required TrustedInstaller permissions that are required at runtime, my script works around this by using takeown and icacls commands, but it is perhaps not ideal for all environments.

I would prefer to stick to .BAT or .VBS or similar so that end users can audit the functions if they wish, would you be willing to share the source used to build your EXE file?
 
Last edited:
The source are the commands in the opening post. You can extract it out of the exe to see it. For me, this has worked when integrated with NTLite in post setup for the December 2019 and January 2020 updates + the wallpaper fix (KB4539602) that was released in February 2020.
 
I see, it is an SFK type of EXE, that is a very neat solution you have made, I like it a lot :) And it's good that you can just extract an SFK archive with WinRAR or 7-Zip to see what it is, I remember doing similar back in NT4 era... Happy days :)

However I think I would like it to not depend on PowerRun (not that I have anything against PowerRun, it's just my end users might not know what it is if they or thier AV came accross it), and also I will like to inlcude the other winsxs folder entries I have encountered on my test systems.

So I would like to run the commands as an elevated plain old .BAT batch startup script, during Windows post installation (RunOnce)...

To remove the winsxs folder(s), I adapt your command to:

Code:
takeown /a /r /d Y /f "C:\Windows\winsxs\amd64_microsoft-windows-eosnotify_31bf3856ad364e35_6.1.7601.24544_none_44332005faee77b8"
icacls "C:\Windows\winsxs\amd64_microsoft-windows-eosnotify_31bf3856ad364e35_6.1.7601.24544_none_44332005faee77b8" /T /C /grant administrators:D
rmdir /s /q "C:\Windows\winsxs\amd64_microsoft-windows-eosnotify_31bf3856ad364e35_6.1.7601.24544_none_44332005faee77b8"

(I would like it if this code was made to use wildcards to get the other versions, but takeown and icacls do not support wildcards, so I have to repeat all the above 4 times)


To delete the eosnotify winSxS module manifest(s), I adapt your command to:

Code:
takeown /a /f "C:\Windows\winsxs\Manifests\amd64_microsoft-windows-eosnotify_31bf3856ad364e35_6.1.7601.24544_none_44332005faee77b8.manifest"
icacls "C:\Windows\winsxs\Manifests\amd64_microsoft-windows-eosnotify_31bf3856ad364e35_6.1.7601.24544_none_44332005faee77b8.manifest" /grant administrators:D
del /s "C:\Windows\winsxs\Manifests\amd64_microsoft-windows-eosnotify_31bf3856ad364e35_6.1.7601.24544_none_44332005faee77b8.manifest"


To delete the actual EOSNotify binary EXE, I adapt your command with additional commands like this:

Code:
taskkill /F /IM "C:\Windows\System32\EOSNotify.exe"  
takeown /a /f C:\Windows\System32\EOSNotify.exe && icacls C:\Windows\System32\EOSNotify.exe /grant administrators:D
del /s C:\Windows\System32\EOSNotify.exe


Regarding the .inf file, this is easy to delete, however I was wondering if it is best to leave it on the system? Because after setting the "DiscontinueEOS" registry value I think a setting gets saved in there too, and perhaps this will help to prevent the Microsoft Windows 7 End Of Service Notifier (EOSNotify) from being activated in the future (such as if it were reinstalled by a future critical update, for example).

Of course, I also add the registry values to the Script to provide future protection against EOSNotify invokation, in addition to your command to remove the application manifest, as follows:

Code:
ECHO Removing EOSNotify system loaded module registry entry...
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners\amd64_microsoft-windows-eosnotify_31bf3856ad364e35_none_cf9552e0f1896db2 /f

ECHO Adding EOSNotify system registry entries to indicate GWX aka Get Windows 10 opt-out...
REM see KB4524752
reg add HKLM\Software\Policies\Microsoft\Windows\Gwx /v DisableGwx /t REG_DWORD /d 1 /f
reg add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v DisableOSUpgrade /t REG_DWORD /d 1 /f

ECHO Adding EOSNotify user registry entries to indicate EOSNotify aka End Of Service Notfier opt-out...
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\EOSNotify /v DiscontinueEOS /t REG_DWORD /d 1 /f
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\EOSNotify /v Discontinue /t REG_DWORD /d 1 /f


This provides protection for exisiting versions of EOSNotify nagware, but I wonder if there can be an improvement to resist future versions of the the nagware? It is unfortunate that takeown and icacls do not support wildcards, perhaps there are other commands that can be like *eosnotify_*?

All the above code snippets can simply be run inside a batch file, such as the one I have attached here.

The forums don't allow .exe to be uploaded, so you'll have to unzip this and then run the EOSNotify-Uninstall.BAT file (as an Admin).

Can I ask, does the post setup part of NTLite run the programs/batch scripts in there with Administrive privaliges?
 

Attachments

  • EOSNotify-Uninstall.zip
    2.5 KB
Hello. I just started using NTLite after not using for over ten years. I just purchased a license and hen-pecking through my first build. When I got to the Settings > Privacy > Telemetry, I had to stop and do some research. I understand what EOS is, but only partially understand what telemetry is. I assume it's a "phone home" thing? How do the two relate..? I see the tasks for EOS, but I don't understand the settings for telemetry, and it doesn't have a "Disabled" setting.
 
When I got to the Settings > Privacy > Telemetry, I had to stop and do some research. I understand what EOS is, but only partially understand what telemetry is. I assume it's a "phone home" thing? How do the two relate..? I see the tasks for EOS, but I don't understand the settings for telemetry, and it doesn't have a "Disabled" setting.
Telemetry collects your activity and send it to "home", in Win 10 is used for ads and "auto install" apps. Most of telemetry can be removed.
 
Hello. I just started using NTLite after not using for over ten years. I just purchased a license and hen-pecking through my first build. When I got to the Settings > Privacy > Telemetry, I had to stop and do some research. I understand what EOS is, but only partially understand what telemetry is. I assume it's a "phone home" thing? How do the two relate..? I see the tasks for EOS, but I don't understand the settings for telemetry, and it doesn't have a "Disabled" setting.
Hello, thanks for your support.
Here you can find info on telemetry in Windows, and yes it cannot be disabled, 0 value is for Security level.
 
Code:
@ECHO OFF
>NUL 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
IF '%errorlevel%' NEQ '0' (
GOTO UACPrompt
) ELSE ( GOTO gotAdmin )
:UACPrompt
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
ECHO UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
EXIT /B
:gotAdmin
IF EXIST "%temp%\getadmin.vbs" ( DEL "%temp%\getadmin.vbs" )
TITLE EOSNotify-Clean up  nat.ee
CLS
ECHO URL:nat.ee
ECHO yyingc-create
ECHO QQ:1800619
TIMEOUT 3 >NUL
SET winsxs=%SystemRoot%\winsxs
ECHO.
ECHO Clean up EOSNotify WinSXS...
FOR /f %%i IN ('dir /b %winsxs%\^|findstr ".*microsoft-windows-eosnotify.*"') DO (
takeown /a /r /d Y /f "%winsxs%\%%i" >NUL
icacls "%winsxs%\%%i" /T /C /grant administrators:D >NUL
ECHO deleting WinSXS
ECHO %%i
RMDIR /s /q "%winsxs%\%%i"
)
ECHO.
ECHO Clean up EOSNotify manifest...
FOR /f %%i IN ('dir /b %winsxs%\Manifests^|findstr ".*microsoft-windows-eosnotify.*\.manifest"') DO (
takeown /a /f "%winsxs%\Manifests\%%i" >NUL
icacls "%winsxs%\Manifests\%%i" /grant administrators:D >NUL
DEL /F /S /Q "%winsxs%\Manifests\%%i"
)
TIMEOUT 3 >NUL
ECHO.
ECHO delete EOSNotify Registry...
FOR /f %%i IN ('REG QUERY HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners^|findstr ".*microsoft-windows-eosnotify.*"') DO (
ECHO deleting Registry
reg delete %%i /f
)
TIMEOUT 3 >NUL
ECHO.
ECHO delete EOSNotify Tasks...
schtasks /delete /tn "\Microsoft\Windows\Setup\EOSNotify" /f
schtasks /delete /tn "\Microsoft\Windows\Setup\EOSNotify2" /f
TIMEOUT 3 >NUL
IF EXIST "%SystemRoot%\System32\EOSNotify.exe" (
ECHO.
ECHO delete EOSNotify.exe file...
taskkill /F /IM "%SystemRoot%\System32\EOSNotify.exe" 1>NUL 2>NUL
takeown /a /f "%SystemRoot%\System32\EOSNotify.exe" >NUL
icacls "%SystemRoot%\System32\EOSNotify.exe" /grant administrators:D >NUL
DEL /F /S /Q "%SystemRoot%\System32\EOSNotify.exe"
)
IF EXIST "%SystemRoot%\Migration\WTR\EOSNotifyMig.inf" (
ECHO.
ECHO delete EOSNotifyMig.inf file...
DEL /F /S /Q "%SystemRoot%\Migration\WTR\EOSNotifyMig.inf"
)
TIMEOUT 3 >NUL
ECHO.
ECHO optimization EOSNotify Registry settings...
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\SipNotify" /v "DontRemindMe" /t REG_DWORD /d "1" /f
reg add "HKLM\Software\Policies\Microsoft\Windows\Gwx" /v "DisableGwx" /t REG_DWORD /d "1" /f
reg add "HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate" /v "DisableOSUpgrade" /t REG_DWORD /d "1" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\EOSNOTIFY.EXE" /v "Debugger" /t REG_SZ /d "*" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\SIPNOTIFY.EXE" /v "Debugger" /t REG_SZ /d "*" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\EOSNotify" /v "DiscontinueEOS" /t REG_DWORD /d "1" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\EOSNotify" /v "Discontinue" /t REG_DWORD /d "1" /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\EOSNotify" /v "LastRunTimestamp" /f
TIMEOUT 3 >NUL
ECHO.
ECHO Press any key to exit……
PAUSE >NUL
EXIT
 
Code:
@ECHO OFF
>NUL 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
IF '%errorlevel%' NEQ '0' (
GOTO UACPrompt
) ELSE ( GOTO gotAdmin )
:UACPrompt
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
ECHO UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
EXIT /B
:gotAdmin
IF EXIST "%temp%\getadmin.vbs" ( DEL "%temp%\getadmin.vbs" )
TITLE EOSNotify-Clean up  nat.ee
CLS
ECHO URL:nat.ee
ECHO yyingc-create
ECHO QQ:1800619
TIMEOUT 3 >NUL
SET winsxs=%SystemRoot%\winsxs
ECHO.
ECHO Clean up EOSNotify WinSXS...
FOR /f %%i IN ('dir /b %winsxs%\^|findstr ".*microsoft-windows-eosnotify.*"') DO (
takeown /a /r /d Y /f "%winsxs%\%%i" >NUL
icacls "%winsxs%\%%i" /T /C /grant administrators:D >NUL
ECHO deleting WinSXS
ECHO %%i
RMDIR /s /q "%winsxs%\%%i"
)
ECHO.
ECHO Clean up EOSNotify manifest...
FOR /f %%i IN ('dir /b %winsxs%\Manifests^|findstr ".*microsoft-windows-eosnotify.*\.manifest"') DO (
takeown /a /f "%winsxs%\Manifests\%%i" >NUL
icacls "%winsxs%\Manifests\%%i" /grant administrators:D >NUL
DEL /F /S /Q "%winsxs%\Manifests\%%i"
)
TIMEOUT 3 >NUL
ECHO.
ECHO delete EOSNotify Registry...
FOR /f %%i IN ('REG QUERY HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners^|findstr ".*microsoft-windows-eosnotify.*"') DO (
ECHO deleting Registry
reg delete %%i /f
)
TIMEOUT 3 >NUL
ECHO.
ECHO delete EOSNotify Tasks...
schtasks /delete /tn "\Microsoft\Windows\Setup\EOSNotify" /f
schtasks /delete /tn "\Microsoft\Windows\Setup\EOSNotify2" /f
TIMEOUT 3 >NUL
IF EXIST "%SystemRoot%\System32\EOSNotify.exe" (
ECHO.
ECHO delete EOSNotify.exe file...
taskkill /F /IM "%SystemRoot%\System32\EOSNotify.exe" 1>NUL 2>NUL
takeown /a /f "%SystemRoot%\System32\EOSNotify.exe" >NUL
icacls "%SystemRoot%\System32\EOSNotify.exe" /grant administrators:D >NUL
DEL /F /S /Q "%SystemRoot%\System32\EOSNotify.exe"
)
IF EXIST "%SystemRoot%\Migration\WTR\EOSNotifyMig.inf" (
ECHO.
ECHO delete EOSNotifyMig.inf file...
DEL /F /S /Q "%SystemRoot%\Migration\WTR\EOSNotifyMig.inf"
)
TIMEOUT 3 >NUL
ECHO.
ECHO optimization EOSNotify Registry settings...
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\SipNotify" /v "DontRemindMe" /t REG_DWORD /d "1" /f
reg add "HKLM\Software\Policies\Microsoft\Windows\Gwx" /v "DisableGwx" /t REG_DWORD /d "1" /f
reg add "HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate" /v "DisableOSUpgrade" /t REG_DWORD /d "1" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\EOSNOTIFY.EXE" /v "Debugger" /t REG_SZ /d "*" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\SIPNOTIFY.EXE" /v "Debugger" /t REG_SZ /d "*" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\EOSNotify" /v "DiscontinueEOS" /t REG_DWORD /d "1" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\EOSNotify" /v "Discontinue" /t REG_DWORD /d "1" /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\EOSNotify" /v "LastRunTimestamp" /f
TIMEOUT 3 >NUL
ECHO.
ECHO Press any key to exit……
PAUSE >NUL
EXIT

anyone tested this?
 
Back
Top