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

  1. #1
    Futur Membre du Club
    Copier les images de l'écran de verrouillage de Windows
    Bonjour à tous,

    Sur l'écran de verrouillage de Windows, on peut admirer de très belles photos de paysages, animaux etc. Souhaitant récupérer ces photos, j'ai surfé sur le web et ai bien rapidement trouvé l'emplacement de ces images (qui ne portent pas d'extension là où elles sont stockées).
    Je souhaiterai faire un petit script Powershell qui s'exécuterait au démarrage de la session windows.
    Grosso-modo, le script doit juste copier les fichiers dont la taille est supérieure à 200ko, les déplacer dans un dossier et ajouter l'extension ".jpg".
    Ma demande, serait de faire un script qui s'adapte à chaque utilisateur (j'ai plusieurs ordinateurs avec des noms de sessions différentes mais une arborescence identique).

    Je n'y connais absolument rien en Powershell alors soyez-indulgent svp.

    2 problèmes se confrontent à moi :
    - lorsque les fichiers sans extension se copient, ils se copient dans une dossier "Assets" alors que je souhaiterai qu'ils se copient directement dans le finalDespositary.
    - je n'arrive pas à ajouter l'extension ".jpg"

    Pouvez-vous m'aider svp ??
    Code Powershell :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $userAcronym = "Famille"
    $assetFolder = "C:\Users\$userAcronym\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets\"
    $finalDepositary = "D:\WindowsImages\"
    $finalDepositary2 = "D:\WindowsImages\Assets\"
     
    Copy-Item -Path $assetFolder -Recurse $finalDepositary
     
    Get-ChildItem -Path $finalDepositary2 | Where-Object -FilterScript {($_.Length -le 100kb)} | Remove-Item
     
    #Get-ChildItem -Path $finalDepositary2 | Rename-Item -NewName { $_.Name $_ "$_.jpg" }

  2. #2
    Expert éminent
    GetLockScreenImages.ps1

    Ce bout de code est inspiré par ici
    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
    cls
    $TargetFolder = 'E:\WindowsImages\Assets'
    if (-not (Test-Path -LiteralPath $TargetFolder)) { New-Item -Path $TargetFolder -ItemType Directory -ErrorAction Stop | Out-Null }
    $Assets = "$Env:LocalAppData\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets"
    $ListOfStartScreenImages = LS $Assets  | ? { $_.Length -ge 1kb }
    $C=0
    foreach($item in $ListOfStartScreenImages)
     {  
        $NewName = "$TargetFolder\" + $item.Name + ".jpg"
        If(Test-Path $NewName)
        {
            Write-Host "File $NewName already exists in destination folder"
        }
        else
        {
            Copy-Item $item.FullName $NewName
            $C = $C + 1
        }
    }
    Write-Host "$C fichiers d'images ont été copiés dans ce dossier $TargetFolder"

  3. #3
    Futur Membre du Club
    Ton script marche ... du TONNERRE !!!

    Merci infiniment !!!

  4. #4

  5. ###raw>post.musername###
    Futur Membre du Club
    Hello !

    Je reviens vers vous car je n'arrive pas à terminer mon travail.
    Le script fonctionne et est stocké sur mon disque dur d:/ (disque dur non système).
    Je souhaite excécuter mon script à l'ouverture de session avec le planificateur de tâche.
    Je ne comprends pas car lorsque je fais clic droit > excécuter avec Powershell, le script fonctionne alors que lorsque je fait clic droit (sur la tâche) puis Excécuter, cela lance une page bleu (powershell donc) mais le script ne se lance visiblement pas ...
    Pouvez-vous m'aider svp ?
    Dans l'onglet Action, j'ai indiqué :
    Programme/script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    Ajouter des arguments (facultatif) :
    Code PowerShell :Sélectionner tout -Visualiser dans une fenêtre à part
    -Command "& 'D:\Documents\Logiciels\Logiciels Système\Scripts\WindowsWallpapers.ps1'"



    Script :
    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
    cls
     
    $var1 = " "
    $var2 = Get-Date -Format "yyyy.MM.dd"
    $var3 = $env:USERNAME + $var1 + $var2
     
     
    $TargetFolder = 'D:\' + $var3
    if (-not (Test-Path -LiteralPath $TargetFolder)) { New-Item -Path $TargetFolder -ItemType Directory -ErrorAction Stop | Out-Null }
     
    $Assets = "$Env:LocalAppData\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets"
    $ListOfStartScreenImages = LS $Assets  | ? { $_.Length -ge 200kb }
    $C=0
    foreach($item in $ListOfStartScreenImages)
     {  
        $NewName = "$TargetFolder\" + $item.Name + ".jpg"
        If(Test-Path $NewName)
        {
            Write-Host "File $NewName already exists in destination folder"
        }
        else
        {
            Copy-Item $item.FullName $NewName
            $C = $C + 1
        }
    }
    Write-Host "$C fichiers d'images ont été copiés dans ce dossier $TargetFolder"
      0  0

###raw>template_hook.ano_emploi###