Fonctions avancées de WPKG

Gestion des fichiers et dossiers

Action

Commandes

« Exemple »

Explication des commutateurs

Supprimer un fichier

cmd='%ComSpec% /C del /f /q “chemin_vers_fichier” '

« Exemple » : suppression du fichier wpkg.xml du disque local

cmd='%ComSpec% /C del /f /q ”%SYSTEMROOT%\system32\wpkg.xml” '

/C → ferme après exécution

/f → même en lecture seule

/q → mode silencieux

Supprimer un dossier

cmd='%ComSpec% /C rmdir /S /Q “chemin vers dossier” '

« Exemple » : Supprimer le dossier Audacity de C:\Program Files\ :

cmd='%ComSpec% /C rmdir /S /Q ”%PROGRAMFILES%\Audacity” '

/S → récursif (y compris les sous répertoires)

/Q → sans confirmation

Copier un fichier

cmd='%ComSpec% /C copy “chemin du fichier source” “chemin vers destination” /Y'

« Exemple » : Copier le fichier Lame_enc.dll vers le dossier C:\Program Files\Audacity\ :

cmd='%ComSpec% /C copy ”%SOFTWARE%\audacity\lame_enc.dll” ”%PROGRAMFILES\Audacity\” /Y'

/Y → sans confirmation

Copier un dossier

cmd='%ComSpec% /C xcopy “chemin du dossier source\* ” “chemin du dossier de destination\” /S /E/ /Y /Q /R'

« Exemple » : Copier le contenu du dossier ooohg dans la gallerie d'OpenOffice.org :

cmd='%ComSpec% /C xcopy ”%SOFTWARE%\ooohg\*” ”%PROGRAMFILES%\OpenOffice.org 3\Basis\share\gallery\” /S /E /Y /Q /R'

/E → récursif y compris les répertoires vides

/R → remplace les fichiers en lecture seule

Conseil

Pour trouver la signification des commutateurs, lancer une fenêtre DOS (Démarrer→ Exécuter → saisir cmd ) puis saisir la commande suivie de espace /?

Exemple : xcopy /?

Gestion de la base de registre

Action

Commandes

« Exemple »

Contenu du fichier

Fusionner un fichier .reg dans la base de registre

cmd='regedit /s “chemin du fichier .reg”'

« Exemple » : ajouter une police de caractère au disque local

cmd='regedit /s ”%SOFTWARE%\Fonts\ajout-fonts.reg”'

Contenu de ajout-fonts.reg :

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]

“Bestioles (TrueType)”=“Bestioles.TTF”

“Century Gothic Normal (TrueType)”=“GOTHIC.TTF”

“Cornerstone Regular (TrueType)”=“Cornerstone.TTF”

“PlumBAL (TrueType)”=“PLUMBAL.TTF”

Exécuter un fichier .bat

cmd='“chemin du fichier .bat”'

« Exemple » : ajouter une police de caractère au disque local

cmd='”%SOFTWARE%\Fonts\ajout-fonts.bat”'

Contenu de ajout-fonts.bat :

%COMSPEC% /c copy /Y ”%SOFTWARE%\Fonts\*.TTF” ”%WINDIR%\Fonts\

“regedit /s ”%SOFTWARE%\Fonts\ajout-fonts.reg”

Gestion des utilisateurs locaux

Il est possible d'ajouter des utilisateurs locaux via WPKG. Une fois cela fait, il est très facile de mettre à jour le mot de passe pour ne plus autoriser les personnes à se connecter.

On va utiliser la commande DOS : « net user ».

Création d'un compte local :

1
<!-- création du compte défini au dessus avec mot de passe defini au dessus -->    
2
<install cmd='cmd /c net user login pass /add' />

Les différentes options de net user sont :

1
/passwordchg:yes
2
/expires:never
3
/active:yes
4
/passwordchg:no

Remarque

D'après le CG69, il semble qu'il faille mettre la possibilité de modifier le mot de passe (/passwordchg:yes) puis les autres options, et enfin, remodifer l'option de mot de passe si besoin. Sans quoi, certaines options ne sont pas prises en compte.

Création d'un administrateur local

1
<!-- on ajoute le compte crée au groupe administrateurs -->
2
<install cmd='cmd /c net localgroup administrateurs login /add' />

Modification d'un mot de passe d'un utilisateur local

1
<install cmd='cmd /c net user login nouveaumotdepasse' />

Conseil

L'idée sera d'utiliser des variables pour simplifier la lecture des fichiers XML.

Gestion des ACLS Windows

On peut aussi modifier des droits (ACL) sur des fichiers. Pour cela, on peut utiliser la commande CACLS.

1
c:\> cacls
2
Affiche ou modifie les listes de contrôle d'accès (ACL) des fichiers
3
4
CACLS nom_de_fichier [/T] [/E] [/C] [/G util:perm] [/R util [...]]
5
                     [/P util:perm [...]] [/D util [...]]
6
   nom_de_fichier  Affiche les ACL.
7
   /T              Modifie les ACL des fichiers spécifiés dans le répertoire en cours et tous les sous-répertoires.
8
   /E              Edite l'ACL au lieu de la remplacer.
9
   /C              Continue la modification des ACL en ignorant les erreurs.
10
   /G util:perm    Donne  l'utilisateur spécifié les droits d'accès.
11
                   Perm peut être : R  Lecture
12
                                    W  Ecriture
13
                                    C  Modification (en écriture)
14
                                    F  Contrôle total
15
   /R util         Retire les droits d'accès de l'utilisateur (avec /E).
16
   /P util:perm    Remplace les droits d'accès de l'utilisateur spécifié.
17
                   Perm peut être : N  Aucun
18
                                    R  Lecture
19
                                    W  Ecriture
20
                                    C  Modification (en écriture)
21
                                    F  Contrôle total
22
   /D util         Refuse l'accès à l'utilisateur spécifié.
23
Des caractères génériques peuvent être utilisés pour préciser plusieurs fichiers dans une commande. Vous pouvez spécifier plus d'un utilisateur dans une commande.
24
25
Abréviations :
26
   CI - Héritage de conteneur (Container Inherit).
27
        Les répertoires héritent de l'entrée de contrôle d'accès.
28
   OI - Héritage d'objet (Object Inherit).
29
        Les fichiers héritent de l'entrée de contrôle d'accès.
30
   IO - Héritage uniquement (Inherit Only).
31
        L'entrée de contrôle d'accès ne s'applique pas au fichier ou
32
        répertoire en cours.
33
34
c:\>

Exemple de commande CACLS

Cette commande permet de rendre le dossier c:\mondossier\ en lecture/écriture pour tous les utilisateurs du domaine :

1
<install cmd='cmd /c cacls c:\mondossier /E /G DomainUsers:W' />

Si la commande est trop longue, il faudra rediriger la sortie vers NUL.

1
<install cmd='cmd /c cacls c:\mondossier /E /G "Tout le monde":W >nul' />

Attention

Ces 2 exemples n'ont pas été réellement testés !