Guys.
I found this powershell function on the internet for adding items to the taskbar on Windows 7\8 The function works fine when running it against a single item
for example
Pin-Taskbar -Item "C:\Windows\System32\mspaint.exe" -Action Pin
What I am trying to do is add multiple items to the taskbar in one go. As an example a user over time adds many items. I have another script that backs everything that is in C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar up to a network share. I would then like the script below to add everything in say\\Servername\some_share and add them to the Taskbar.
Have been playing around with the script but not quite getting there. Can anyone help? Thanks in advance
function Pin-Taskbar([string]$Item = "",[string]$Action = ""){
if($Item -eq ""){
Write-Error -Message "You need to specify an item" -ErrorAction Stop
}
if($Action -eq ""){
Write-Error -Message "You need to specify an action: Pin or Unpin" -ErrorAction Stop
}
if((Get-Item -Path $Item -ErrorAction SilentlyContinue) -eq $null){
Write-Error -Message "$Item not found" -ErrorAction Stop
}
$Shell = New-Object -ComObject "Shell.Application"
$ItemParent = Split-Path -Path $Item -Parent
$ItemLeaf = Split-Path -Path $Item -Leaf
$Folder = $Shell.NameSpace($ItemParent)
$ItemObject = $Folder.ParseName($ItemLeaf)
$Verbs = $ItemObject.Verbs()
switch($Action){
"Pin" {$Verb = $Verbs | Where-Object -Property Name -EQ "Pin to Tas&kbar"}
"Unpin" {$Verb = $Verbs | Where-Object -Property Name -EQ "Unpin from Tas&kbar"}
default {Write-Error -Message "Invalid action, should be Pin or Unpin" -ErrorAction Stop}
}
if($Verb -eq $null){
Write-Error -Message "That action is not currently available on this item" -ErrorAction Stop
} else {
$Result = $Verb.DoIt()
}
}