-1
votes

Fichier de commandes pour supprimer C: \ Utilisateurs \ * Nom * Sauf pour les dossiers spécifiés

J'essaie d'écrire un fichier de commandes pour supprimer tous les dossiers dans C: \ utilisateurs à quelques exceptions près.

scénario: Nous avons plusieurs ordinateurs partagés dans une bibliothèque que les utilisateurs peuvent se connecter et ne jamais utiliser à nouveau. Cela remplit souvent le C: \ Drive avec des profils utilisateur.

Je voudrais supprimer tous les dossiers de C: \ utilisateurs, sauf c: \ users \ defaultUser0 et c: \ utilisateurs \ publics.

Espérons que cela a du sens? J'ai vu d'autres questions / réponses, mais ils spécifient seulement comment spécifier 1 dossier. De plus, je suis au courant de Delprof comme nous l'utilisons dans d'autres applications, mais je voudrais écrire mon propre fichier afin que je puisse modifier cela pour cette affaire.


2 commentaires

Commencez ici: Stackoverflow.com/Questtions/16078421/...


Simplement enlever les annuaires n'est pas la bonne façon d'effectuer cette tâche. Il y aura toujours des informations sur ces profils détenus dans le système, alors que vous puissiez libérer de l'espace disque dur que vous aurez encore beaucoup, maintenant invalide, des références aux emplacements qui n'existent plus. Vous avez mentionné dans votre question l'ancien utilitaire Delprof et peut, sauf si vous utilisez Windows 10, préférez le non officiel DelProf2 utilitaire, qui est scriptable et ignore les profils spéciaux et dispose également d'options d'exclusion des profils nommés.


4 Réponses :


0
votes

Vous semblez mal comprendre ce qui est un ussurofile et quels utilisateurs sont les utilisateurs. Même si vous supprimez leur dossier de C: \ username \ nom d'utilisateur code>, Toujours des informations seront conservées comme mentionnées par Compo ici , par exemple Dans certains programmes, vous avez installé dans C: \ Program Files * \ * code>, dans c: \ windows \ * code>, e.t.c. L'info ne sera pas perdue forte> si vous supprimez simplement le répertoire Ussurofile.

Cependant, pour obtenir ce que vous voulez, bien que cela ne soit pas recommandé pour Messing Up em> Votre système, utilisez (Exécuter avec des privilèges d'administration): P>

@echo off
setlocal EnableDelayedExpansion

set exclude_list="defaultuser0" "public"

for /F "delims= eol=" %%A IN ('dir /B /AD "C:\Users\"') do (
    if "!exclude_list:%%A=!" == "%exclude_list%" (net user %%~nxA /delete)
)


0 commentaires

2
votes

Si vous vouliez toujours supprimer les répertoires, contre ma recommandation em>, je suggère d'utiliser wmic code> comme ceci, à partir d'un fichier de commandes:

@For /F Tokens^=2^Delims^=^" %%A In ('WMIC Path Win32_UserProfile Where^
 "Special!='True' And LocalPath Is Not Null" Assoc^
 /AssocClass:Win32_UserAccount 2^>Nul')Do @For /F "Tokens=1*Delims==" %%B In ('
    WMIC UserAccount Where^
 "SID='%%A' And LocalAccount='TRUE' And Name!='defaultuser0'" Get Name /Value^
 2^>Nul')Do @For /F Tokens^=* %%D In ("%%C")Do @Net User "%%D" /Delete


0 commentaires

-1
votes

Vous pouvez sauvegarder les dossiers à conserver, supprimer tous les dossiers, puis déplacez enfin les dossiers de sauvegarde à l'emplacement, voici un exemple: xxx

s'il dit Accès refusé < / code> puis essayez d'exécuter en tant qu'administrateur.


1 commentaires

Déplacer tous ces dossiers gâchera le système et il est pas suggéré.



0
votes

TL; DR:
wmic /namespace:\\root\cimv2 path win32_userprofile where "SID LIKE 'S-1-5-21%' AND NOT LocalPath LIKE '%-Admin' AND NOT LocalPath LIKE '%\\ToolBox'" delete


0 commentaires