Programm - Verknüpfungen auf dem Desktop, Taskleiste, Startmenü per Skript auslesen? - Win7
Guten Tag,
ich bin neu hier und noch in der Lehre zum Fachinformatiker.
Ich wollte fragen, ob es möglich ist per Skript Verknüpfungen, die sich auf dem Desktop, Taskleiste, Startmenü befinden auszulesen,
und am besten noch den jeweiligen Zielpfad der Verknüpfung auszulesen.
Ich soll bei einem Kunden, ein bestimmtes Programm - dessen Verknüpfung, den Zielpfad auslesen von allen sich beim Client befindenden Verknüpfungen
des speziellen Programms. Über 100 Client Rechner.
Wie ich auslese welche Verknüpfungen auf den Desktop sind, dies hab ich schon herausgefunden. Allerdings finde ich nichts, wie man Programmverknüpfungen auf der Taskleiste oder dem Startmenü auslese. Hat da jmd eine Idee?
Bisher hab i dies gefunden bzgl Zielpfad auslesen:
$sh = New-Object -COM Wscript.Shell
$targetPath = $sh.CreateShortcut('C:\Users\Benutzer\Desktop\XXX.lnk').TargetPath
Write-Host $targetPath
Über Hilfe wäre ich sehr dankbar.
LG
ich bin neu hier und noch in der Lehre zum Fachinformatiker.
Ich wollte fragen, ob es möglich ist per Skript Verknüpfungen, die sich auf dem Desktop, Taskleiste, Startmenü befinden auszulesen,
und am besten noch den jeweiligen Zielpfad der Verknüpfung auszulesen.
Ich soll bei einem Kunden, ein bestimmtes Programm - dessen Verknüpfung, den Zielpfad auslesen von allen sich beim Client befindenden Verknüpfungen
des speziellen Programms. Über 100 Client Rechner.
Wie ich auslese welche Verknüpfungen auf den Desktop sind, dies hab ich schon herausgefunden. Allerdings finde ich nichts, wie man Programmverknüpfungen auf der Taskleiste oder dem Startmenü auslese. Hat da jmd eine Idee?
Bisher hab i dies gefunden bzgl Zielpfad auslesen:
$sh = New-Object -COM Wscript.Shell
$targetPath = $sh.CreateShortcut('C:\Users\Benutzer\Desktop\XXX.lnk').TargetPath
Write-Host $targetPath
Über Hilfe wäre ich sehr dankbar.
LG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 330295
Url: https://administrator.de/contentid/330295
Ausgedruckt am: 19.03.2024 um 11:03 Uhr
5 Kommentare
Neuester Kommentar
Hmm, dafür habe ich noch keinen Ansatz...
Die Lösung hast du doch schon oben brauchst nur eine Foreach-Schleife über die Links laufen lassen :$sh = New-Object -COM Wscript.Shell
Get-ChildItem -Path $desk -filter *.lnk | %{
new-Object psobject -Property @{TargetPath=$sh.CreateShortCut($_.Fullname).TargetPath;Link=$_.Fullname}
} ft -Auto -Wrap
$sh = New-Object -COM Wscript.Shell
Get-ChildItem -Path $desk -filter *.lnk | select Fullname,@{n='TargetPath';e={$sh.CreateShortCut($_.Fullname).TargetPath}} | ft -Auto -Wrap
Gruß
Zitat von @xxxViperxxx:
Hi,
danke für deine Antwort.
Puhh ich versuch mal des zu verstehen ^^. Also in deiner unteren Lösung gibst du alle Verknüpfungen aus die sich in der Variablen $desk befinden über ne Pipe machst du dann genau was?
Das ist eine sogenannte Calculated-PropertyHi,
danke für deine Antwort.
Puhh ich versuch mal des zu verstehen ^^. Also in deiner unteren Lösung gibst du alle Verknüpfungen aus die sich in der Variablen $desk befinden über ne Pipe machst du dann genau was?
und dann lässt du es durch ft (= format table? ) formatieren?
Jepp.In deiner oberen Lösung kommt nach der Pipe ein Foreach soweit ich das erkennen kann,
Jeppund was macht das new-Object psobject etc.? Kannst du mir als Laien das vielleicht kurz erklären?
Das erzeugt ein custom object mit zwei Eigenschaften, einmal den Pfad des Links und die zweite das Ziel des Links.Vorteil bei Verwendung von custom objects ist das die Weiterverabeitung sehr flexibel gestalltbar ist, denn Powershell ist objektorientiert und die Vorteile sollte man auch nutzen.