Markdown and syntax corrections

This commit is contained in:
Yorick Barbanneau 2018-05-02 21:15:21 +02:00
parent 6b55544443
commit d4e384be68

162
README.md
View file

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