J'essaie d'écrire un fichier de commandes pour supprimer tous les dossiers dans C: \ utilisateurs à quelques exceptions près. P>
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. P>
Je voudrais supprimer tous les dossiers de C: \ utilisateurs, sauf c: \ users \ defaultUser0 et c: \ utilisateurs \ publics. p>
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. P>
4 Réponses :
Vous semblez mal comprendre ce qui est un ussurofile et quels utilisateurs sont les utilisateurs. Même si vous supprimez leur dossier de 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> 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
@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)
)
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
Vous pouvez sauvegarder les dossiers à conserver, supprimer tous les dossiers, puis déplacez enfin les dossiers de sauvegarde à l'emplacement, voici un exemple: s'il dit Accès refusé < / code> puis essayez d'exécuter en tant qu'administrateur. p> p>
Déplacer tous ces dossiers gâchera le système et il est pas i> b> suggéré.
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
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.