Optimize-Offline Guide - Windows Debloating Tool, Windows 1803, 1903, 19H2, 1909, 20H1 and LTSC 2019

Discussion in 'Windows 10' started by KedarWolf, Jul 30, 2019.

  1. Markuzz

    Markuzz MDL Novice

    Feb 8, 2020
    15
    6
    0
    I need a little help please.
    I started out with Win10 LTSC 2019 build 17763.1, updated with W10UI v10.9f to build 2183 with the latest hotfix from September.

    Using @gdeliana O-O fork (4.0.1.9-b5) I'm trying to populate all packages template with the relative command
    Code:
    ./Start-Optimize populateLists
    but then, what I found afterward is that WindowsAppsTemplate.json is empty.
    All Templates are populated, just the WindowsApps are missing.

    Is this a normal behaviour? I ask because I was trying to search for MS Paint Desktop App and could not find it anywhere.
     
  2. strotee

    strotee MDL Member

    Jan 30, 2011
    229
    204
    10
    I may be wrong, but this 'issue' is related to using LTSC. I'm a full-time LTSC user myself and never had the option of Windows Apps being used, only SAC populates Windows Apps.
     
  3. Markuzz

    Markuzz MDL Novice

    Feb 8, 2020
    15
    6
    0
    Thanks for your reply, then may I ask you how do you set-up LTSC after Optimize-Offline?
    It was my intention to get rid off of Notepad, Wordpad, Paint, Windows Photo Viewer and replace them with Notepad++, MPC-HC and FastStone Image Viewer through the CustomAppAssociations.xml of O-O. I mean, I can always install them of course, but I just wanted to know what level of control I have over LTSC with Optimize-Offline without breaking it.
     
  4. zbigniew59

    zbigniew59 MDL Senior Member

    May 14, 2016
    374
    171
    10
  5. spanishfly

    spanishfly MDL Senior Member

    Dec 5, 2018
    352
    527
    10
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  6. gdeliana

    gdeliana MDL Senior Member

    Oct 2, 2010
    363
    410
    10
    #1326 gdeliana, Sep 21, 2021
    Last edited: Sep 22, 2021
    Hello guys,

    Sorry for not posting before, have been a bit busy.

    Have made already the disable services list feature and seems to be working. Haven't tested yet in W11 though. Also have merged the changes of @GodHand from 4.0.1.9. Will make an official release soon.

    The services work like this:
    • Set the Services parameter in configuration.json: List
    • Use populateLists to get the available services - However in the template you will find not only pure windows services but also drivers. This is because the registry folder of services contains subfolders of service+other stuff(drivers etc.) I have done what i could to filter out as much as possible non service related entries, but still some remain there. If anyone has a better method to get the services in a wim file then let me know pls. :)
    • Copy the service names from /Content/Lists/Services/ServicesTemplate.json -> /Content/Lists/Services/ServicesList.json
    • When you use the Advanced mode, you will be able to specify the start behavior of each service. To do this, copy the object
      Code:
      {
           name: [SERVICE_DISPLAYNAME],
           start: [0,1,2,3,4],
           description?: [optional, not used in the code, but just you to know what are the services you included]
      }
      from /Content/Lists/Services/ServicesTemplate.json -> /Content/Lists/Services/ServicesAdvanced.json and also in configuration.json set Services: Advanced
    As you can see the principle is the same like the other removal lists.

    Give feedback, also for W11, and soon will make a release :)

    Thanks to @spanishfly for his idea, actually he gave me this neat idea and code related help. @KedarWolf for suggestions and feedback. @drew84 also for code related help :)
    And of course @GodHand for his magnificent tool :)
     
  7. gdeliana

    gdeliana MDL Senior Member

    Oct 2, 2010
    363
    410
    10
    Well this is strange behaviour, although i must say that haven't tested with LTSC 2019 build 17763.1. Will give it a try when i find the time this week and see what i can debug :)
     
  8. Markuzz

    Markuzz MDL Novice

    Feb 8, 2020
    15
    6
    0
    Thank you very much, I really appreciate it!
     
  9. zbigniew59

    zbigniew59 MDL Senior Member

    May 14, 2016
    374
    171
    10
    Or maybe LTSC doesn't have WindowsApps?
    Why is the templatelist empty?
     
  10. strotee

    strotee MDL Member

    Jan 30, 2011
    229
    204
    10
    My guess is because we're supposed to run populatelists and it will populate it for you. There's no easy way for the dev to guess as to what you're using (LTSC, 20H1, 21H2, etc) so he puts that responsibility on the users' shoulders.
     
  11. Markuzz

    Markuzz MDL Novice

    Feb 8, 2020
    15
    6
    0
    I researched a little about it, LTSC does not have the Store App by default, and so there are not any UWP apps installed.
    I think now it makes sense that the WindowsAppsTemplate.json is empty, isn't it?
     
  12. zbigniew59

    zbigniew59 MDL Senior Member

    May 14, 2016
    374
    171
    10
    Sorry, it was supposed to be - ltsc doesn't have WindowsApps - so the list is empty.
     
  13. zbigniew59

    zbigniew59 MDL Senior Member

    May 14, 2016
    374
    171
    10
    #1334 zbigniew59, Sep 24, 2021
    Last edited: Sep 25, 2021
    delete
     
  14. drew84

    drew84 MDL Expert

    Mar 13, 2014
    1,351
    2,307
    60
  15. geepnozeex

    geepnozeex MDL Junior Member

    Oct 21, 2014
    69
    63
    0
    #1337 geepnozeex, Sep 26, 2021
    Last edited: Sep 26, 2021
    hello.
    you have a method to remove ContentDeliveryManager from the mounted image?
    if so, which command?
    Windows 11
     
  16. yes drew84 have but from my scripting code. if he can share it with you.
    pl be sure about win10 edition version & its build before executing the script as it works only from LTSC 2019 till Latest 19044.
    for win11 ie fake win10 theres another script too to remove systemapps.
     
  17. spanishfly

    spanishfly MDL Senior Member

    Dec 5, 2018
    352
    527
    10
    #1339 spanishfly, Sep 27, 2021
    Last edited: Sep 27, 2021
    Tested the new services disable feature on Windows 10 and it works great!
    I especially like that it shows in the log file what you've removed!
    Code:
    [INFO]: Modifying windows service: TabletInputService, Start: Disabled
    [INFO]: Modifying windows service: WSearch, Start: Disabled
    [INFO]: Modifying windows service: CDPSvc, Start: Disabled
    . . .  etc . . ..
    ======================
    I saw you added the ability to disable hardware checks when installing Windows 11 on unsuproted devices. I haven't tested that out yet, but it sounds environmentally useful at stopping e-waste!

    ======================
    I re-wrote your description of the new Services feature (for my benefit), but I'm putting what I wrote here since maybe it's useful for you to use some of it when you have the time to update your fork's ReadMe
    Code:
    == Services Template ==
    Use populateLists feature to assign your images available services to ServicesTemplate.json
        Some filtering out of non-service related entries is complete in the provided ServicesTemplate.json, but each OS requires more filtering.   
       
    == List ==
    Set the Services parameter in configuration.json: List
    Assigns the start behavior of the services listed in ServicesList.json to "Disabled"
        For Services you want to disable, copy the service object "name" . . .
        . . . from     /Content/Lists/Services/ServicesTemplate.json -> /Content/Lists/Services/ServicesList.json
        Alternatively, if you already have a list of services you know you want to disable, add their names following the pattern seen in the provided example ServicesList.json
    
    == Advanced==
    Set the Services parameter in configuration.json: Advanced
    Useful for specifying any type of start behavior (including "4" "Disabled") to the services listed in ServicesAdvanced.json
        Specify the start behavior of each service by copying the object . . .
            Code:
            {
                name: [SERVICE_DISPLAYNAME],
                start: [0,1,2,3,4],
                description?: [optional, not used in the code, but just for you to know more about the services you're including]
            }
        . . . from /Content/Lists/Services/ServicesTemplate.json -> /Content/Lists/Services/ServicesAdvanced.json
    
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  18. spanishfly

    spanishfly MDL Senior Member

    Dec 5, 2018
    352
    527
    10
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...