Créer des raccourcis avec Powershell

Salut,

Powershell permet énormément de choses, mais la création et la manipulation de raccourcis passe par la création d’un object COM qui lancera un shell Windows Script Host.

$shell = New-Object -ComObject WScript.Shell

On aperçoit (comme par magie) la méthode CreateShortcut avec comme valeur une variable String, qui devrait, d’après MSDN subvenir parfaitement a nos besoins.

Tout d’abord, il est bon de savoir qu’un raccourci Windows doit avoir l’extension *.lnk ou  *.url, donc n’importe que raccourci devra en amont être créé

$link = $shell.CreateShortcut("C:UsersPublicDesktopTestOfTheDeath.lnk")

Si on regarde ce que contient l’objet crée avec la méthode

On s’aperçoit que tous les paramètres qui peuvent être définis dans un raccourci Windows sont ici présents.

  • TargetPath : Le chemin vers l’éxécutable
  • Arguments : Le ou les arguments à passer à l’éxécutable du programme, ils vont être rajoutés à la suite de TargetPath
  • Hotkey : Le raccourci clavier pour lancer le raccourci
  • IconLocation : L’icone qu’aura le raccourci
  • Descritption : Une courte description de ce qu’est votre script
  • WorkingDirectory : Le paramètre “Démarrer dans”

Les deux méthodes

  • Load : permet de charger un raccourci en mémoire pour lui appliquer des modifications
  • Save : Sauvegarde les changements aprés la création ou la modification d’un raccourci

Après l’exécution ce code

$shell = New-Object -ComObject WScript.Shell
$Link = $shell.CreateShortcut("C:UsersPublicDesktopTestOfTheDeath.lnk")
$Link.TargetPath = "C:WindowsNotepad.exe"
$Link.Hotkey = "CTRL+SHIFT+N"
$Link.IconLocation = "notepad.exe, 0"
$Link.Description = "Test of Shortcut"
$Link.WorkingDirectory = "C:UsersPublicDesktop"
$Link.Save()

Voici le résultat

Si vous avez des remarques, n’hésitez pas !

Merci Laurent pour l’idée 😉

@+