IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Total des fichiers supprimés


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Par défaut Total des fichiers supprimés
    Bonjour à tous,

    Je suis à la recherche d'une solution pour connaitre la taille des fichiers que je supprime à la volé. En effet je suis sur la création d'une script powershell qui me permet de supprimer tout les caches de mes navigateurs via une petite application graphique via les Form et différents boutons mais je n'arrive pas a savoir quel taille je supprime.

    Pourriez vous m'aider SVP?

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Pose ton code de suppression stp

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Par défaut
    Bonjour,

    Voici une partie de mon code qui supprime les caches d'Internet Explorer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    
    [void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
    #[assembly:System::Diagnostics::DebuggableAttribute(true, true)];
    [void][System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
    
    $MainForm.StartPosition = "CenterScreen"
    $MainForm.Text = "Nettoyage cache Navigateur"
    $MainForm.Width = 420
    $MainForm.Height = 282
    
    
    $Button_IE = New-Object System.Windows.Forms.Button
    $Button_IE.Text = " Nettoyage Internet Explorer "
    $Button_IE.Location = ‘270,50’
    $Button_IE.Width = 100
    $Button_IE.Height = 50
    $MainForm.Add($Button_IE)
    
    
    $Button_IE.Add_click(
    {
    # Définition de la police d'exectution
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
    "-------------------"
    Write-Host -ForegroundColor Green "SECTION 1: Obtention de la liste des utilisateurs"
    "-------------------"
    
    Write-Host -ForegroundColor yellow "Export de la liste des utilisateurs vers C:\temp\utilisateurs.csv"
    
        # Énumérer les utilisateurs dans C:\temp et exporter en .csv pour les appeler plus tard
        dir C:\Users | select Name | Export-Csv -Path C:\temp\utilisateurs.csv -NoTypeInformation
        $list=Test-Path C:\temp\utilisateurs.csv
        ""
    
        "-------------------"
        Write-Host -ForegroundColor Green "SECTION 5: Suppression des caches Internet Explorer"
        "-------------------"
        Write-Host -ForegroundColor yellow "Suppression des caches IE"
        Write-Host -ForegroundColor cyan
        Import-CSV -Path C:\temp\utilisateurs.csv | foreach {
                Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files\*" -Recurse -Force -EA SilentlyContinue -Verbose
    	        Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\WER\*" -Recurse -Force -EA SilentlyContinue -Verbose
    	        Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Temp\*" -Recurse -Force -EA SilentlyContinue -Verbose
    	        Remove-Item -path "C:\Windows\Temp\*" -Recurse -Force -EA SilentlyContinue -Verbose
    	        Remove-Item -path "C:\`$recycle.bin\" -Recurse -Force -EA SilentlyContinue -Verbose
                }
        Write-Host -ForegroundColor yellow "Fin suppression des caches Internet Explorer"
        Write-Host -ForegroundColor yellow "C'est fait..."
        
        #Action lors de la fin du script.
        Remove-Item "c:\temp\utilisateurs.csv" 
        Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
        [System.Windows.Forms.MessageBox]::Show("C'est fait...", "Fin suppression des caches Internet Explorer", 0)
        ""
        })
    $MainForm.ShowDialog()

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Ok.

    Soit tu compte la taille des dossiers avant suppression et après puis tu calcule le delta. Dans ce cas tu devra tolérer que certains fichier on peut être été écrit pendant ton traitement et d'autres effacés par des applications. Ce qui te donnera une taille approximative de ce que tu as effacé.

    Soit tu supprime chaque fichier un par un et tu l'ajoute à ta taille des fichier supprimer totale, tu compte au fur et à mesure en fait. Tu aura la taille exacte de ce que tu as supprimé dans ce cas (en gérant les cas d'erreur bien sûr).

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 105
    Par défaut
    Bonjour,

    Tu pourrais ajouter une ligne du genre avant chaque suppression:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [PS] E:\Home\aepli\Documents> $size = 0 ; Get-ChildItem -LiteralPath 'C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files' -Recurse -Force | Where-Object {$PSItem -is [System.IO.FileInfo]} | ForEach-Object
     {$size += $PSItem.Length}; "{0} Mo" -f ($size / 1MB)
    Évidemment la dernière commande ("{0} Mo" -f ($size / 1MB)) est superflue et est présente uniquement pour afficher le résultat dans une invite de commandes PowerShell.
    Et ne pas oublier d'adapter le chemin.

    Par contre je te conseil de mettre cela dans une fonction, se sera un peu plus propre.
    Voici un rapide exemple à retravailler bien sûr:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function Get-Size {
        param(
            [String]$Path
        )
    
        $size = 0
        if (Test-Path -LiteralPath $Path) {
            $allFiles = Get-ChildItem -LiteralPath $Path -Recurse -Force
            foreach ($file in $allFiles) {
                if ($file -is [System.IO.FileInfo]) {
                    $size += $file.Length
                }
            }
        }
        return $size
    }
    Pour l'appel: $size = Get-Size -Path 'C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files'

    Comme tu as une série de chemins, tu devrais les définir dans un tableau, puis les parcourir à l'aide d'une boucle (par exemple: foreach).

    Salutations.

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Par défaut
    Merci pour cette bien précieuse

    Par contre quand je fait write-host de $size il me met toujours un décompte à 0

    Il est fort possible que j'ai mal placé ta solution mais là je ne vois pas ou la mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    $Button_IE.Add_click(
    {
    # Définition de la police d'exectution
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
    "-------------------"
    Write-Host -ForegroundColor Green "SECTION 1: Obtention de la liste des utilisateurs"
    "-------------------"
    
    Write-Host -ForegroundColor yellow "Export de la liste des utilisateurs vers C:\temp\utilisateurs.csv"
    
        # Énumérer les utilisateurs dans C:\temp et exporter en .csv pour les appeler plus tard
        dir C:\Users | select Name | Export-Csv -Path C:\temp\utilisateurs.csv -NoTypeInformation
        $list=Test-Path C:\temp\utilisateurs.csv
        ""
    
        "-------------------"
        Write-Host -ForegroundColor Green "SECTION 5: Suppression des caches Internet Explorer"
        "-------------------"
        Write-Host -ForegroundColor yellow "Suppression des caches IE"
        Write-Host -ForegroundColor cyan
        Import-CSV -Path C:\temp\utilisateurs.csv | foreach {
                $size = 0
                Get-ChildItem -LiteralPath "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files" -Recurse -Force -EA SilentlyContinue -Verbose
                Where-Object {$PSItem -is [System.IO.FileInfo]} 
                ForEach-Object  {$size += $PSItem.Length}; 
                Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files\*" -Recurse -Force -EA SilentlyContinue -Verbose
    
                $size = 0
                Get-ChildItem -LiteralPath "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\WER\" -Recurse -Force -EA SilentlyContinue -Verbose
                Where-Object {$PSItem -is [System.IO.FileInfo]} 
                ForEach-Object  {$size += $PSItem.Length}; 
    	        Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\WER\*" -Recurse -Force -EA SilentlyContinue -Verbose
                
                $size = 0
                Get-ChildItem -LiteralPath "C:\Users\$($_.Name)\AppData\Local\Temp\" -Recurse -Force -EA SilentlyContinue -Verbose
                Where-Object {$PSItem -is [System.IO.FileInfo]} 
                ForEach-Object  {$size += $PSItem.Length}; 
                Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Temp\*" -Recurse -Force -EA SilentlyContinue -Verbose
    
                $size = 0
                Get-ChildItem -LiteralPath "C:\Windows\Temp\" -Recurse -Force -EA SilentlyContinue -Verbose
                Where-Object {$PSItem -is [System.IO.FileInfo]} 
                ForEach-Object  {$size += $PSItem.Length}; 
    	        Remove-Item -path "C:\Windows\Temp\*" -Recurse -Force -EA SilentlyContinue -Verbose
    
                #$size = 0
                #Get-ChildItem -LiteralPath "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files" -Recurse -Force
                #Where-Object {$PSItem -is [System.IO.FileInfo]} 
                #ForEach-Object  {$size += $PSItem.Length}; 
    	        #Remove-Item -path "C:\`$recycle.bin\" -Recurse -Force -EA SilentlyContinue -Verbose
    
                }
        Write-Host -ForegroundColor yellow "Fin suppression des caches Internet Explorer"
        Write-Host -ForegroundColor yellow "C'est fait..."
        Write-Host "La taile total des fichiers supprimé est de "
    
        #Action lors de la fin du script.
        Remove-Item "c:\temp\utilisateurs.csv" 
        Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
        [System.Windows.Forms.MessageBox]::Show("C'est fait...", "Fin suppression des caches Internet Explorer", 0)
        ""
        })

  7. #7
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Ou comme ceci
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $path = "MonDossier"
    $size = [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force | Measure-Object -Sum Length).Sum

  8. #8
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Pour info, tu es au courant que tu peut faire comme ceci pour traiter tous les profils d'un coup ?

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Remove-Item -path "C:\Users\*\AppData\Local\Microsoft\Windows\Temporary Internet Files\*" -Recurse -Force -EA SilentlyContinue -Verbose

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 105
    Par défaut
    Bonjour,

    Citation Envoyé par ericlm128 Voir le message
    Ou comme ceci
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $path = "MonDossier"
    $size = [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force | Measure-Object -Sum Length).Sum
    Excellent, je ne connaissais pas ce paramètre "-File" de la commande Get-ChildItem.
    Effectivement c'est plus simple surtout couplé avec Measure-Object. ^^

    Citation Envoyé par mavric35830 Voir le message
    Merci pour cette bien précieuse

    Par contre quand je fait write-host de $size il me met toujours un décompte à 0

    Il est fort possible que j'ai mal placé ta solution mais là je ne vois pas ou la mettre
    Que tu utilises la solution de ericlm128 ou la mienne, nous avons chaîné plusieurs commandes à l'aide de la barre verticale ou du "pipe" (|), s'il est omis le script aura un autre comportement!

    Je te conseil de remplacer les lignes:
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $size = 0
    Get-ChildItem -LiteralPath "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files" -Recurse -Force -EA SilentlyContinue -Verbose
    Where-Object {$PSItem -is [System.IO.FileInfo]} 
    ForEach-Object  {$size += $PSItem.Length}; 
    Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files\*" -Recurse -Force -EA SilentlyContinue -Verbose
    par
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $Path = "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files"
    $size = [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force | Measure-Object -Sum Length).Sum
    Remove-Item -path "$($Path)\*" -Recurse -Force -EA SilentlyContinue -Verbose
    Write-Host -Object ("{0} Mo" -f ($size / 1MB))

    Salutations.
    PS: Il semblerait que pour nettoyer tous tes fichiers temporaires un seul chemin suffise, consulte la deuxième proposition de ericlm128.
    RePS: Par contre tu ne devras plus utiliser le paramètre -LiteralPath mais le paramètre -Path, qui accepte les chemin avec des caractères de substitution (*).

  10. #10
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    @mavric35830
    Ton problème n'aurait pas un rapport avec le fait que tu remet constamment a 0 $size ?

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Par défaut
    Bonjour,

    Citation Envoyé par ericlm128
    Ton problème n'aurait pas un rapport avec le fait que tu remet constamment a 0 $size ?
    Oui tu as raison c'est le faite que je remette mon $size à 0


    Intéressant par contre mon petit soucis c'est que je souhaiterais connaitre la taille total de tout se que mon script efface.
    Alors, je me suis dit que si je renommais chaque ligne part une variable différentes et que je fasse le calcule que chaque sous variable cela me donnerais la taille total
    Et bien je me suis loupé
    pour information voici se que j'ai pondu
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    $Button_IE.Add_click(
    {
    # Définition de la police d'exectution
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
    "-------------------"
    Write-Host -ForegroundColor Green "SECTION 1: Obtention de la liste des utilisateurs"
    "-------------------"
     
    Write-Host -ForegroundColor yellow "Export de la liste des utilisateurs vers C:\temp\utilisateurs.csv"
     
        # Énumérer les utilisateurs dans C:\temp et exporter en .csv pour les appeler plus tard
        dir C:\Users | select Name | Export-Csv -Path C:\temp\utilisateurs.csv -NoTypeInformation
        $list=Test-Path C:\temp\utilisateurs.csv
        ""
     
        "-------------------"
        Write-Host -ForegroundColor Green "SECTION 5: Suppression des caches Internet Explorer"
        "-------------------"
        Write-Host -ForegroundColor yellow "Suppression des caches IE"
        Write-Host -ForegroundColor cyan
        Import-CSV -Path C:\temp\utilisateurs.csv | foreach {
                $Path = "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files"
                $size_TIF = [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
                Remove-Item -path "$($Path)\*" -Recurse -Force -EA SilentlyContinue -Verbose
     
                #Write-Host -Object ("{0} Mo" -f ($size_TIF / 1MB))
     
                $Path = "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\WER\"
                $size_WER = [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
                Remove-Item -path "$($Path)\*" -Recurse -Force -EA SilentlyContinue -Verbose
                #Write-Host -Object ("{0} Mo" -f ($size_WER / 1MB))
     
                $Path = "C:\Users\$($_.Name)\AppData\Local\Temp\"
                $size_Loc_TMP = [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
                Remove-Item -path "$($Path)\*" -Recurse -Force -EA SilentlyContinue -Verbose
                #Write-Host -Object ("{0} Mo" -f ($size_Loc_TMP / 1MB))
     
                $Path = "C:\Windows\Temp\"
                $size_WIN_TMP = [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
                Remove-Item -path "$($Path)\*" -Recurse -Force -EA SilentlyContinue -Verbose
                Write-Host -Object ("{0:N3} Mo" -f ($size_WIN_TMP / 1MB))
     
                $size = $size_TIF + $size_WER + $size_Loc_TMP + $size_WIN_TMP
     
                }
        Write-Host -ForegroundColor yellow "Fin suppression des caches Internet Explorer"
        Write-Host -ForegroundColor yellow "C'est fait..."
        Write-Host "La taile total des fichiers supprimé est de "
        Write-Host -Object ("{0:N3} Mo" -f ($size / 1MB))

    Mais cela ne fonctionne pas car les variables se réinitialisent a chaque fois dans le foreach et je n'ai pas bien compris se qu'ils me disent sur le net

  12. #12
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Et comme ceci ?

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    "-------------------"
    Write-Host -ForegroundColor Green "SECTION 1: Obtention de la liste des utilisateurs"
    "-------------------"
     
    Write-Host -ForegroundColor yellow "Export de la liste des utilisateurs vers C:\temp\utilisateurs.csv"
     
    # Énumérer les utilisateurs dans C:\temp et exporter en .csv pour les appeler plus tard
    Get-ChildItem -LiteralPath "C:\Users" | select Name | Export-Csv -Path "C:\temp\utilisateurs.csv" -NoTypeInformation
     
    "-------------------"
    Write-Host -ForegroundColor Green "SECTION 5: Suppression des caches Internet Explorer"
    "-------------------"
    Write-Host -ForegroundColor yellow "Suppression des caches IE"
    Write-Host -ForegroundColor cyan
    [long] $size = 0
    Import-CSV -Path C:\temp\utilisateurs.csv | foreach {
    		$Path = "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files\*"
    		$size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    		Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    		$Path = "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\WER\*"
    		$size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    		Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    		$Path = "C:\Users\$($_.Name)\AppData\Local\Temp\*"
    		$size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    		Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    		}
     
    $Path = "C:\Windows\Temp\*"
    $size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    Write-Host -ForegroundColor yellow "Fin suppression des caches Internet Explorer"
    Write-Host -ForegroundColor yellow "C'est fait..."
    Write-Host "La taile total des fichiers supprimé est de $("{0:N3} Mo" -f ($size / 1MB))"

  13. #13
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Par défaut
    oui cela pourrait fonctionner mais j'ai une petite erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    applet de commande ForEach-Object à la position 2 du pipeline de la commande
    Fournissez des valeurs pour les paramètres suivants*:
    Process[0]*:

  14. #14
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    J'ai essayé comme ceci, le code ci-dessous fonctionne pour moi.
    Je n'avait pas testé le précédent, c'était l'idée qui comptait


    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    "-------------------"
    Write-Host -ForegroundColor Green "SECTION 1: Obtention de la liste des utilisateurs"
    "-------------------"
     
    Write-Host -ForegroundColor yellow "Export de la liste des utilisateurs vers C:\temp\utilisateurs.csv"
     
    # Énumérer les utilisateurs dans C:\temp et exporter en .csv pour les appeler plus tard
    Get-ChildItem -LiteralPath "C:\Users" | select Name | Export-Csv -Path "C:\temp\utilisateurs.csv" -NoTypeInformation -Force
     
    "-------------------"
    Write-Host -ForegroundColor Green "SECTION 5: Suppression des caches Internet Explorer"
    "-------------------"
    Write-Host -ForegroundColor yellow "Suppression des caches IE"
    Write-Host -ForegroundColor cyan
    [long] $size = 0
    Import-CSV -Path "C:\temp\utilisateurs.csv" | foreach {
    		$Path = "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files\*"
    		$size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    		Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    		$Path = "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\WER\*"
    		$size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    		Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    		$Path = "C:\Users\$($_.Name)\AppData\Local\Temp\*"
    		$size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    		Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    		}
     
    $Path = "C:\Windows\Temp\*"
    $size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    Write-Host -ForegroundColor yellow "Fin suppression des caches Internet Explorer"
    Write-Host -ForegroundColor yellow "C'est fait..."
    Write-Host "La taile total des fichiers supprimé est de $("{0:N3} Mo" -f ($size / 1MB))"

  15. #15
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Par défaut
    c'est bizarre car cher moi cela ne fonctionne pas.
    Enfin si il supprime bien les fichiers par contre j'ai un total des fichiers égal à zero. Or dans le dossier c:\windows\temp j'avais mis une image ISO d'environ 1Go donc normalement j'aurais dut avoir au moins 1Go pour la variable $size

  16. #16
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Et bien effectivement c'est bizarre. As tu créée un script avec uniquement le code donné pour tester ?

  17. #17
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Par défaut
    J'ai bien fait un copier/coller des lignes que tu m'a donné et j'ai toujours un total de 0 (zero)
    pour information voici le code
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    $Button_IE.Add_click(
    {
    # Définition de la police d'exectution
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
    "-------------------"
    Write-Host -ForegroundColor Green "SECTION 1: Obtention de la liste des utilisateurs"
    "-------------------"
     
    Write-Host -ForegroundColor yellow "Export de la liste des utilisateurs vers C:\temp\utilisateurs.csv"
     
    # Énumérer les utilisateurs dans C:\temp et exporter en .csv pour les appeler plus tard
    Get-ChildItem -LiteralPath "C:\Users" | select Name | Export-Csv -Path "C:\temp\utilisateurs.csv" -NoTypeInformation -Force
     
    "-------------------"
    Write-Host -ForegroundColor Green "SECTION 5: Suppression des caches Internet Explorer"
    "-------------------"
    Write-Host -ForegroundColor yellow "Suppression des caches IE"
    Write-Host -ForegroundColor cyan
    [long] $size = 0
    Import-CSV -Path "C:\temp\utilisateurs.csv" | foreach {
    		$Path = "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files\*"
    		$size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    		Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    		$Path = "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\WER\*"
    		$size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    		Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    		$Path = "C:\Users\$($_.Name)\AppData\Local\Temp\*"
    		$size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    		Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    		}
     
    $Path = "C:\Windows\Temp\*"
    $size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose
     
    Write-Host -ForegroundColor yellow "Fin suppression des caches Internet Explorer"
    Write-Host -ForegroundColor yellow "C'est fait..."
    Write-Host "La taile total des fichiers supprimé est de $("{0:N3} Mo" -f ($size / 1MB))"
     
     
        #Action lors de la fin du script.
        Remove-Item "c:\temp\utilisateurs.csv" 
        Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
        [System.Windows.Forms.MessageBox]::Show("C'est fait...", "Fin suppression des caches Internet Explorer", 0)
        ""
        })

  18. #18
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Par défaut
    Finalement en tâtonnant un peu, j'ai trouvé. J'ai simplement retiré les * devant tout les chemins

    AVANT
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Path = "C:\Users\$($_.Name)\AppData\Local\Temp\*"
    		$size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    		Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose

    APRES

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Path = "C:\Users\$($_.Name)\AppData\Local\Temp\"
    		$size += [long](Get-ChildItem -LiteralPath $Path -File -Recurse -Force -EA SilentlyContinue| Measure-Object -Sum Length).Sum
    		Remove-Item -Path $Path -Recurse -Force -EA SilentlyContinue -Verbose

  19. #19
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Peut être du as une différence de version de Powershell.
    As ces language trop permissif.

  20. #20
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Par défaut
    Citation Envoyé par ericlm128
    Peut être du as une différence de version de Powershell.
    As ces language trop permissif.
    Oui c'est bien possible

    Bon je vais dire pour IE c'est OK. J'ai adapter le script pour Chrome par contre pour FireFox c'est un peu plus compliqué et là je sèche complètement
    Voici se que j'ai déja.

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    $Button_firefox.Add_click(
    {
    # Définition de la police d'exectution
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
    "-------------------"
    Write-Host -ForegroundColor Green "SECTION 1: Obtention de la liste des utilisateurs"
    "-------------------"
     
    Write-Host -ForegroundColor yellow "Export de la liste des utilisateurs vers C:\temp\utilisateurs.csv"
     
        # Énumérer les utilisateurs dans C:\temp et exporter en .csv pour les appeler plus tard
        dir C:\Users | select Name | Export-Csv -Path C:\temp\utilisateurs.csv -NoTypeInformation
        $list=Test-Path C:\temp\utilisateurs.csv
        ""
     
        "-------------------"
        Write-Host -ForegroundColor Green "SECTION 3: Suppression des caches Mozilla Firefox"
        "-------------------"
        Write-Host -ForegroundColor yellow "Début suppression des caches Mozilla"
        Write-Host -ForegroundColor cyan
     
        $path = {
                    C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cache\*
                    C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cache\*.*
    	        C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cache2\entries\*.*
                    C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\thumbnails\*
                    C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cookies.sqlite 
                    C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\webappsstore.sqlite 
                    C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\chromeappsstore.sqlite
                }
     
        write-debug ("path = {0}" -f $path)
        $files=@()  
         # execute the command string filtering out directories  
        &$executioncontext.InvokeCommand.NewScriptBlock($cmd)|   
         where {-not $_.PSIsContainer -and $_.lastwritetime -lt $cutoff} |   
          foreach {  
             #add current file to array  
             $files+=$_
     
             if ($force) {  
                  write-debug "remove -force $($_.Fullname)"
                 #Remove-Item $_.fullname -force  -whatif
                 }  
             else {  
                write-debug "remove $($_.Fullname)"
                 #Remove-Item $_.fullname  -whatif
                 }       
         } #end forEach  
        Import-CSV -Path C:\temp\utilisateurs.csv -Header Name | foreach {
                Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cache\* -Recurse -Force -EA SilentlyContinue -Verbose
                Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cache\*.* -Recurse -Force -EA SilentlyContinue -Verbose
    	    Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cache2\entries\*.* -Recurse -Force -EA SilentlyContinue -Verbose
                Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\thumbnails\* -Recurse -Force -EA SilentlyContinue -Verbose
                Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cookies.sqlite -Recurse -Force -EA SilentlyContinue -Verbose
                Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\webappsstore.sqlite -Recurse -Force -EA SilentlyContinue -Verbose
                Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\chromeappsstore.sqlite -Recurse -Force -EA SilentlyContinue -Verbose
     
                }
        Write-Host -ForegroundColor yellow "Fin suppression des caches Firefox"
        Write-Host -ForegroundColor yellow "C'est fait..."
        Write-Host -ForegroundColor yellow "Removing files in $path "
        $stats=$files | Measure-Object -Sum length
        $msg="Attempted to delete {0} files for a total of {1} MB ({2} bytes)" -f   
        $stats.count,($stats.sum/1MB -as [int]),$stats.sum  
     
        #Action lors de la fin du script.
        Remove-Item "c:\temp\utilisateurs.csv" 
        Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
        [System.Windows.Forms.MessageBox]::Show("C'est fait...", "Fin suppression des caches Firefox", 0)
        ""
        })

Discussions similaires

  1. Liste des fichiers supprimés ?
    Par jackm dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/07/2008, 19h36
  2. liste des fichiers supprimés
    Par sam01 dans le forum Administration système
    Réponses: 3
    Dernier message: 18/02/2008, 15h32
  3. Retrouver des fichiers supprimés
    Par Z20500 dans le forum Composants
    Réponses: 3
    Dernier message: 17/02/2008, 13h31
  4. Des fichiers supprimés qui réapparaissent !
    Par nougasplou dans le forum Administration système
    Réponses: 1
    Dernier message: 19/01/2007, 18h29
  5. recuperer des fichiers supprimés de USB
    Par spopo dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 07/11/2005, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo