Разветвляюсь мой комментарий к вам. Вы не можете отправить строку, которая находится в целевом пути. Это не настоящий файл. Вы можете отправить эту строку в текстовый файл, если это то, что вам нужно, но это не похоже на то, что вам нужно.
Просто пройдитесь по каждому сегменту, чтобы убедиться, что вы получаете то, что хотите. ожидайте и используйте эту цель в операторе копирования.
# Validate the lnk data
$WScript = New-Object -ComObject WScript.Shell
Get-ChildItem -Path "$env:USERPROFILE\Desktop\ClearIEData.lnk" | Format-Table -AutoSize
<#
# Results
Directory: C:\Users\postanote\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 28-Oct-18 00:52 1293 ClearIEData.lnk
#>
# Extract the lnk target path
$WScript = New-Object -ComObject WScript.Shell
Get-ChildItem -Path "$env:USERPROFILE\Desktop\ClearIEData.lnk" |
ForEach-Object {$WScript.CreateShortcut($_.FullName).TargetPath}
<#
# Results
D:\Tools\ClearIEData.cmd
#>
# Take needed action on the lnk target path info
$WScript = New-Object -ComObject WScript.Shell
Get-ChildItem -Path "$env:USERPROFILE\Desktop\ClearIEData.lnk" |
ForEach-Object {
Copy-Item -Path $($WScript.CreateShortcut($_.FullName).TargetPath) -Destination 'D:\temp' -WhatIf
}
<#
# Results
What if: Performing the operation "Copy File" on target "Item: D:\Tools\ClearIEData.cmd Destination: D:\temp\ClearIEData.cmd".
#>
Если результаты вас устраивают, закомментируйте или удалите -WhatIf и снова запустите код, чтобы выполнить действие.
Get-ChildItem -Path 'D:\temp' -Filter 'ClearIEData.cmd'
<#
# Results
Directory: D:\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 05-Mar-20 15:10 2571 ClearIEData.cmd
#>
$WScript = New-Object -ComObject WScript.Shell
Get-ChildItem -Path "$env:USERPROFILE\Desktop\ClearIEData.lnk" |
ForEach-Object {
$WScript.CreateShortcut($_.FullName).TargetPath | Out-File -FilePath 'D:\Temp\LinkFileData.txt' -Append -WhatIf
}
Get-Content -Path 'D:\Temp\LinkFileData.txt'
<#
# Results
D:\Tools\ClearIEData.cmd
#>