<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>Kévin Subileau &#187; raccourci</title> <atom:link href="http://www.kevinsubileau.fr/tag/raccourci/feed" rel="self" type="application/rss+xml" /><link>http://www.kevinsubileau.fr</link> <description>Espace personnel</description> <lastBuildDate>Sun, 02 Feb 2020 15:18:58 +0000</lastBuildDate> <language>fr-FR</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Powershell - Créer, lire et modifier des raccourcis</title><link>http://www.kevinsubileau.fr/informatique/boite-a-code/powershell-creer-lire-modifier-raccourcis.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link> <comments>http://www.kevinsubileau.fr/informatique/boite-a-code/powershell-creer-lire-modifier-raccourcis.html#comments</comments> <pubDate>Mon, 24 Apr 2017 18:45:42 +0000</pubDate> <dc:creator>Kévin Subileau</dc:creator> <category><![CDATA[Boite à code]]></category> <category><![CDATA[Powershell]]></category> <category><![CDATA[raccourci]]></category><guid isPermaLink="false">http://www.kevinsubileau.fr/?p=2634</guid> <description><![CDATA[Avec Powershell, il est possible de créer un raccourci (.lnk ou .url), mais aussi d’en lire les propriétés et de les modifier, en utilisant simplement les fonctionnalités de l’objet COM Wscript.Shell. <a href="http://www.kevinsubileau.fr/informatique/boite-a-code/powershell-creer-lire-modifier-raccourcis.html">Lire la Suite <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Que ce soit pour réaliser un script d'installation ou un traitement particulier sur un grand nombre de postes, il arrive parfois que l’on ait besoin de <strong>lire, modifier ou créer un raccourci à l’aide d’un script</strong>. Pour ce dernier cas, on peut se contenter de coder un copier/coller d'un raccourci préfabriqué, mais cette méthode peut manquer de souplesse car elle ne permet pas par exemple d'adapter le raccourci créé selon certains paramètres.</p><p><strong>Avec Powershell</strong>, il est en fait possible de <strong>créer un raccourci à partir de zéro</strong>, mais aussi d’en <strong>lire les propriétés et de les modifier</strong>, en utilisant simplement les fonctionnalités de l’objet COM <code>Wscript.Shell</code>.</p><p>Pour cela, il faut commencer par créer un nouvel objet <code>Wscript.Shell</code> en utilisant la <em>cmdlet</em> <code>New-Object</code> :</p><pre class="brush: powershell; gutter: false; first-line: 1; highlight: []; html-script: false">$Shell = New-Object -ComObject Wscript.Shell</pre><p>Ensuite, on utilise la méthode <code>CreateShortcut</code> pour créer un objet raccourci associé à un chemin. Le nom de cette méthode est un peu trompeur car elle s’applique aussi bien que vous souhaitiez créer, lire ou modifier un raccourci. En fait, elle ne crée pas véritablement le raccourci sur le disque dur mais seulement sa représentation en mémoire (instanciation de la classe <code>WshShortcut</code> ou <code>WshURLShortcut</code>). Elle prend en paramètre le chemin du raccourci à lire ou à créer. <strong>Penser bien à ajouter l’extension .lnk ou .url</strong> selon que votre raccourci pointe respectivement vers un fichier ou une adresse Internet.</p><pre class="brush: powershell; gutter: false; first-line: 1; highlight: []; html-script: false">$Shortcut = $Shell.CreateShortcut($env:USERPROFILE + &quot;\Desktop\Mon raccourci.lnk&quot;)</pre><p>Vous disposez ensuite d’<strong>un ensemble de propriétés</strong> sur l’objet obtenu que vous pouvez lire ou modifier selon vos souhaits :</p><pre class="brush: powershell; gutter: false; first-line: 1; highlight: []; html-script: false"># Cible du raccourci
$Shortcut.TargetPath = &quot;C:\chemin\vers\votre\executable.exe&quot;
# Paramètres optionnels de ligne de commande
$Shortcut.Arguments = &quot;-arguments –si -necessaire&quot;
# Dossier cible
$Shortcut.WorkingDirectory = &quot;C:\chemin\vers\le\dossier\de\travail&quot;;
# Taille de la fenêtre d&#039;exécution (normale, réduite ou agrandie)
$Shortcut.WindowStyle = 1;
# Raccourci clavier
$Shortcut.Hotkey = &quot;CTRL+SHIFT+F&quot;;
# Chemin vers l&#039;icône du raccourci
$Shortcut.IconLocation = &quot;C:\chemin\vers\votre\executable.exe, 0&quot;;</pre><p>A noter que dans le cas d’un raccourci vers une adresse Internet, seule la propriété <code>TargetPath</code> est disponible.</p><p>Enfin, vous pouvez faire appel à la méthode <code>Save</code> pour enregistrer le raccourci créé ou les modifications apportées à un raccourci existant :</p><pre class="brush: powershell; gutter: false; first-line: 1; highlight: []; html-script: false">$Shortcut.Save()</pre><p>Et c’est tout ! Plutôt simple n’est-ce pas ?</p><p>Pour aller un peu plus loin, on peut ensuite <strong>combiner tout cela pour créer une ou plusieurs fonctions</strong> de manipulation des fichiers raccourcis. Voici par exemple une fonction permettant de <strong>récupérer le chemin cible d'un raccourci</strong> :</p><pre class="brush: powershell; gutter: true; first-line: 1; highlight: []; html-script: false">function function Get-ShortcutTarget {
    &lt;#
    .SYNOPSIS
        This function returns the target of a shortcut file (LNK or URL extension).
    .EXAMPLE
        Get-ShortcutTarget -FilePath &#039;C:\Users\profilename\Desktop\MyShortcut.lnk&#039;
    .PARAMETER FilePath
        The shortcut&#039;s file path (don&#039;t forget the extension !)
    #&gt;
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)]
        [ValidateScript({ Test-Path -Path $_ -PathType Leaf })]
        [Alias(&#039;Fullname&#039;)]
        [string[]]$FilePath
    )
    process {
        $ShellObject = New-Object -ComObject Wscript.Shell
        ($ShellObject.CreateShortcut($FilePath)).TargetPath
    }
}</pre><p>A vous ensuite d'adapter ou de créer vos propres fonctions selon vos besoins. N'hésitez pas également à faire quelques recherches sur Internet, et notamment sur Github, où vous pourrez trouver des fonctions toutes prêtes pour traiter les raccourcis, comme <a href="https://github.com/adbertram/PSShortcut">ici</a> par exemple.</p> ]]></content:encoded> <wfw:commentRss>http://www.kevinsubileau.fr/informatique/boite-a-code/powershell-creer-lire-modifier-raccourcis.html/feed</wfw:commentRss> <slash:comments>3</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching using disk: basic

Served from: www.kevinsubileau.fr @ 2026-04-30 07:15:04 -->