У меня есть скрипт powershell, который не будет корректно обновлять $ TargetFile.Вот мой код:
$TargetFile = "C:\Users\wjschan\AppData\Roaming\DAS Toolbox\DAS Toolbox.exe"
$ShortcutFile = "$StartMenuPath\$ApplicationName.lnk"
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$NewTarget = $TargetFile
$Shortcut.TargetPath = $TargetFile
$Shortcut.IconLocation = $IconLocation
$Shortcut.Save()
Но когда я щелкаю правой кнопкой мыши по ярлыку, в качестве цели указывается «Этот компьютер».Однако, если я добавлю этот код, он будет работать нормально:
$ShortcutFile = "$StartMenuPath\$ApplicationName.lnk"
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$NewTarget = $TargetFile
$Shortcut.TargetPath = "C:\Users\wjschan\AppData\Roaming\DAS Toolbox\DAS Toolbox.exe"
$Shortcut.IconLocation = $IconLocation
$Shortcut.Save()
Я не понимаю, почему жесткое кодирование пути к файлу работает, а переменная - нет.Это работает раньше, если $ TargetFile указывает на другой путь (скажем, сетевой ресурс).
Win10, сборка 1607 (текущий бизнес-филиал) - и нет, я не могу получить более новую сборку.