andrew 15 Geschrieben 23. Juni 2021 Melden Teilen Geschrieben 23. Juni 2021 Hallo zusammen Frage: Bei uns in der Firma werden über GPOs für diverse Programm im User Autostart Menü auf dem Windows 10 Notebook eine Verknüpfung in diesem Pfad gespeichert. Folgende Verknüpfungen werden z.B. im User Autostart von Win10 gespeichert: - Verknüpfung von Outlook 2016 - Verknüpfung von Microsoft Edge - Verknüpfung einer Telefonsoftware, damit der Softclient automatisch nach dem User Login gestartet wird usw. Nun, wenn Jemand mit einem solchen NB zu Hause im Homeoffice arbeitet oder sonst wo extern ist, werden natürlich diese Programme nach einem erfolgreichen User Login am PC auch immer gestartet, nur leider bringt das dem User nichts, weil der NB nicht mit dem Geschäfts Netzwerk verbunden werden kann oder verbunden wird (wir nutzen kein VPN). Wir haben bei uns in der IT-Infrastruktur eine VDI Umgebung. Darum sollen die Benutzer mit Ihrem Notebook, nach erfolgreichem User Login einfach nur den VMware View Client starten, damit Sie auf unsere, interne VDI Umgebung sich verbinden können. Darum möchte ich die Sache soweit bereinigen, dass immer wenn das NB NICHT am Geschäfts Netzwerk hängt, entsprechend ein Mechanismus angestossen wird, welcher lokal auf dem NB das Autostart Menü (alle Programm Verknüpfungen) löscht und oder sucht, in eine Variable speichert (z.B. $Outlook = Outlook Verknüpfung oder Variable $Edge = Microsoft Edge Verknüpfung) und ich dann so am Schluss noch einen Lösch Befehl für z.B. $Outlook via PS Skript absetzen könnte. Lässt sich sowas via PS irgendwie machen? Ich habe es versucht, indem ich gesagt habe, durchsuche den %AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup nach der Verknüpfung Microsoft Edge.Ink z.B. aber das PS hat mir keinen Inhalt in diesem Pfad aufgelistet, obwohl ja was drin ist?! cheers Andrew Zitieren Link zu diesem Kommentar
MurdocX 933 Geschrieben 23. Juni 2021 Melden Teilen Geschrieben 23. Juni 2021 Hallo Andrew, wie sah denn dein Powershell-Befehl aus, damit ich weiß wo ich dich unterstützen kann? Zitieren Link zu diesem Kommentar
andrew 15 Geschrieben 23. Juni 2021 Autor Melden Teilen Geschrieben 23. Juni 2021 (bearbeitet) Hi MurdocX So habe ich mein PS angefangen ------------- ### zu durchsuchender Pfad $Suchpfad = "$env:ProgramData\microsoft\windows\Start Menu\Programs\startup" ### gesuchte Dateien $Outlook = Get-ChildItem -Path $Suchpfad -Include "Outlook" $Edge = Get-ChildItem -Patch $Suchpfad -Include "Edge" -------------- Wenn es was in die Variablen geschrieben hätte, hätte ich als nächsten Schritt irgendwie eine Zeile zusammengebastelt, welche sagen würde, lösch mal die $Varialbe $Outlook als Beispiel usw. Die dahinter war, so Verknüpfungen aus dem Autostart Menü löschen zu wollen, weil ich so gezielt Objekte herauslöschen kann bearbeitet 23. Juni 2021 von andrew Zitieren Link zu diesem Kommentar
MurdocX 933 Geschrieben 23. Juni 2021 Melden Teilen Geschrieben 23. Juni 2021 vor 57 Minuten schrieb andrew: PS hat mir keinen Inhalt in diesem Pfad aufgelistet, obwohl ja was drin ist?! vor 4 Minuten schrieb andrew: $Outlook = Get-ChildItem -Path $Suchpfad -Include "Outlook" Deine Ausgabe landet in der Variable $Outlook. Versuch den Teil weg zu lassen, damit die Ausgabe direkt im Fenster erscheint. Microsoft schreibt zum -Include Parameter Quelle: Get-ChildItem (Microsoft.PowerShell.Management) - PowerShell | Microsoft Docs folgendes: Zitat When the Include parameter is used, the Path parameter needs a trailing asterisk (*) wildcard to specify the directory's contents. For example, -Path C:\Test\*. Demensprechend musst du den Suchpfad oben anpassen. Ich würde in dem Fall eher nach *.lnk suchen, um die Verknüpfungen in dem Verzeichnis allgemein abzufragen und im Nachhinein zu sortieren/filtern. Zitieren Link zu diesem Kommentar
andrew 15 Geschrieben 23. Juni 2021 Autor Melden Teilen Geschrieben 23. Juni 2021 So, nun habe ich mal einen Zeilencode, welcher die entsprechenden Verknüpfungen in entsprechenden Variablen abspeichert. Ich scheitere im Moment nur noch am Löschen der Verknüpfungen. Mein Skript sieht im Moment nun so aus: ### Verzeichnis, welches durchsucht wird $Suchverzeichnis = "$Env:APPData\Microsoft\Windows\Start Menu\Programs\Startup" ### gesuchte Dateien $Outlook = Get-ChildItem - Path $Suchverzeichnis -Recurse | Where-Object {$_.FullName -match "Outlook"} $Edge = Get-ChildItem -Path $Suchverzeichnis -Recurse | Where-Object {$_.FullName -match "Edge"} ### Dateien ermitteln und löschen Get-ChildItem -Path $Suchverzeichnis\* -Include $Outlook $Edge | Remove-Item -Force -Confirm PowerShell gibt keinen Fehler aus, aber wenn ich im Autostartmenü nachschaue, sind die beiden Verknüpfungen immer noch da, was mache ich falsch? Oder muss ich einen anderen Befehl nehmen als Get-ChildItem? Zitieren Link zu diesem Kommentar
daabm 1.334 Geschrieben 23. Juni 2021 Melden Teilen Geschrieben 23. Juni 2021 (bearbeitet) Wenn Du in $Outlook und $Edge schon die richtigen Datei-Objekte hast, warum nicht einfach $Outlook , $Edge | Remove-Item -Force -Confirm:$False ? In Kurzform: Get-ChildItem - Path "$Env:APPData\Microsoft\Windows\Start Menu\Programs\Startup" -Recurse | Where-Object {$_.Name -match "Outlook|Edge"} | Remove-Item -Force -Confirm:$False bearbeitet 23. Juni 2021 von daabm Zitieren Link zu diesem Kommentar
andrew 15 Geschrieben 23. Juni 2021 Autor Melden Teilen Geschrieben 23. Juni 2021 Vielen Dank daabm Habe vielleicht zuweist gesucht, versuche es später nach deinem Vorschlag: -) Du hast mir 2 Lösungen präsentiert und ich habe mich für die kürzere Version entschieden $Outlook , $Edge | Remove-Item -Force -Confirm:$False Das hat funktioniert, super Sache thx Zitieren Link zu diesem Kommentar
MurdocX 933 Geschrieben 23. Juni 2021 Melden Teilen Geschrieben 23. Juni 2021 Der liebe Herr Kollege war schneller Freut mich dass es bei dir klappt. Zitieren Link zu diesem Kommentar
andrew 15 Geschrieben 23. Juni 2021 Autor Melden Teilen Geschrieben 23. Juni 2021 Geschehe nichts schlimmeres : -) Hauptsache, irgend eine Lösung funktioniert : -} Zitieren Link zu diesem Kommentar
daabm 1.334 Geschrieben 24. Juni 2021 Melden Teilen Geschrieben 24. Juni 2021 vor 20 Stunden schrieb MurdocX: Der liebe Herr Kollege war schneller Wenn ich schon mal zu meinen Forumsbesuchszeitfenstern mal eine offene Frage erwische, muss ich ja zugreifen Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.