bestimmte Verknüpfungen per Batch in allen Userverzeichnissen löschen
Hi *,
ich möchte gerne per Batch Datei in jedem Userprofil des jeweiligen Rechners (ca. 300; WindowsXP), eine bestimmte Verknüpung löschen. Diese liegen im Verzeichnis C:\Dokumente und Einstellungen\*Profil*\Desktop.
Mit 'del "%userprofile%\Desktop\Verknüpfung.ink" ' kann ich das ja nur für den jeweils angemeldeten User machen. Wie mache ich das am besten (ohne VB -> da kaum Ahnung davon) machen? Geht das überhaupt per Batch?
Gruß,
HansOtto
ich möchte gerne per Batch Datei in jedem Userprofil des jeweiligen Rechners (ca. 300; WindowsXP), eine bestimmte Verknüpung löschen. Diese liegen im Verzeichnis C:\Dokumente und Einstellungen\*Profil*\Desktop.
Mit 'del "%userprofile%\Desktop\Verknüpfung.ink" ' kann ich das ja nur für den jeweils angemeldeten User machen. Wie mache ich das am besten (ohne VB -> da kaum Ahnung davon) machen? Geht das überhaupt per Batch?
Gruß,
HansOtto
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 126218
Url: https://administrator.de/forum/bestimmte-verknuepfungen-per-batch-in-allen-userverzeichnissen-loeschen-126218.html
Ausgedruckt am: 10.01.2025 um 09:01 Uhr
5 Kommentare
Neuester Kommentar
Hi,
ich würde das tatsächlich nur für den jeweils angemeldeten User machen (mit einer verherigen Abfrage ob die Datei überhaupt noch existiert).
Warum? Nun wenn Du tatsächlich in allen Benutzerprofilen parallel das löschen durchführen möchtest musst Du dies natürlich auch in einem Sicherheitskontext machen der auf alle Profile zugriff hat. Wenn es einen solchen Sicherheitskontextgibt, so dürfte das bei Euch wohl nur ein administrativer Benutzer sein.
Und das Du dann in einer Batchdatei einen Löschvorgang mit dem Benutzerkonto durchführen möchtest und damit das Kennwort auch im Klartext der Batch mitgeben möchtest kann ich mir kaum vorstellen.
Andererseits dürfte es ja auch relativ unerheblich sein ob die Verknüpfung noch ein paar Tage bis zur jeweils nächsten Anmeldung des jeweiligen Benutzers noch im Profil vorhanden ist,oder?
ich würde das tatsächlich nur für den jeweils angemeldeten User machen (mit einer verherigen Abfrage ob die Datei überhaupt noch existiert).
Warum? Nun wenn Du tatsächlich in allen Benutzerprofilen parallel das löschen durchführen möchtest musst Du dies natürlich auch in einem Sicherheitskontext machen der auf alle Profile zugriff hat. Wenn es einen solchen Sicherheitskontextgibt, so dürfte das bei Euch wohl nur ein administrativer Benutzer sein.
Und das Du dann in einer Batchdatei einen Löschvorgang mit dem Benutzerkonto durchführen möchtest und damit das Kennwort auch im Klartext der Batch mitgeben möchtest kann ich mir kaum vorstellen.
Andererseits dürfte es ja auch relativ unerheblich sein ob die Verknüpfung noch ein paar Tage bis zur jeweils nächsten Anmeldung des jeweiligen Benutzers noch im Profil vorhanden ist,oder?
@andreas#S
Die erforderliche Batchzeile würde dann etwa so aussehen:
Alternativ kann das auch von einem Rechner aus per Zugriff über die Administrative Freigabe C$ erledigt werden - dann eben
Wenn diese Zeile noch in eine Schleife verpackt wird, kann eine Liste von Rechnern (die dazu natürlich erreichbar sein müssen) verarbeitet werden.
Grüße
bastla
Nun wenn Du tatsächlich in allen Benutzerprofilen parallel das löschen durchführen möchtest musst Du dies natürlich auch in einem Sicherheitskontext machen der auf alle Profile zugriff hat. Wenn es einen solchen Sicherheitskontextgibt, so dürfte das bei Euch wohl nur ein administrativer Benutzer sein.
Sofern sich die Rechner in einer AD-Umgebung befinden (@HansOtto: ist dem so?), könnte diese Aktion ganz ohne Passwortangabe per "Startscript" (mit "System"-Rechten) erfolgen.Die erforderliche Batchzeile würde dann etwa so aussehen:
for /d %%i in ("C:\Dokumente und Einstellungen\*.*") do del "%%i\Desktop\Verknüpfung.lnk" 2>nul
for /d %%i in ("\\Rechnername\C$\Dokumente und Einstellungen\*.*") do del "%%i\Desktop\Verknüpfung.lnk" 2>nul
Grüße
bastla
Hallo HansOtto!
Dann leg' doch einfach eine Liste der Rechner (ein Rechnername je Zeile), auf denen gelöscht werden soll, in eine Freigabe und verwende folgende Zeile im Startscript:
Um ein mehrfaches Ausführen zu vermeiden, könnte der Batch so aussehen (Schreibrechte - zumindest für das Computerkonto - in der Freigabe vorausgesetzt):
Grüße
bastla
Dann leg' doch einfach eine Liste der Rechner (ein Rechnername je Zeile), auf denen gelöscht werden soll, in eine Freigabe und verwende folgende Zeile im Startscript:
findstr /i /x "%computername%" "\\Server\Share$\Umstellungsliste.txt">nul && for /d %%i in ("C:\Dokumente und Einstellungen\*.*") do del "%%i\Desktop\Verknüpfung.lnk" 2>nul
@echo off & setlocal
findstr /i /x "%computername%" "\\Server\Share$\Umstellung_erledigt.txt">nul && goto :eof
findstr /i /x "%computername%" "\\Server\Share$\Umstellungsliste.txt">nul || goto :eof
for /d %%i in ("C:\Dokumente und Einstellungen\*.*") do del "%%i\Desktop\Verknüpfung.lnk" 2>nul
>>"\\Server\Share$\Umstellung_erledigt.txt" echo %computername%
bastla