Partage
  • Partager sur Facebook
  • Partager sur Twitter

supprimer les repertoires utilisteurs

par rapport à un fichier texte

    8 avril 2021 à 11:59:51

    Bonjour,

    Dans mon entreprise il faut que je trouve un moyen pour supprimer les répertoires utilisateurs qui n'existe plus dans l'AD, sur chaque pc.

    Il semblerai qu'il ne soit pas possible de questionner l'AD depuis les pc, sans installer un module powershell sur chaque pc, chose que je ne peux pas faire.

    Par contre je peux probablement créer un fichier texte sur un serveur qui aura la liste de tous les noms de compte utilisateur. A partir de là, sa devrait être possible de créer un BATCH sur les pc capable de comparer les noms des répertoires users du pc avec la liste des comptes, et de supprimer avec un NET USER USER1 /DEL, si il n'a rien trouvé dans la liste.

    Mais il me faudrait ce genre de commande : "si le nom du répertoire ne figure pas dans le fichier texte, alors supprime le." Des idées ?

    -------------------

    je cherche mais pour l'instant j'ai pas la solution complete.

    Il faudrait peute être quelque chose comme ça :

    une première boucle pour recupérer le nom des répertoire

    for /f « delims= » %%a In (‘dir /ad/b/s « c:\utilisateurs » ‘) Do (
    set supprRep=oui

    Une deuxieme boucle pour lire le fichier à chaque nouveau nom de répertoire et le nom du répertoire correspond à la ligne alors ne supprime pas
    for /f "delims=" %%i in ('type listeAD.txt') do if(%%i=%%a) alors %supprRep%=non
    if %supprRep% EQU 0ui NET USER %%a /DEL
    )

    pour l'instant je sais pas si cela fonctionne.

    J'ai vu aussi qu'en GPO on peut  supprimer en fonction du temps d'inutilisation, seulement avec les arrêts maladie longue durée qui peuvent être de plusieurs mois à plusieurs années, je ne peux pas utiliser cette fonction.

    -
    Edité par Deuvool 8 avril 2021 à 16:48:17

    • Partager sur Facebook
    • Partager sur Twitter
      9 avril 2021 à 15:52:29

      Mais quel merdier en fait. J'avance mais je vois qu'en réalité je ne peut pas supprimer les compte AD, il ne net user supprime que les comptes locaux dans le pc.

      j'ai créer un environnement de test, un répertoire qui contient des faux profils utilisateurs.

      à l’intérieur de ce répertoire test un fichier listeAD.txt, qui contient le nom des profil utilisateurs de l'AD.

      un fichier listeProfilSuppr.txt qui contiendra la liste des comptes dont il faut vider les répertoires.

      Enfin le suppr.bat qui contient ce code :

      @echo off
      setlocal ENABLEDELAYEDEXPANSION
      
      set MANUALS_PATH=C:\Users\toto\Desktop\SCRIPT\suppressionderepertoire
      del listeProfilSuppr.txt /f
      
      for /f %%a In ('dir /b /ad "%MANUALS_PATH%"') DO  (
      	set supprProfil=0
      	 for /f "delims=" %%i in ('type listeAD.txt') DO  (
      		set iSansSpace=%%i:~1,-1%
      		if %%a == %%i (
      		set /a supprProfil=!supprProfil!+1
      		)	
      	)
      	if !supprProfil! == 0 (
      		echo %%a >> listeProfilSuppr.txt
      		)
      )
      rem boucle pour vider les repertoires
      for /f "delims=" %%j in ('type listeProfilSuppr.txt') DO  (
      	echo del %MANUALS_PATH%\%%j\bureau\*.* /F
      	del %MANUALS_PATH%\%%j\bureau\*.* /F /Q
      )
      
      pause

      Sa marche presque, mais j'ai un espace à la fin des mes variables %%a %%i %%j, et je n'arrive pas les supprimer, je suis perdu avec des for le système des !nom_variable!

      Pourtant il doit y avoir une solution puisque ce script fonctionne :

      MA_VARIABLE=" tintin et milou "
      set MA_VARIABLE=%MA_VARIABLE:~1,-1%
      
      echo %MA_VARIABLE%



      -
      Edité par Deuvool 9 avril 2021 à 15:53:44

      • Partager sur Facebook
      • Partager sur Twitter
        7 juin 2021 à 14:31:17

        ok j'avance dans le projet :

        J'arrive à supprimer les répertoires grâce à cette commande, grace au lien de Zaibai :

        for /f "delims=" %%j in ('type c:\pmf\users.txt') DO  (
        	wmic /node:localhost path win32_UserProfile where LocalPath="c:\\users\\%%j" Delete 2>>c:\pmf\suppr_profil.txt
        )

        la ligne WMIC qui vaut de l'or...

        Et j'arrive a créer un fichier texte contenant la liste des utilisateurs qui on été supprimés dans l'ad avec du powershell

        import-module ActiveDirectory
        
        Get-ADUser -Filter * -SearchBase 'OU=userssuppr,OU=1,DC=2' | Select-Object name | Out-File -FilePath "C:\pmf\users.txt"



        Malheureusement,Get-ADUser -Filter *, m'affiche bien les nom des compte utilisateurs, ligne par ligne, mais avec plein d'espace après le nom de chaque compte comme ceci :

        EVELYNE          
        FRANCOISE    
        ARNAUD                   
        AMET           

        Du coup le test de chaque ligne avec une variable est forcement faussé.

        Existe il une commande powershell qui permet de récupérer les nom utilisateurs sans mettre d'espace ?

         ENFER ! il y a des nom de compte avec espace, j'ai besoin de trouver un moyen de supprimer les espaces a la fin de chaque name.

        -
        Edité par Deuvool 7 juin 2021 à 14:50:23

        • Partager sur Facebook
        • Partager sur Twitter
          7 juin 2021 à 18:56:42

          Salut,

          Pour enlever les espaces de fin :

          $string = " salut.    "
          Write-Host "'"$string"'"
          $string = $string.TrimEnd()
          Write-Host "'"$string"'"
          



          • Partager sur Facebook
          • Partager sur Twitter

          supprimer les repertoires utilisteurs

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown