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-ID: 302825

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

Ausgedruckt am: 19.11.2024 um 17:11 Uhr

114757
114757 25.04.2016 aktualisiert um 14:50:39 Uhr
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
Kraehahn
Kraehahn 25.04.2016 um 15:16:20 Uhr
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!
114757
114757 25.04.2016 aktualisiert um 15:26:11 Uhr
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.
Kraehahn
Kraehahn 25.04.2016 um 15:26:06 Uhr
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!!
Kraehahn
Kraehahn 25.04.2016 um 15:33:39 Uhr
Goto Top
Dankeschön!!
114757
114757 25.04.2016 um 16:36:47 Uhr
Goto Top
Bidde face-smile