Fonctions avancées de WPKG
Gestion des fichiers et dossiers

Action | Commandes
| Explication des commutateurs |
Supprimer un fichier | cmd='%ComSpec% /C del /f /q “chemin_vers_fichier” '
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” '
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'
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'
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
| Contenu du fichier |
Fusionner un fichier .reg dans la base de registre | cmd='regedit /s “chemin du fichier .reg”'
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”'
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 :
<!-- création du compte défini au dessus avec mot de passe defini au dessus -->
<install cmd='cmd /c net user login pass /add' />
Les différentes options de net user sont :
/passwordchg:yes
/expires:never
/active:yes
/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
<!-- on ajoute le compte crée au groupe administrateurs -->
<install cmd='cmd /c net localgroup administrateurs login /add' />
Modification d'un mot de passe d'un utilisateur local
<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.
c:\> cacls
Affiche ou modifie les listes de contrôle d'accès (ACL) des fichiers
CACLS nom_de_fichier [/T] [/E] [/C] [/G util:perm] [/R util [...]]
[/P util:perm [...]] [/D util [...]]
nom_de_fichier Affiche les ACL.
/T Modifie les ACL des fichiers spécifiés dans le répertoire en cours et tous les sous-répertoires.
/E Edite l'ACL au lieu de la remplacer.
/C Continue la modification des ACL en ignorant les erreurs.
/G util:perm Donne l'utilisateur spécifié les droits d'accès.
Perm peut être : R Lecture
W Ecriture
C Modification (en écriture)
F Contrôle total
/R util Retire les droits d'accès de l'utilisateur (avec /E).
/P util:perm Remplace les droits d'accès de l'utilisateur spécifié.
Perm peut être : N Aucun
R Lecture
W Ecriture
C Modification (en écriture)
F Contrôle total
/D util Refuse l'accès à l'utilisateur spécifié.
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.
Abréviations :
CI - Héritage de conteneur (Container Inherit).
Les répertoires héritent de l'entrée de contrôle d'accès.
OI - Héritage d'objet (Object Inherit).
Les fichiers héritent de l'entrée de contrôle d'accès.
IO - Héritage uniquement (Inherit Only).
L'entrée de contrôle d'accès ne s'applique pas au fichier ou
répertoire en cours.
c:\>
Exemple de commande CACLS
Cette commande permet de rendre le dossier c:\mondossier\ en lecture/écriture pour tous les utilisateurs du domaine :
<install cmd='cmd /c cacls c:\mondossier /E /G DomainUsers:W' />
Si la commande est trop longue, il faudra rediriger la sortie vers NUL.
<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 !