It just disables activation, no need to activate, windows will say "Activation status unavailable" and you will be able to receive updates. No loaders needed or anything else.
Yay! I think this might take off as quite a viable solution. There are a few bugs but seeing as it works I don't want to change the formula
Hazar Plse note that Win update with error code " 80070005 " is still there while log on R2 std the next day.
Ayup, just try run Windows Update in R2 and get that error. But also found fix. 1) Uninstall Disabler 2) Run Manual Windows Update Scan (no need to install anything) 3) Re-Install Disabler 4) Now it works. Someone else want to test this. On first Windows Update connection SPPSVC is needed and some files are downloaded into "C:\Windows\SoftwareDistribution".
Mr Jinje did the manual win update before & after applying the disabler, It works fine. But win update is found having the error code on second day boot up. just tried UR suggestion and tested win update without any problem. Thx
R2 only is fully Debugged I fixed a bunch of errors. Minor typo in one of the services, removed duplicate take ownership of sppsvc.exe. Added taking ownership of all needed file, this fixes the down the road error of dll's not getting rename, in last step. Think I added a missing icacls command or two. This batch file is R2 only. Could not determine what errors were real until I removed all the vista junk. Code: SET SYSPATH=%SYSTEMROOT%\System32 sc config sppuinotify start= Demand sc config sppsvc start= Demand net stop sppuinotify net stop sppsvc REG DELETE "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Activation" /v Schedule /f REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Activation" /v ActivationInterval /t REG_DWORD /d 00000000 /f REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Activation" /v NotificationDisabled /t REG_DWORD /d 00000001 /f takeown /F "%SYSPATH%\sppsvc.exe" takeown /F "%SYSPATH%\SLUI.exe" takeown /F "%SYSPATH%\sppcc.dll" takeown /F "%SYSPATH%\sppcomapi.dll" takeown /F "%SYSPATH%\sppcommdlg.dll" icacls %SYSPATH%\sppcc.dll /grant administrators:F icacls %SYSPATH%\sppcomapi.dll /grant administrators:F icacls %SYSPATH%\sppcommdlg.dll /grant administrators:F icacls %SYSPATH%\SLUI.exe /deny SYSTEM:F icacls %SYSPATH%\sppsvc.exe /deny SYSTEM:F icacls %SYSPATH%\sppsvc.exe /deny "NETWORK SERVICE":F icacls %SYSPATH%\SLUI.exe /deny "NETWORK SERVICE":F ren %SYSPATH%\sppcc.dll sppcc.dll.bak ren %SYSPATH%\sppcomapi.dll sppcomapi.dll.bak ren %SYSPATH%\sppcommdlg.dll sppcommdlg.dll.bak PAUSE Have uninstall + re-install in powershell GUI if any want look at sources. R2_Activation_Disabler.ps1 Code: function R2_Activation_Disabler { #region Import the Assemblies [reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null [reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null #endregion #region Generated Form Objects $form1 = New-Object System.Windows.Forms.Form $button3 = New-Object System.Windows.Forms.Button $button2 = New-Object System.Windows.Forms.Button $button1 = New-Object System.Windows.Forms.Button $InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState #endregion Generated Form Objects #---------------------------------------------- #Generated Event Script Blocks #---------------------------------------------- $handler_form1_Load= { } $handler_button1_Click= { sc.exe config sppuinotify start= Demand sc.exe config sppsvc start= Demand net stop sppuinotify net stop sppsvc REG DELETE "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Activation" /v Schedule /f REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Activation" /v ActivationInterval /t REG_DWORD /d 00000000 /f REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Activation" /v NotificationDisabled /t REG_DWORD /d 00000001 /f takeown /F "C:\Windows\System32\sppsvc.exe" takeown /F "C:\Windows\System32\SLUI.exe" takeown /F "C:\Windows\System32\sppcc.dll" takeown /F "C:\Windows\System32\sppcomapi.dll" takeown /F "C:\Windows\System32\sppcommdlg.dll" icacls C:\Windows\System32\sppcc.dll /grant administrators:F icacls C:\Windows\System32\sppcomapi.dll /grant administrators:F icacls C:\Windows\System32\sppcommdlg.dll /grant administrators:F icacls C:\Windows\System32\SLUI.exe /deny SYSTEM:F icacls C:\Windows\System32\sppsvc.exe /deny SYSTEM:F icacls C:\Windows\System32\sppsvc.exe /deny *s-1-5-20:F icacls C:\Windows\System32\SLUI.exe /deny *s-1-5-20:F ren C:\Windows\System32\sppcc.dll sppcc.dll.bak ren C:\Windows\System32\sppcomapi.dll sppcomapi.dll.bak ren C:\Windows\System32\sppcommdlg.dll sppcommdlg.dll.bak } $handler_button2_Click= { sc.exe config sluinotify start= Demand sc.exe config sppsvc start= auto icacls C:\Windows\System32\SLUI.exe /grant SYSTEM:F icacls C:\Windows\System32\sppsvc.exe /grant SYSTEM:F icacls C:\Windows\System32\sppsvc.exe /grant *s-1-5-20:F icacls C:\Windows\System32\SLUI.exe /grant *s-1-5-20:F ren C:\Windows\System32\sppcc.dll.bak sppcc.dll ren C:\Windows\System32\sppcomapi.dll.bak sppcomapi.dll ren C:\Windows\System32\sppcommdlg.dll.bak sppcommdlg.dll net start sppsvc } $handler_button3_Click= { SLMGR.VBS -dli } $OnLoadForm_StateCorrection= {#Correct the initial state of the form to prevent the .Net maximized form issue $form1.WindowState = $InitialFormWindowState } #---------------------------------------------- #region Generated Form Code $form1.Text = "R2 Activation Disabler" $form1.Name = "form1" $form1.DataBindings.DefaultDataSourceUpdateMode = 0 $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Width = 212 $System_Drawing_Size.Height = 176 $form1.ClientSize = $System_Drawing_Size $form1.add_Load($handler_form1_Load) $button3.TabIndex = 2 $button3.Name = "button3" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Width = 140 $System_Drawing_Size.Height = 35 $button3.Size = $System_Drawing_Size $button3.UseVisualStyleBackColor = $True $button3.Text = "Verify" $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 36 $System_Drawing_Point.Y = 114 $button3.Location = $System_Drawing_Point $button3.DataBindings.DefaultDataSourceUpdateMode = 0 $button3.add_Click($handler_button3_Click) $form1.Controls.Add($button3) $button2.TabIndex = 1 $button2.Name = "button2" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Width = 140 $System_Drawing_Size.Height = 35 $button2.Size = $System_Drawing_Size $button2.UseVisualStyleBackColor = $True $button2.Text = "Enable Activation" $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 36 $System_Drawing_Point.Y = 71 $button2.Location = $System_Drawing_Point $button2.DataBindings.DefaultDataSourceUpdateMode = 0 $button2.add_Click($handler_button2_Click) $form1.Controls.Add($button2) $button1.TabIndex = 0 $button1.Name = "button1" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Width = 140 $System_Drawing_Size.Height = 35 $button1.Size = $System_Drawing_Size $button1.UseVisualStyleBackColor = $True $button1.Text = "Disable Activation" $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 36 $System_Drawing_Point.Y = 28 $button1.Location = $System_Drawing_Point $button1.DataBindings.DefaultDataSourceUpdateMode = 0 $button1.add_Click($handler_button1_Click) $form1.Controls.Add($button1) #endregion Generated Form Code #Save the initial state of the form $InitialFormWindowState = $form1.WindowState #Init the OnLoad event to correct the initial state of the form $form1.add_Load($OnLoadForm_StateCorrection) #Show the Form $form1.ShowDialog()| Out-Null } #End Function R2_Activation_Disabler
I know about the icacls errors, but I did not want to change the formula incase making those work broke it or something
Hazar why did you put the code to remove the activation reg folder? I think that in timenuker it wasn't needed...
It does not remove the whole reg folder, it just alters some values to stop the system trying to activate all the time, and deletes the scheduler value to kill the internal timer.
No services are "killed", some files are renamed and denied access so they cannot start. This gives Windows the impression that there has been no tampering, but stops the services. If you outright disable them Windows realizes it is under attack and goes nuts.
i think that there are some services that must be disabled to disable activation what are the services that must be disabled?
i think that microsoft can't stop it right?now you will tell me that they can but they have to release an update via windows update every week to cancel this and i think that this way is the best because it doesn't slow the startup
well thing is it is virtuall impossible for MS to stop this as it hijacks the OS! It denys the system from accessing or modifying some of its own files, so an update can't patch it!