247 lines
8.7 KiB
Markdown
247 lines
8.7 KiB
Markdown
Clean Win10
|
|
===========
|
|
|
|
CleanW10 est un script powershell pour rendre Windows plus respectueux de la
|
|
vie privée de son|ses utilisateur(s) - Utilisatrice(s). Il réalise tout un tas
|
|
d'actions afin de désactiver, supprimer, modifier des composant du système et
|
|
applications tierces.
|
|
|
|
Ce script est avant tout destiné aux utilisateurs avancés, il réalise beaucoup
|
|
d'actions normalement réservées aux GPO (version pro et entreprise de Windows
|
|
mais accessible) via la base de registre, ou autre (désactivation de
|
|
services par exemple)
|
|
|
|
# Actions réalisées
|
|
|
|
CleanW10 réalise beaucoup d'actions, en voici une liste non exhaustive :
|
|
|
|
* Désinstallation d'applications universelles (ModernApp) pour l'utilisateur
|
|
et en version provisionnée. Attention, **Windows Store sera aussi supprimé**.
|
|
* Blocage d'applications dans le pare-feu Windows (explorer, Cortana,
|
|
Edge). Attention, **vous ne pourrez plus utiliser Edge**.
|
|
* Blocage d'adresse IP Microsoft connue pour récolter des données de
|
|
télémétrie. Attention, des IP utilisées pour **Skype et Outlook** seront
|
|
bloquées.
|
|
* Blocage de noms de domaine appartenant à Microsoft connus pour récolter des
|
|
données
|
|
* Désintallation de OneDrive
|
|
* Désactivation des comptes Microsoft. Attention, si vous utilisew des
|
|
comptes Microsoft sous Windows 10, **transformez-le en compte local AVANT de
|
|
lancer CleanW10**.
|
|
* Désactivation des droits pour les applications (caméra, localisation,
|
|
synchronisation des contacts / calendriers etc.)
|
|
* Désactivation des services relatifs aux données personnelles / de
|
|
télémétrie.
|
|
* Supression des tâches planifiées problématiques pour les données
|
|
personelles
|
|
|
|
# Lancer le CleanW10
|
|
|
|
Par défaut, Windows n'autorise pas l'execution de script powershell non signé
|
|
ou dont il ne connait pas la signature. Pour exécuter ce script, Il est donc
|
|
conseillé d'exécuter la commande suivante dans une fenêtre powershell en mode
|
|
administrateur :
|
|
|
|
```
|
|
Set-ExecutionPolicy unrestricted
|
|
```
|
|
|
|
Vous pouvez cependant lancer ``launcher.cmd`` en tant qu'administrateur.Il se
|
|
chargera de basculer la politique de sécurité relative à powershell, de lancer
|
|
CleanW10 puis de la remettre à son état initial.
|
|
|
|
## Options de la ligne de commande
|
|
|
|
voici les options du script en ligne de commande :
|
|
|
|
```
|
|
CleanW10.ps1 -module <path> -dir <path> -debug
|
|
```
|
|
|
|
### -module
|
|
|
|
Avec cette option vous pouvez executer un seul module. Le parametre est suivi
|
|
par le chemin complet du fichier module.
|
|
|
|
### -dir
|
|
|
|
Cette option donne le chemin complet vers le répertoire contenant les modules à
|
|
executer, par défaut ``./modules.d/``. Elle est imcompatible avec ``-module``
|
|
|
|
### -debug
|
|
|
|
Affiche des information de debug en plus des messages relatifs au script. Il y
|
|
en a très peu (pour le moment)
|
|
|
|
# Comment ça marche?
|
|
|
|
Le script fonctionne à partir de modules sous forme de fichiers écrits en JSON.
|
|
Un module contient un ensemble d'actions à réaliser ainsi que leurs paramètres.
|
|
Voici un exemple de fichier module :
|
|
|
|
```JSON
|
|
{
|
|
"name" : "Block Telemetry IPs",
|
|
"description" : "Block IPs relative to Microsoft telemery.",
|
|
"actions" :
|
|
[
|
|
{
|
|
"_comment" : "Block telemetry IPS",
|
|
"action" : "FwBlockOutputIP",
|
|
"file" : "telemetry.txt"
|
|
},
|
|
{
|
|
"_comment" : "Block IP relative to Skype and Messenger",
|
|
"action" : "FwBlockOutputIP",
|
|
"file" : "skype-msn.txt"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Chaque module contient un nom (``name``), une description (``description``) et
|
|
une série d'actions à réaliser (``actions``).
|
|
|
|
uen action contient une action à réaliser (ici ``FwBlockOutputIP``),
|
|
éventuellement un commentaire (``_comment``) puis un ou plusieurs paramètre(s)
|
|
en fonction de l'action. Voici une liste des actions disponibles :
|
|
|
|
## Liste des actions
|
|
|
|
### BlockHost
|
|
|
|
Bloque un ou plusieurs nom(s) d'hôte via le fichier hosts, les paramètres de ce
|
|
module sont :
|
|
|
|
* ``host`` : nom d'hote à bloquer
|
|
* ``file`` : nom du fichier contenant une adresse IP par ligne pour un
|
|
traitement par lots. Voir la section [#fichiers-externes](fichiers)
|
|
* ``firewall`` [Booléen] : Bloque la ou les adresse(s) IP relative au nom
|
|
d'hôte par le module FwBlockOutputIP
|
|
|
|
Activer ce paramètre permet de bloquer par le firewall certains hôtes pour
|
|
lesquels Windows ne prends pas en compte le fichier hosts.
|
|
|
|
### FwBlockOutputIP
|
|
|
|
Bloque une ou plusieurs adresse(s) IP, les paramètres relatifs à ce module
|
|
sont :
|
|
|
|
* ``ip`` : adresse IP à bloquer
|
|
* ``file`` : nom du fichier contenant une adresse IP par ligne pour un
|
|
traitement par lot. Voir la section [#fichiers-externes](fichiers)
|
|
|
|
|
|
### FwBlockProgram
|
|
|
|
Bloque un ou plusieurs programme(s) dans le pare-feu, les paramètres relatifs à
|
|
ce module sont :
|
|
|
|
* ``name`` : ce paramètre est utilisé pour créer le nom de la règle du
|
|
pare-feu Windows - facultatif, utilise le chemin complet si absent
|
|
* ``path`` : chemin complet vers l'exécutable à bloquer.
|
|
* ``file`` : nom du fichier contenant un chemin par ligne pour un traitement
|
|
par lot. Voir la section [#fichiers-externes](fichiers)
|
|
|
|
|
|
### AddRegKey
|
|
|
|
Ajoute ou modifie une clé de registre. Si une clé concerne l'utilisateur
|
|
courant (HKCU) alors la clé sera ajoutée / modifiée pour tous les utilisateurs
|
|
mais aussi sur le gabarit de registre pour la création d'utilisateurs. Les
|
|
paramètres sont :
|
|
|
|
* ``path`` : chemin vers la clé
|
|
* ``key`` : la clé
|
|
* ``value`` : la nouvelle valeur - facultatif
|
|
* ``type`` : le type de valeur (DWord QWord, Multistring ...) - facutlatif,
|
|
DWord par défaut
|
|
|
|
### DelRegKey
|
|
|
|
Supprime une clé de registre, les mêmes actions que pour ``AddRegKey`` seront
|
|
réalisées si la clé concerne HKCU. Les paramètres sont :
|
|
* ``path`` : chemin vers la clé
|
|
* ``key`` : clé à supprimer.
|
|
|
|
### UninstallModernApp
|
|
|
|
Désintalle une ou plusiers application(s) universelle(s), les paramètres sont :
|
|
|
|
* ``name`` : nom de l'application à désintaller
|
|
* ``removeProvisionned`` [Booléen] : supprimer aussi des application
|
|
provisionnées (que le système réinstallera pour tout nouvel utilisateur créé)
|
|
* ``file`` : nom du fichier contenant un nom d' application par ligne pour un
|
|
traitement par lots. Voir la section [#fichiers-externes](fichiers)
|
|
|
|
### DisableService
|
|
|
|
Désactive un service, les paramètres sont :
|
|
|
|
* ``name`` : nom du service à désactiver
|
|
* ``userService`` [Booléen] : service est lancé en mode utilisateur. Pour
|
|
désactiver la création du service par utilisateur, la clé de registre
|
|
``userServiceFlag`` sera modifiée.
|
|
* ``file`` : nom du fichier contenant un nom de service par ligne pour un
|
|
traitement par lots. Voir la section [#fichiers-externes](fichiers)
|
|
|
|
### RemoveSchedukedTask
|
|
|
|
Désactive une tâche planifiés, les paramètres sont :
|
|
|
|
* ``name`` : nom de la tache planifiée
|
|
* ``path`` : chemin de la tache planifiée - facultatif
|
|
* ``file`` : nom du fichier contenant un nom de tâche par ligne pour un
|
|
traitement par lots. Voir la section [#fichiers-externes](fichiers)
|
|
|
|
## DisableFeature
|
|
|
|
Désactive une fonctionnalité de Windows (accessible via dism.exe) les paramètres
|
|
sont :
|
|
|
|
* ``name`` : nom de la fonctionnalité
|
|
* ``file`` : nom du fichier contenant un nom de fonctionnalité par ligne pour
|
|
un traitement par lot. Voir la section [#fichiers-externes](fichiers)
|
|
|
|
### KillProcess
|
|
|
|
Tue un processus, le paramètre est :
|
|
|
|
* ``name`` : nom du processus à tuer
|
|
|
|
### DelFile
|
|
|
|
Supprime un fichier / dossier, les parametres sont :
|
|
|
|
* ``path`` : chemin du fichier / dossier à supprimer
|
|
* ``recurse``[Booléen] : supprimmer de manière récursive. - facultatif
|
|
|
|
### ExecCommand
|
|
|
|
Executer un commande, les parametres sont :
|
|
|
|
* ``path`` : chemin vers l'exécutable. Celui-ci peut contenur des variables
|
|
d'environnement powershell comme par exemple ``"$env:systemroot\``, Si la
|
|
* ``arguments`` : liste des arguments
|
|
|
|
## Fichiers externes
|
|
|
|
Pour certaines actions il est possible de charger un fichier externe pour du
|
|
traitement par lots. Ce peut être le cas pour ``BlockHost`` par exemple. Il
|
|
faut alors renseigner le paramètre ``file`` dans l'action correspondante avec
|
|
le nom du fichier à charger, Celui-ci decra se trouver **obligatoirement** dans
|
|
un sous-dossier portant le même nom que le fichier module.
|
|
|
|
Prenom l'exemple du module FW_Hosts.conf, il contient l'action ``BlockHost``
|
|
avec commr paramètre ``file`` hosts.txt, voici donc l'arborescence obtenue :
|
|
|
|
```
|
|
modules.d\FW_Hosts\hosts.txt
|
|
modules.d\FW_Hosts.conf
|
|
```
|
|
|
|
# Licence
|
|
|
|
Ce script est disponible sous licence Beeware : utilisez, copiez, modifiez,
|
|
redistribuez comme ça vous chante. Et offrez-moi une bière si l'on se recontre
|
|
un de ces 4 (et si ça vous chante).
|