Page 1 sur 1

[PowerShell] Lister les chemins absolus des dossiers de l'utilisateur courant.

Posté : jeu. 29 août 2024 16:52
par pboulanger
Bonjour,

Ce script PowerShell récupère les chemins des principaux dossiers de l'utilisateur courant sous Windows (comme le Bureau, les Documents, les Téléchargements, etc.) et les enregistre dans un fichier texte (Variable-user.txt) situé sur le bureau de l'utilisateur. Il affiche également ces chemins dans la console pour que l'utilisateur puisse les voir directement pendant l'exécution. À la fin de l'exécution, il ajoute une pause pour que l'utilisateur puisse vérifier les informations avant que la console ne se ferme.

Le code

Code : Tout sélectionner

# Récupère et affiche les chemins des dossiers pour l'utilisateur courant

# Définir le chemin du fichier de log sur le bureau de l'utilisateur
$desktopPath = [Environment]::GetFolderPath("Desktop")
$outputFilePath = "$desktopPath\Variable-user.txt"

# Fonction pour enregistrer les chemins dans le fichier de log
function Log-Path {
    param (
        [string]$message
    )
    Add-Content -Path $outputFilePath -Value $message
}

# Dossier Bureau
$desktopPath = [Environment]::GetFolderPath("Desktop")
Write-Output "Chemin du Bureau : $desktopPath"
Log-Path "Chemin du Bureau : $desktopPath"

# Dossier Documents
$documentsPath = [Environment]::GetFolderPath("MyDocuments")
Write-Output "Chemin des Documents : $documentsPath"
Log-Path "Chemin des Documents : $documentsPath"

# Dossier Téléchargements
$downloadsPath = [Environment]::GetFolderPath("UserProfile") + "\Downloads"
Write-Output "Chemin des Téléchargements : $downloadsPath"
Log-Path "Chemin des Téléchargements : $downloadsPath"

# Dossier Images
$picturesPath = [Environment]::GetFolderPath("MyPictures")
Write-Output "Chemin des Images : $picturesPath"
Log-Path "Chemin des Images : $picturesPath"

# Dossier Musique
$musicPath = [Environment]::GetFolderPath("MyMusic")
Write-Output "Chemin de la Musique : $musicPath"
Log-Path "Chemin de la Musique : $musicPath"

# Dossier Vidéos
$videosPath = [Environment]::GetFolderPath("MyVideos")
Write-Output "Chemin des Vidéos : $videosPath"
Log-Path "Chemin des Vidéos : $videosPath"

# Dossier Application Data
$appDataPath = [Environment]::GetFolderPath("ApplicationData")
Write-Output "Chemin Application Data : $appDataPath"
Log-Path "Chemin Application Data : $appDataPath"

# Dossier Local Application Data
$localAppDataPath = [Environment]::GetFolderPath("LocalApplicationData")
Write-Output "Chemin Local Application Data : $localAppDataPath"
Log-Path "Chemin Local Application Data : $localAppDataPath"

# Dossier TEMP
$tempPath = [Environment]::GetEnvironmentVariable("TEMP")
Write-Output "Chemin du dossier TEMP : $tempPath"
Log-Path "Chemin du dossier TEMP : $tempPath"

# Dossier Roaming Profile (chemin du profil utilisateur)
$roamingProfilePath = [Environment]::GetFolderPath("UserProfile")
Write-Output "Chemin du profil d'utilisateur (Roaming Profile) : $roamingProfilePath"
Log-Path "Chemin du profil d'utilisateur (Roaming Profile) : $roamingProfilePath"

# Ajout d'une pause avant la fermeture du script
Read-Host -Prompt "Appuyez sur Entrée pour fermer le script..."

Ce que fait ce script
  • Déclaration et création d'un fichier de log :
    Le script définit le chemin du fichier de sortie (Variable-user.txt) sur le bureau de l'utilisateur courant en utilisant la variable $desktopPath.
    Il utilise une fonction personnalisée Log-Path qui permet d'ajouter des messages dans ce fichier.
     
  • Récupération des chemins des dossiers de l'utilisateur :

    Le script utilise la méthode [Environment]::GetFolderPath() pour récupérer les chemins des dossiers courants de l'utilisateur :
    • Bureau (Desktop)
    • Documents (MyDocuments)
    • Téléchargements (Downloads)
    • Images (MyPictures)
    • Musique (MyMusic)
    • Vidéos (MyVideos)
    • Application Data (ApplicationData)
    • Local Application Data (LocalApplicationData)
    • TEMP (variable d'environnement TEMP)
    • Profil d'utilisateur (Roaming Profile) (UserProfile)
  • Affichage et enregistrement des chemins des dossiers :
    • Pour chaque dossier, le script :
      Affiche le chemin dans la console avec Write-Output.
      Enregistre le chemin dans le fichier Variable-user.txt sur le bureau en utilisant la fonction Log-Path.
    • Pause avant la fermeture du script :
      À la fin du script, il utilise Read-Host pour ajouter une pause. Cette commande attend que l'utilisateur appuie sur Entrée, permettant ainsi à l'utilisateur de vérifier les informations affichées avant que la fenêtre de la console ne se ferme.
Comment s'en servir ?
  • Enregistrer le code dans un fichier txt avec l'extension .ps1 par exemple variable-user.ps1
  • Clic droit sur l'icône du fichier et commande Exécuter avec PowerShell
  • Des messages de confirmation apparaissent au fur et à mesure de l'exécution du script
  • Le script se ferme à la fin des opérations.
  • Le fichier variable-user.txt est affiché sur le bureau
 ! Message de : pboulanger
ATTENTION ! ce script est livré tel quel. Je l'ai juste testé sur mon windows 11 pro 23h2 build 22631.4112.
Vous pouvez le modifier comme vous le souhaitez.
Il vous appartient de prendre toutes les précautions de sauvegarde avant de l'exécuter.