Windows - Create Shortcut
Octopus.Script exported 12/23/2015 by bobjwalker belongs to 'Windows' category.
Creates or updates a Windows shortcut to point to a target file.
Parameters
When steps based on the template are included in a project's deployment process, the parameters below can be set.
Target file the shortcut will reference
TargetFilePath
This should be set to the file that the shortcut will link to.
Choose a destination for the shortcut or a Custom path.
ShortcutDestination = PublicDesktop
The path the shortcut will be put in if Custom path is chosen
ShortcutPath
This path is only used if Custom is set as destination for the shortcut. This should include a path that the shortcut should live in. If the path does not exist, it will be created.
The name of the shortcut
ShortcutName
This should be the name of the shortcut.
Script body
Steps based on this template will execute the following PowerShell script.
Show script$destination = $OctopusParameters['ShortcutDestination']
$targetFilePath = $OctopusParameters['TargetFilePath']
$shortcutName = $OctopusParameters['Shortcutname']
#Use Custom or predefined path
$shortcutDestination =
if($destination -eq "PublicDesktop") { "$env:PUBLIC\Desktop" }
elseif($destination -eq "Custom") { $OctopusParameters['ShortcutPath'] }
else {Write-Error "Shortcut destination is not set"}
#Create shortcut filename
$shortcut = "$shortcutDestination\$shortcutName.lnk"
Write-Output "Shortcut: $shortcut"
Write-Output "Target: $targetFilePath"
if(!(Test-Path $destination)){
New-Item -ItemType Directory -Path $destination
}
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$shortcut")
$Shortcut.TargetPath = $targetFilePath
$Shortcut.Save()To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.
Show JSON{
"Id": "95ed2a99-f92a-482e-a625-bbd1fb7c24bc",
"Name": "Windows - Create Shortcut",
"Description": "Creates or updates a Windows shortcut to point to a target file.",
"Version": 7,
"ExportedAt": "2015-12-23T09:41:47.577+00:00",
"ActionType": "Octopus.Script",
"Author": "bobjwalker",
"Parameters": [
{
"Name": "TargetFilePath",
"Label": "Target file the shortcut will reference",
"HelpText": "This should be set to the file that the shortcut will link to.",
"DefaultValue": null,
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Name": "ShortcutDestination",
"Label": "Choose a destination for the shortcut or a Custom path.",
"HelpText": "",
"DefaultValue": "PublicDesktop",
"DisplaySettings": {
"Octopus.ControlType": "Select",
"Octopus.SelectOptions": "PublicDesktop|Desktop (All Users)\nCustom|Custom"
}
},
{
"Name": "ShortcutPath",
"Label": "The path the shortcut will be put in if Custom path is chosen",
"HelpText": "This path is only used if Custom is set as destination for the shortcut. This should include a path that the shortcut should live in. If the path does not exist, it will be created.",
"DefaultValue": null,
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Name": "ShortcutName",
"Label": "The name of the shortcut",
"HelpText": "This should be the name of the shortcut.",
"DefaultValue": null,
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
}
],
"Properties": {
"Octopus.Action.Script.ScriptBody": "$destination = $OctopusParameters['ShortcutDestination']\n$targetFilePath = $OctopusParameters['TargetFilePath']\n$shortcutName = $OctopusParameters['Shortcutname']\n\n#Use Custom or predefined path\n$shortcutDestination = \n if($destination -eq \"PublicDesktop\") { \"$env:PUBLIC\\Desktop\" }\n elseif($destination -eq \"Custom\") { $OctopusParameters['ShortcutPath'] }\n else {Write-Error \"Shortcut destination is not set\"}\n\n\n#Create shortcut filename\n$shortcut = \"$shortcutDestination\\$shortcutName.lnk\"\n\nWrite-Output \"Shortcut: $shortcut\"\nWrite-Output \"Target: $targetFilePath\"\n\nif(!(Test-Path $destination)){\n New-Item -ItemType Directory -Path $destination\n}\n\n$WshShell = New-Object -comObject WScript.Shell\n$Shortcut = $WshShell.CreateShortcut(\"$shortcut\")\n$Shortcut.TargetPath = $targetFilePath\n$Shortcut.Save()",
"Octopus.Action.Script.Syntax": "PowerShell"
},
"Category": "Windows",
"HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates/windows-create-shortcut.json",
"Website": "/step-templates/95ed2a99-f92a-482e-a625-bbd1fb7c24bc",
"Logo": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADNQTFRF////Da3qSsLvhtb0wur6O7zuWcfxldv2aMzyK7ftpOD3s+X48Pr+0fD7d9HzHLLr4fX8xD/OcwAAAaNJREFUeNrs3cFygjAUQFECWott1f//2sJoW6kIKEzNs+euXOmcmSSGDa8oJEmSJEmSJGmsj1W1K9cpsGD1Vr2WdToVEPC+2lYvZfpVrEW0qZpF1F+MRdRugzoNlvkiarfBPk0pT8GhWUSX2yASpDlLr2+DEJBmEY1ug6whx7N0n2b30G1QlmmxHsRYp6X76yvF9vg5RYQczq8UVURI35UiFmTgShED0p6lI1eKzCHTrxS5Qk6PZ9PLDtJ9PIsJmXWlyAky6/dAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQMJCyjltF/iO3gpJUpD8s4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8T8itwwKyhbTdMr4ha8hXUwZqhICcOgyNOIkE+V5wo4MSgr1u/fp7poO+AL8K/gL8yw0UeyRB34m9iQ/pVD8L5JYTO3NI58R+AsiEEzsW5OfE3sUe/zRwYkeGnG2g2CPS7rhjF4GKP0ZwyoldxK37kFqEL/7wU0mSJEmSJOmJ+xRgAHxZTCXGdZkfAAAAAElFTkSuQmCC",
"$Meta": {
"Type": "ActionTemplate"
}
}Provided under the Apache License version 2.0.