Public/Add-ItemToTaskBar.ps1

function Add-ItemToTaskBar {
  param(
    [parameter(Mandatory=$true, Position=0)]
    [ValidateNotNullOrEmpty()]
    [string] 
    $TargetFilePath
  )
  try {
    if (test-path($TargetFilePath)) {
      $KeyPath1  = "HKCU:\SOFTWARE\Classes"
      $KeyPath2  = "*"
      $KeyPath3  = "shell"
      $KeyPath4  = "{:}"
      $ValueName = "ExplorerCommandHandler"
      $ValueData = (Get-ItemProperty ("HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Windows.taskbarpin")).ExplorerCommandHandler

      $Key2 = (Get-Item $KeyPath1).OpenSubKey($KeyPath2, $true)
      $Key3 = $Key2.CreateSubKey($KeyPath3, $true)
      $Key4 = $Key3.CreateSubKey($KeyPath4, $true)
      $Key4.SetValue($ValueName, $ValueData)

      $Shell = New-Object -ComObject "Shell.Application"
      $Folder = $Shell.Namespace((Get-Item $TargetFilePath).DirectoryName)
      $Item = $Folder.ParseName((Get-Item $TargetFilePath).Name)
      $Item.InvokeVerb("{:}")

      $Key3.DeleteSubKey($KeyPath4)
      if ($Key3.SubKeyCount -eq 0 -and $Key3.ValueCount -eq 0) {
        $Key2.DeleteSubKey($KeyPath3)
      }
    }
  } catch {
    Write-Warning "Unable to create pin. Error captured was $($_.Exception.Message)."
  }
}