added Create-Shortcut function to Tools.ps1

updated Install-Wireguard to create a desktop shortcut after installation
This commit is contained in:
2020-12-03 18:16:55 -05:00
parent 4ee3dee975
commit f6bf0e18e9
2 changed files with 36 additions and 1 deletions
+6 -1
View File
@@ -3,12 +3,17 @@ If ( IsAdmin )
{
$URL = "https://download.wireguard.com/windows-client/wireguard-installer.exe"
## Install package
## Download package
$Installer = Download-File -URL $URL
If ( Test-Path $Installer ) {
## Install package
End-Process -Name "wireguard" -Match -Force
Install-Program -Path "${Installer}" -Delete
End-Process -Name "wireguard" -Match -Force
## Create shortcut on Public desktop
Create-Shortcut -Path "${Env:Public}\Desktop\WireGuard.LNK" -TargetPath "${Env:ProgramFiles}\WireGuard\wireguard.exe" -Description "WireGuard: Fast, Modern, Secure VPN Tunnel"
}
Else { LogMsg "The Wireguard installer was not downloaded properly" }
}
+30
View File
@@ -395,3 +395,33 @@ Function End-Process
}
}
}
Function Create-Shortcut {
param(
[Parameter(Mandatory=$true)][string]$Path,
[Parameter(Mandatory=$true)][string]$TargetPath,
[Parameter(Mandatory=$false)][string]$Arguments,
[Parameter(Mandatory=$false)][string]$Description,
[Parameter(Mandatory=$false)][string]$Icon = '',
[Parameter(Mandatory=$false)][string]$WorkingDirectory = ''
)
If ( Test-Path $TargetPath ) {
If ( Test-Path $Path ) {
LogMsg "Deleting existing shortcut at ""${Path}"""
Try { Remove-Item $Path -Force -ErrorAction SilentlyContinue }
Catch { LogErr $_.Exception.Message }
}
If ( $WorkingDirectory -eq '' ) { $WorkingDirectory = Split-Path $TargetPath -Parent }
If ( $Icon -eq '' ) { $Icon = "${TargetPath}, 0" }
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($Path)
$Shortcut.Arguments = $Arguments
$Shortcut.Description = $Description
$Shortcut.IconLocation = $Icon
$Shortcut.WorkingDirectory = $WorkingDirectory
$Shortcut.TargetPath = $TargetPath
Try { $Shortcut.Save() }
Catch { LogErr $_.Exception.Message }
}
Else { LogMsg "The target path does not exist" }
}