From b09942d53aeecd075e1f1cdb9b7e3db75767fed7 Mon Sep 17 00:00:00 2001 From: whatever127 <46111995+whatever127@users.noreply.github.com> Date: Sun, 22 Dec 2019 18:11:59 +0100 Subject: [PATCH] Initial commit --- LICENSE | 21 +++++++ OfflineInsiderEnroll.cmd | 124 +++++++++++++++++++++++++++++++++++++++ readme.md | 45 ++++++++++++++ 3 files changed, 190 insertions(+) create mode 100644 LICENSE create mode 100644 OfflineInsiderEnroll.cmd create mode 100644 readme.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0557511 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 whatever127 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/OfflineInsiderEnroll.cmd b/OfflineInsiderEnroll.cmd new file mode 100644 index 0000000..b946dc7 --- /dev/null +++ b/OfflineInsiderEnroll.cmd @@ -0,0 +1,124 @@ +@echo off + +::Borrowed from @abbodi1406's scripts +for /f "tokens=6 delims=[]. " %%i in ('ver') do set build=%%i + +if %build% LSS 17763 ( + echo ============================================================= + echo This script is compatible only with Windows 10 RS5 and later. + echo ============================================================= + echo. + pause + goto :EOF +) + +REG QUERY HKU\S-1-5-19\Environment >NUL 2>&1 +IF %ERRORLEVEL% EQU 0 goto :START_SCRIPT + +echo ===================================================== +echo This script needs to be executed as an administrator. +echo ===================================================== +echo. +pause +goto :EOF + +:START_SCRIPT +set "FlightSigningEnabled=0" +bcdedit /enum {current} | findstr /I /R /C:"^flightsigning *Yes$" >NUL 2>&1 +IF %ERRORLEVEL% EQU 0 set "FlightSigningEnabled=1" + +:CHOICE_MENU +cls +set "choice=" +echo OfflineInsiderEnroll v1.0.0 +echo. +echo R - Enroll to Release Preview ring +echo S - Enroll to Insider Slow ring +echo F - Enroll to Insider Fast ring +echo. +echo X - Stop receiving Insider Preview builds +echo Q - Quit without making any changes +echo. +set /p choice="Choice: " +echo. +if /I "[%choice%]"=="[r]" goto :ENROLL_RP +if /I "[%choice%]"=="[s]" goto :ENROLL_SLOW +if /I "[%choice%]"=="[f]" goto :ENROLL_FAST +if /I "[%choice%]"=="[x]" goto :STOP_INSIDER +if /I "[%choice%]"=="[q]" goto :EOF +goto :CHOICE_MENU + +:ENROLL_RP +set "SLS=RingPreview" +set "Ring=RP" +set "Content=Current" +set "FancyRing=Release Preview" +goto :ENROLL + +:ENROLL_SLOW +set "SLS=RingInsiderSlow" +set "Ring=WIS" +set "Content=Active" +set "FancyRing=Windows Insider Slow" +goto :ENROLL + +:ENROLL_FAST +set "SLS=RingInsiderFast" +set "Ring=WIF" +set "Content=Active" +set "FancyRing=Windows Insider Fast" +goto :ENROLL + +:RESET_INSIDER_CONFIG +reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost" /f >NUL 2>&1 +reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SLS\Programs\WUMUDCat" /f >NUL 2>&1 +reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SLS\Programs\RingPreview" /f >NUL 2>&1 +reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SLS\Programs\RingInsiderSlow" /f >NUL 2>&1 +reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SLS\Programs\RingInsiderFast" /f >NUL 2>&1 +reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" /v AllowTelemetry /f >NUL 2>&1 +goto :EOF + +:ENROLL +echo Applying changes... +call :RESET_INSIDER_CONFIG +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Orchestrator" /t REG_DWORD /v EnableUUPScan /d 1 /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SLS\Programs\%SLS%" /t REG_DWORD /v Enabled /d 1 /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SLS\Programs\WUMUDCat" /t REG_DWORD /v WUMUDCATEnabled /d 1 /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\Applicability" /t REG_DWORD /v EnablePreviewBuilds /d 1 /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\Applicability" /t REG_DWORD /v IsBuildFlightingEnabled /d 1 /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\Applicability" /t REG_DWORD /v TestFlags /d 32 /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\Applicability" /t REG_SZ /v ContentType /d "%Content%" /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\Applicability" /t REG_SZ /v BranchName /d "external" /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\Applicability" /t REG_SZ /v Ring /d "%Ring%" /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\UI\Strings" /t REG_SZ /v StickyXaml /d "This device has been enrolled to the Windows Insider program using a OfflineInsiderEnroll script. If you want to change settings of the enrollment or stop receiving Insider Preview builds, please use the script. Learn more %FancyRing%" /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\UI\Visibility" /t REG_DWORD /v UIHiddenElements /d 65535 /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\UI\Visibility" /t REG_DWORD /v UIDisabledElements /d 65535 /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\UI\Visibility" /t REG_DWORD /v UIServiceDrivenElementVisibility /d 0 /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\UI\Visibility" /t REG_DWORD /v UIErrorMessageVisibility /d 192 /f >NUL 2>&1 +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" /t REG_DWORD /v AllowTelemetry /d 3 /f >NUL 2>&1 + +bcdedit /set {current} flightsigning yes >NUL 2>&1 +echo Done. + +echo. +IF %FlightSigningEnabled% NEQ 1 goto :ASK_FOR_REBOOT +pause +goto :EOF + +:STOP_INSIDER +echo Applying changes... +call :RESET_INSIDER_CONFIG +bcdedit /deletevalue {current} flightsigning >NUL 2>&1 +echo Done. + +echo. +IF %FlightSigningEnabled% NEQ 0 goto :ASK_FOR_REBOOT +pause +goto :EOF + +:ASK_FOR_REBOOT +set "choice=" +echo A reboot is required to finish applying changes. +set /p choice="Would you like to reboot your PC? (y/N) " +if /I "[%choice%]"=="[y]" shutdown -r -t 0 +goto :EOF diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..0a630b0 --- /dev/null +++ b/readme.md @@ -0,0 +1,45 @@ +OfflineInsiderEnroll +-------------------- + +### Description +OfflineInsiderEnroll is a simple Windows Command Prompt script to enable access +to the Windows Insider Program on machines not signed in with Microsoft Account. + +This script is compatible only with Windows 10 RS5 and later. + +### Usage +This script requires administrative priviliges to run. You can simply execute it +by right clicking it > `Run as Administrator`. + +#### Installation and configuration changes +After starting the script offers selection of *Windows Insider Program* rings. +To make a selection, press a letter coresponding to option you choose and press +ENTER. + +If the machine was not enrolled to the Insider Program, you will get prompted to +restart your machine to enable *Microsoft Flight Signing* which is required by +*Windows Insider Program*. + +**Notice:** Windows Insider Program requires telemetry to be set to *Full*. +This script changes your telemetry settings to reflect this during the process +of enabling *Windows Insider Program* access. If you have used any "privacy" +scripts or changed *Allow telemetry* via Group Policy, changes made by this +script may not get reflected and you may not be able to receive *Insider +Preview* builds using Windows Update. + +#### Restoring Windows Insider Program to default options +To restore *Windows Insider Program* to default settings simply choose `Stop +receiving Insider Preview builds` in OfflineInsiderEnroll. You will get prompted +to reboot, because this option will disable *Microsoft Flight Signing*. + +### How does this work? +This script takes advantage of undocumented `TestFlags` registry value. +If this value is set to `0x20`, all access to online *Windows Insider* services +gets disabled. Because of this, we can set our own *Windows Insider Preview* +configuration without being overriden by the contact to the service. Since +Windows Update does not check if machine is actually enrolled to the program, +you will get offered *Insider Preview* builds by just setting correct values in +the registry. + +### License +This project is licensed under the MIT License. See `LICENSE` for details.