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

Vous trouverez ici des scripts pour faciliter la gestion de votre ordinateur. Ils sont proposés tels quels par le rédacteur du message. La team ne vérifie pas la qualité de ces éléments et n'assure pas le support ni la maintenance. Vous les utilisez sous votre seule responsabilité.
Règles du forum
Pour les créateurs de scripts

Veuillez noter que les scripts que vous partagez ici sont proposés tels quels et la team ne vérifie pas leur qualité.
Nous vous rappelons que nous n'assurons ni le support ni la maintenance des scripts publiés.

Pour faciliter leur utilisation par les autres membres de la communauté, respectez ces consignes :
.
  • Utilisez les préfixes de langage pour taguer les messages.
  • Assurez-vous que vos scripts sont clairs et bien documentés
.
Merci de votre compréhension et de votre contribution.
Répondre
Avatar du membre
pboulanger
Administrateur du site
Administrateur du site
Messages : 1143
Enregistré le : mar. 17 mars 2020 11:49
A remercié : 127 fois
A été remercié : 125 fois
    Windows 10 Firefox

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

Message 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.
Amicalement,

Pierre
Répondre