Запретить удаление ярлыков, закрепленных скриптом на панели задач, при повторном запуске скрипта

У меня есть скрипт, который закрепляет ярлыки приложений на панели задач Windows.

Сценарий, который у меня есть, отлично работает при закреплении ярлыков. Однако, если скрипт запускается во второй раз, он удалит ранее закрепленные ярлыки.

Проблема, кажется, здесь:

$appWord = "C:\Temp\Word.lnk"
$appWord = "C:\Temp\Excel.lnk"
$apps = @($appWord, $appExcel)

foreach($_ in $apps)
{
($shortcuts.ParseName($_).verbs() | ? {$_.Name -match "Tas&kbar"}).Doit()
}

Как остановить удаление закрепленных элементов, если они уже существуют?


person pcoul    schedule 27.06.2014    source источник


Ответы (3)


Исключите глаголы, в которых есть слово «открепить»:

$apps | % {
  $verb = $shortcuts.ParseName($_).verbs() | ? {
    $_.Name -match "Tas&kbar" -and $_.Name -notmatch 'unpin'
  }
  $verb.Doit()
}
person Ansgar Wiechers    schedule 27.06.2014
comment
Как раз то, что мне было нужно. Спасибо за вашу помощь! - person pcoul; 30.06.2014

Вы можете проверить, присутствуют ли ссылки здесь:

C:\Users\Your-User-Name\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

прежде чем пытаться закрепить.

person CB.    schedule 27.06.2014

можешь попробовать $item.Verbs() | ? {$_.Name -eq 'Pin to Tas&kbar'}

person Haim Bendanan    schedule 14.08.2016