But what about users that have created UNC shortcuts?
Here's a KiXtart script to walk through all the shortcut .lnk files on the users desktop and check if the existing target path matches the "old" target path. If it does, then we simply update it and save the shortcut object, then continue on to the next one.
Break ON
$oldPath = "\\Server1\Documents"
$newPath = "\\Server2\Docs"
$shell = CreateObject("WScript.Shell")
$DesktopPath = ExpandEnvironmentVars("%userprofile%")+"\Desktop"
$FileName = Dir("$DesktopPath\*.lnk")
While $FileName <> "" and @ERROR = 0
? $FileName
$link = $shell.CreateShortcut("$DesktopPath\$FileName")
If Ucase($link.TargetPath) = Ucase($oldPath)
? "updating shortcut target..."
$link.TargetPath = $newPath
$link.Save
EndIf
$FileName = Dir() ; retrieve next file
Loop
And not to be biased or anything, here's the same chunk of script code done in VBscript.
oldPath = "\\Server1\Documents"
newPath = "\\Server2\Docs"
Set shell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
DesktopPath = shell.ExpandEnvironmentStrings("%userprofile%") & "\Desktop"
Set objFolder = fso.GetFolder(DesktopPath)
For each objFile in objFolder.Files
If Lcase(Right(objFile.Name,4)) = ".lnk" Then
Wscript.Echo "updating shortcut target..."
Set link = shell.CreateShortcut(DesktopPath & "\" & objFile.Name)
link.TargetPath = newPath
link.Save
End If
Next
EDIT: Ok, as soon as I posted the above mess, I realized that some folks might want this in PowerShell also. So I gave in. Don't even ask about Sanskrit or Swahili, I won't go there.
$desktop = $home+"\desktop"
$oldPath = "\\Server1\Documents"
$newPath = "\\Server2\Docs"
$shell = New-Object -ComObject WScript.Shell
$Dir = get-childitem $desktop -recurse
foreach($file in $Dir) {
$fname = $file.Name
$lnk = $shell.CreateShortcut($desktop+"\"+$fname)
$target = $lnk.TargetPath
if ($target -eq $oldPath) {
write-host "Updating shortcut target..."
$lnk.TargetPath = $newPath
$lnk.Save()
}
}
2 comments:
Showoff..
;-)
Oh geez. I'm just illustrating. Not really creating anything completely new or innovative here. If it helps anyone that's enough for me.
Post a Comment