✴️ 2022-08 NOTICE -- I am done with Windows, I will never be working on this project ever again 👻👻
On a Windows 10 installation, win-mt
(Windows My Tools), is a NodeJS tool that can apply tweaks/modifications to various system settings based on a config file.
More specifically :
- Can mass-disable a list of Services ( also can mass-enable, display state information on services )
- Can disable Tasks from the Task Scheduler
- Can apply Group Policy Modifications
- Can apply general tweaks by writing to the Windows Registry
- Can also run commands for other Windows Tweaks.
- All the modifications/tweaks are defined in a human readable/editable
config.ini
file. So you can alter/add your own modifications easily
-
Currently
win-mt
comes with a curated config file, that includes my own set of things to alter. You can easily modify the config and make it your own, with your own set of services and tasks etc. to disable and tweaks to apply. -
The included curated config file is meant to work for WINDOWS 10 LTSC (1809)
-
Needs NodeJS to run. (https://nodejs.org)
-
☢️ This is an advanced tool ☣️ - Meant for power users who know what they are doing.
-
⚠️ USE AT YOUR OWN RISK⚠️ - I am not responsible if your system crashes or stops working.
Displaying information on the service group "user"
I wanted a quick way to apply a set of settings that I was doing by hand every time I did a fresh Windows installation. So I gathered (mostly) all of the things that I would do into a single convenient tool. The reason this is not a batch file, is because in some cases I wanted better logic in some operations. Like when disabling a service, if it fails to do it one way, the program will do it another way. Also I am comfortable with both HAXE and NodeJS . Plus I can get better and more colorful output to the Terminal with NodeJS 😺
This tool is not meant for mass-consumption, I know that this is a very niche thing. Perhaps it will help someone coming from google that wants to find a quick way to mass disable services, who knows.
First of all, win-mt
can only run with administrator privileges. It will warn you about it.
win-mt
currently has two main ACTIONS. Working with SERVICES and applying all the TWEAKS at once. So if you want to apply the tweaks and disable the service blocklist, you need to run this twice 😐
This is a multi action. With this you can [enable/disable/display information] a group of services.
The groups for services you can work with are:
all
: meaning the ENTIRETY of system services, (except Driver/Kernel Services). This is mostly when you want to mass-enable or display informationblocklist
: This is the curated service blocklist that you can find inconfig.ini
. I want these services disabled on my systemuser
: These are all the USER TYPE services.{group}
: If you define a custom key in theconfig.ini
file under theservices
section, you can operate on the group by just calling the group name. Examplenode winmt serv bluetooth disable
> will act on the list of services with the key namebluetooth
.
After setting the group name, you need to specify an operation
-
enable
: Sets the services to "DEMAND" mode and tries to START them. -
disable
: Sets the services to "DISABLED" mode and tries to STOP them. -
info
: Displays Information on the services, does not alter anything. It shows the running status of the services. When usinginfo
you can specify some additional options.-id
: Display the ID string of the Services also-sort
: Sort the order of the info bystate
(running or not) or bytype
(user service, win32shared, etc)
Example
node winmt serv all info -sort state
> will display the status of ALL services sorted by running state.
This will apply all the settings/tweaks that are defined in config.ini
under the [tweaks]
section. A curated list of :
- Group Policy Settings
- Task Scheduler Tasks to Disable
- Registry tweaks
- Commands
Consult config.ini
to see what exactly.
To run just do node winmt tweaks
WINMT, uses the sc
windows command to manipulate the state of services,
so it will do a sc stop {serviceID}
to stop a service and sc config $ID start= disabled
to disable it.
HOWEVER, if a service cannot be stopped with sc
then it will try to disable a service by writing to the Registry
and modifying the service START
value e.g. HKLM\\SYSTEM\\CurrentControlSet\\Services\\SEVICE_ID Start = 4
I could not find a better way to alter the Group Policy, so win-mt
alters the values by writing to the Windows Registry,
it seems to work, so I am sticking with it.
To disable Tasks win-mt
uses the schtasks
windows command, and more specifically
it calls schtasks /change /tn TASK_PATH /disable
to every Task on the list.
Every Tweak and List win-mt
reads from the config.ini
file. It is documented so I think you should be able to edit this to your liking.
Requires:
- General HAXE knowledge, how to build, install a haxelib
- HAXE 4.1.5
- djNode 0.6.2, installed as a haxelib. https://github.com/john32b/djNode
- Download the tag zip directly from here
- Install the
.zip
file withhaxelib install djNode-0.6.2.zip
- hxnodejs. https://github.com/HaxeFoundation/hxnodejs
To build:
haxe build.hxml
This will generate
winmt.js
in the bin folder
Author : John32B - Project started: 2020/10 - Tools : Haxe Built to nodeJS