hansotto
Goto Top

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

Content-Key: 126218

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

Printed on: April 23, 2024 at 14:04 o'clock

Member: St-Andreas
St-Andreas Oct 01, 2009 at 09:47:46 (UTC)
Goto Top
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?
Member: bastla
bastla Oct 01, 2009 at 10:11:46 (UTC)
Goto Top
@andreas#S
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
Alternativ kann das auch von einem Rechner aus per Zugriff über die Administrative Freigabe C$ erledigt werden - dann eben
for /d %%i in ("\\Rechnername\C$\Dokumente und Einstellungen\*.*") do del "%%i\Desktop\Verknüpfung.lnk" 2>nul
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
Member: HansOtto
HansOtto Oct 01, 2009 at 11:32:19 (UTC)
Goto Top
Ja, alle Rechner sind in einem AD.

Es ist so, dass die Rechner nach und nach umgestellt werden. Ich kann also das Skript nicht mit einer OU Verknüpfen.
Das ganze ist eine einmalige Sache.

Gruß,
HansOtto
Member: bastla
bastla Oct 01, 2009 at 11:56:13 (UTC)
Goto Top
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:
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
Um ein mehrfaches Ausführen zu vermeiden, könnte der Batch so aussehen (Schreibrechte - zumindest für das Computerkonto - in der Freigabe vorausgesetzt):
@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%  
Grüße
bastla
Member: DerWoWusste
DerWoWusste Oct 02, 2009 at 22:05:31 (UTC)
Goto Top
Ein lokales Loginskript würde es natürlich auch tun.