Dans l’idée de faire un peu de ménage sur un lecteur, je cherche à identifier les fichiers multimédia avec le chemin et la taille.
Ce script va créer un fichier texte pour chaque extension.
Get-ChildItem -Recurse -Path "E:\" -Include *.mp3,*.mp4,*.avi -ErrorAction silentlycontinue | ForEach {
Write-Progress -activity "Fichiers Multimédia" -Status $_.FullName
$extension = $_.name.split(".")[-1]
$size = “{0:N2}” -f ($_.Length/1mb)
$logfile = ".\logs\" + $extension + ".txt"
$present = Test-Path -Path $logfile
if ( $present -ne "true") {
Write-host "Création de $logfile"
$resfile = New-Item -ItemType file -Path $logfile -Force
Add-Content -Path $logfile -Value "Nom;Chemin;Taille"
Add-Content -Path $logfile -Value "$($_.name );$($_.DirectoryName);$($size)"
}
Else {
Add-Content -Path $logfile -Value "$($_.name );$($_.DirectoryName);$($size)"
}
} |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Les travaux pratiques du jour:
Lister tous les fichiers qui sont archivés sur un serveur sans les désarchiver.
Les fichiers archivés on l’attribut « Offline ».
La commande suivant a eu pour effet de désarchiver tous les fichiers listés, donc il faut y aller avec des pincettes pour ne pas désarchiver tout le serveur d’un coup.
Voici les commande qui permet de lister les fichiers avec le chemin sans les agresser.
Get-ChildItem -Recurse | Where-Object { $_.Attributes -match "Offline" } | Select-Object Name,Attributes,Fullname | Export-Csv -Path .\Exports\arhived_files.csv -Encoding unicode |
Demain, nous verrons bien comment on va faire pour les désarchiver en douceur.
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Voici la méthode pour sélectionner les dernier fichier qui a été créé dans un dossier.
Cela me permet de récupérer le dernier fichier de logs ou de traiter le dernier rapport.
$file = Get-ChildItem -Path .\Logs -recurse -include *.log | Sort-Object -Property CreationTime | Select-Object -Last 1
$file |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Dans la continuité de l’article précédent voici comment afficher tous les fichiers non modifiés depuis plus d’un mois.
$date= (get-date).AddMonths(-1)
Get-ChildItem * | Where-Object {$_.LastWriteTime -lt $date} | Select-Object LastWriteTime,Name,DirectoryName |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Permet de transférer la valeur d’une variable dans un fichier texte.
$christophe = get-mailbox *christophe*
Set-Content christophe.txt $christophe |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Voici quelques commandes pour traiter un fichier texte.
Supprimer les lignes contenant une chaine de caractères:
Get-Content .\fichier.txt | where { $_ -notmatch "Ligne à supprimer" } |
Conserver les lignes contenant une chaine de caractères:
Get-Content .\fichier.txt | where { $_ -like "Ligne à garder*" } |
Remplacer ou supprimer une chaine de caractère dans toutes les lignes:
Get-Content .\fichier.txt | foreach { $_ -replace "Mailbox: ","" } |
Supprimer les lignes vides:
Get-Content .\fichier.txt | where { $_ -ne "$null" } |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Permet de supprimer le doublon de ligne dans un fichier texte.
Si dans un fichier texte, vous avez plusieurs lignes identiques, cette commande ne retourne qu’une seule fois la ligne.
Type .\export-brut.csv | Select -Unique |
Pour revoyer le résultat vers un fichier résultat:
Type .\export-brut.csv | Select -Unique > export-nettoye.csv |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Voici une série de commande permettant de gérer les fichiers et dossiers avec Powershell.
Afficher le chemin du dossier courant:
Afficher le contenu d’un dossier:
Get-ChildItem
Get-ChildItem "c:\temp" |
Se déplacer dans les dossiers:
Créer un fichier:
New-Item -Name "fichier.txt" -ItemType file -Value "Test" |
Créer un dossier:
New-Item -Name "dossier" -ItemType directory |
Supprimer un fichier ou un dossier:
Remove-Item "c:\temp\*.txt" |
Déplacer des fichiers:
Move-Item -Path *.txt -Destination "c:\temp\" |
Déplacer un dossier:
Move-Item -Path .\dossier -Destination .\temp\dossier
Move-Item -Path .\temp\dossier -Destination .\temp\dossier2" |
Renommer un fichier ou un dossier:
Rename-Item -Path fichier.txt -NewName fichier2.txt
Rename-Item -Path dossier -NewName dossier2 |
Copier un fichier ou un dossier:
Copy-Item -Path .\fichier.txt -Destination c:\temp
Copy-Item -Path dossier -Destination c:\temp -Recurse |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :

Ce script permet de rapidement configurer la sécurité sur un fichier.
$list = "jacques.martin","Groupe-Ecole_des_Fans"
foreach ($user in $list){
$folder = "\SRV001i$chansons.txt"
$acl = Get-Acl -Path $folder
$ar = New-Object system.security.accesscontrol.filesystemaccessrule($user,"FullControl","Allow")
$acl.SetAccessRule($ar)
Set-Acl -Path $folder $acl
} |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Commentaires récents