我需要獲取到另一個服務器的快捷鏈接內的'目標'。 但是...... hellip;當我使用-Recurse
時,它遵循鏈接,而不是簡單地獲取快捷方式目標。'鏈接'的列表'目標'
這裏是我在網上找到的代碼,這些代碼是爲編輯我的目的而編輯的。但是,進入鏈接,並嘗試到另一臺服務器中找到快捷方式:
#Created By Scott
$varLogFile = "E:\Server\GetBriefsTargets.log"
$varCSVFile = "E:\Server\GetBriefsTargets.csv"
function Get-StartMenuShortcuts
{
$Shortcuts = Get-ChildItem -Recurse "F:\Connect" -Include *.lnk
#$Shortcuts = Get-ChildItem -Recurse "D:\Scripts\scott_testing" -Include *.lnk
$Shell = New-Object -ComObject WScript.Shell
foreach ($Shortcut in $Shortcuts)
{
$Properties = @{
ShortcutName = $Shortcut.Name;
ShortcutFull = $Shortcut.FullName;
ShortcutPath = $shortcut.DirectoryName
Target = $Shell.CreateShortcut($Shortcut).targetpath
}
New-Object PSObject -Property $Properties
}
[Runtime.InteropServices.Marshal]::ReleaseComObject($Shell) | Out-Null
}
$Output = Get-StartMenuShortcuts
$Output
ECHO "$Output" >> $varLogFile
ECHO "$Output" >> $varCSVFile
可能有人請提供什麼我可以改變,因此,它仍然認爲這一切的一切文件夾的快捷方式鏈接的建議?並停止進入這些鏈接?
即:
F:\連接\客戶端A \ shortcut.lnk
F:\連接\ CLIENTB \ shortcut.lnk
等
有大約100的客戶,我必須讓他們鏈接,我不想手動(每個月)。
這裏是我得到在試圖運行此腳本錯誤:
Get-ChildItem : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. At D:\Scripts\scott_testing\GetShortcutTarget_edit1.ps1:8 char:18 + $Shortcuts = Get-ChildItem -Recurse "F:\Connect" -Include *.lnk + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ReadError: (F:\Connect\CLIENTA\briefs\FILENAME:String) [Get-ChildItem], PathTooLongException + FullyQualifiedErrorId : DirIOError,Microsoft.PowerShell.Commands.GetChildItemCommand
這是要鏈接的「內部」,並試圖找到另一臺服務器上的快捷方式。
你確定它不只是找到一個本地目錄裏面的「連接」,有一個248 +字符的路徑。當我運行它時,'get-childitem'不會進入遞歸搜索的鏈接。 –
'Get-ChildItem -Recurse'不遵循快捷方式。你在說什麼? –
該腳本轉到:F:\ Connect \ CLIENTA \ briefs.lnk < - 然後它進入briefs.lnk的路徑到\\ IPADDRESS \ CLIENTDATA \ CLIENTA \ FOLDERA \ filenamehere.file文件並嘗試查找那裏的快捷鍵(據我所知) –