Question Création de raccourcis

Plus d'informations
il y a 5 mois 5 jours - il y a 5 mois 4 jours #34333 par Alexandre
Création de raccourcis a été créé par Alexandre
Bonjour,

J'essais de créer un script PowerShell qui me permettra de créer un raccourcis sur le bureau afin d'ouvrir une adresse web dans un navigateur précis.
Mon script est conçu ainsi :
#$Shell = New-Object -ComObject Wscript.Shell

#$Shortcut = $Shell.CreateShortcut($env:USERPROFILE + "\Desktop\App.lnk")

# Cible du raccourci
#$Shortcut.TargetPath = ""C:\Program Files\Google\Chrome\Application\chrome.exe" http://url.domain"
# Paramètres optionnels de ligne de commande
#$Shortcut.Arguments = "-arguments –si -necessaire"
# Dossier cible
#$Shortcut.WorkingDirectory = "%userprofile%\Desktop";
# Taille de la fenêtre d'exécution (normale, réduite ou agrandie)
#$Shortcut.WindowStyle = 1;
# Raccourci clavier
#$Shortcut.Hotkey = "CTRL+SHIFT+F";
# Chemin vers l'icône du raccourci
#$Shortcut.IconLocation = "%SystemRoot%\System32\SHELL32.dll, 265";

Function New-Shortcut{
    $Shell = New-Object -ComObject Wscript.Shell
    $Shortcut = $Shell.CreateShortcut($env:USERPROFILE + "\Desktop\App.lnk")
    $Shortcut.TargetPath = ""C:\Program Files\Google\Chrome\Application\chrome.exe" http://url.domain";
    $Shortcut.IconLocation = "%SystemRoot%\System32\SHELL32.dll, 265";
    $Shortcut.Save()
}

New-Shortcut

J'obtiens ceci : 
PS C:\WINDOWS\system32> C:\Users\alexandre.jacques.LSP\Downloads\flexio.ps1
Au caractère C:\Users\%USERPROFIL%\Downloads\script01.ps1:21 : 30
+     $Shortcut.TargetPath = ""C:\Program Files\Google\Chrome\Applicati ...
+                              ~~~~~~~~~~
Jeton inattendu « C:\Program » dans l’expression ou l’instruction.
    + CategoryInfo          : ParserError: ( : ) , ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken
 
Dernière édition: il y a 5 mois 4 jours par Arnaud Petitjean. Raison: Mise en forme du code via l'ajout de la balise [code]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 mois 4 jours #34344 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Création de raccourcis
Bonjour Alexandre,

Tu y étais presque ! Il fallait juste ne pas tenter de passer tes arguments dans la propriété TargetPath. Il existe une autre propriété pour cela, la propriété Arguments..

Voici un code qui fonctionne : 
    $Shell = New-Object -ComObject Wscript.Shell
    $Shortcut = $Shell.CreateShortcut($env:USERPROFILE + "\Desktop\App.lnk")
    $Shortcut.TargetPath = 'C:\Program Files\Google\Chrome\Application\chrome.exe'
    $Shortcut.Arguments =' https://start-scripting.io'
    $Shortcut.IconLocation = "%SystemRoot%\System32\SHELL32.dll, 265"
    $Shortcut.Save()

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Les utilisateur(s) suivant ont remercié: Alexandre

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 mois 4 jours #34362 par Alexandre
Réponse de Alexandre sur le sujet Création de raccourcis
Merci Arnaud!
Je pensais pas avoir besoin de la variable $Shortcut.Arguments. En ajoutant cette ligne et en modifiant l'autre pour enlever le paramètres qui était en fait une argument, j'ai découvert une nouvelle erreur que j'ai sue corrigé. Je laisse en exemple ma solution qui corrigé la problématique par le fait que j'ai certains usager qui synchronise leur bureau dans OneDrive 

Function New-Shortcut{
    try{
        $Shell = New-Object -ComObject Wscript.Shell
        $Shortcut = $Shell.CreateShortcut($env:USERPROFILE + "\Desktop\App.lnk")
        $Shortcut.TargetPath = "C:\Program Files\Google\Chrome\Application\chrome.exe";
        $Shortcut.Arguments = "app.domain";
        $Shortcut.IconLocation = "%SystemRoot%\System32\SHELL32.dll, 265";
        $Shortcut.Save()
    }
    catch{
        $Shell = New-Object -ComObject Wscript.Shell
        $Shortcut = $Shell.CreateShortcut($env:USERPROFILE + "\OneDrive - ENTREPRISE\Bureau\App.lnk")
        $Shortcut.TargetPath = "C:\Program Files\Google\Chrome\Application\chrome.exe";
        $Shortcut.Arguments = "app.domain";
        $Shortcut.IconLocation = "%SystemRoot%\System32\SHELL32.dll, 265";
        $Shortcut.Save()
    }
}
New-Shortcut

 

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 mois 3 jours #34369 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Création de raccourcis
Hello Alexandre,

Je suis content d'avoir pu résoudre ton problème.

Par contre attention avec le Try/Catch. Parfois ça ne donne pas le résultat escompté ;-). C'est assez piégeux comme mécanisme.
Moi j'aurais adopté une autre approche. Car là, tu assumes qu'il y aurait qu'un seul type d'erreur mais en réalité on ne peut jamais savoir à l'avance...

En conclusion, je n'aurais pas utilisé de try/catch pour le cas présent mais j'aurais simplement fait un "if"... pour tester le chemin et choisir la bonne commande derrière.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.112 secondes
Propulsé par Kunena