kraehahn
Goto Top

Mit Powershell den Zielpfad diverser Verknüpfungen auslesen

Hallo Zusammen!

Ich suche eine Möglichkeit um folgende Aufgabe zu erledigen:

Ich möchte auf einem Rechner alle Verknüpfungen angezeigt bekommen,
die auf ein Netzlaufwerk verweisen.

Beispiel:
Es soll der Pfad "C:\" nach Verknüpfungen durchsucht werden, die auf ein angebundenes Netzlaufwerk "S:\Freigabename"
zeigt.
Ist dies mit der Powershell möglich? Leider habe ich bisher im ganzen Netz noch keinen Beitrag
mit einer ähnlichen Frage gefunden.

Hintergrund der ganzen Sache ist:
Ich möchte sämtliche Userhome-Ordner der Benutzer im Netzwerk nach den Verknüpfungen durchsuchen
und Diese dann im Anschluss löschen bzw. auf den Netzwerkpfad umschreiben,
da das Netzlaufwerk für alle User getrennt werden soll.

Das Laufwerk via "net use" löschen bringt allerdings nur einen kurzen Erfolg,
denn sobald eine Verknüpfung ausgeführt wird, deren Zielpfad auf das Netzlaufwerk zeigt,
bindet sich das Laufwerk erneut an.

Deshalb war meine einzige Idee die Verknüpfungen zu löschen.
Falls ich da falsch denke, lasse ich mich gerne eines Besseren belehren.


Ich danke Euch vielmals im Voraus!


Grüße Kraehahn

Content-Key: 302825

Url: https://administrator.de/contentid/302825

Printed on: April 19, 2024 at 00:04 o'clock

Mitglied: 114757
114757 Apr 25, 2016 updated at 12:50:39 (UTC)
Goto Top
Moin,
kein Thema, schnell erledigt ...
$shell = New-Object -COM "wscript.shell"  
gci 'c:\Ordner' -Filter '*.lnk' -recurse -force | ?{!$_.PSIsContainer -and $shell.CreateShortCut($_.Fullname).TargetPath -like "S:\Freigabename*"} | Remove-Item -Force  
Gruß jodel32
Member: Kraehahn
Kraehahn Apr 25, 2016 at 13:16:20 (UTC)
Goto Top
Hallo jodel32,

vielen Dank für die schnelle Antwort.
Es scheint leider jedoch nicht ganz zu funktionieren.

Ich habe beide Befehle in die Powershell eingegeben.
Erst: $shell = New-Object -COM "wscript.shell"
Danach: gci 'c:\users\vorname.nachname\desktop' -filter '.ink' -recurse -force | ?{!$_.PSIsContai
ortCut($_.Fullname).TargetPath -like "Z:\"} | remove-item -force

Es handelt sich hierbei um die Zielie, die auf das Netzlaufwerk Z zeigen.
Eine Fehlermeldung erhalte ich keine, jedoch bleibt die Verknüpfung auf dem Desktop weiterhin vorhanden.

Hast du vielleicht noch eine Idee, woran es liegen könnte?

Vielen Dank nochmals!
Mitglied: 114757
114757 Apr 25, 2016 updated at 13:26:11 (UTC)
Goto Top
ja, die habe ich. Es wird hier der Operator -Like verwendet der mit Wildcards arbeitet, wenn dein Zielpfad also nicht nur auf z:\ selbst zeigt sondern auf eine Datei musst du natürlich Wildcards hinzufügen !! Also 'z:\*'

Das Skript selber gibt nichts aus, das ist i.O. so. Willst du mehr Info kannst du auf die schnelle dem Löschbefehl hinten noch den -Verbose Parameter anhängen.
Member: Kraehahn
Kraehahn Apr 25, 2016 at 13:26:06 (UTC)
Goto Top
Ich habe meinen Fehler gefunden...
Habe bei TargetPath -like "Z:\"} | remove-item -force
hinter dem "Z:\ ein * vergessen.
Klappt super, danke vielmals für die schnelle Hilfe!!
Member: Kraehahn
Kraehahn Apr 25, 2016 at 13:33:39 (UTC)
Goto Top
Dankeschön!!
Mitglied: 114757
114757 Apr 25, 2016 at 14:36:47 (UTC)
Goto Top
Bidde face-smile