Wenn Sie das Problem des umgeleiteten Desktops und das von der Junction "All Users" erzeugte Berechtigungsproblem überspringen möchten, können Sie das Suchverzeichnis hartcodieren und alle Suchpfade mit "All Users" überspringen. Beispiel (die beiden Änderungen sind mit Kommentaren gekennzeichnet):
strShortcut = "TeamViewer 12 Host.lnk" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objShell = CreateObject("WScript.Shell") strUsers = "C:\Users" ' <-- or "C:\Documents and Settings" for XP, etc. Set objUsers = objFSO.GetFolder(strUsers) For Each objFolder In objUsers.SubFolders strCheck = objFolder & "\Desktop\" & strShortcut If InStr(strCheck, "All Users") = 0 Then ' <-- SKIP "All Users" to avoid permission problems Wscript.Echo "Checking:" & strCheck If objFSO.FileExists(strCheck) Then Wscript.Echo "Deleting:" & strCheck objFSO.DeleteFile(strCheck) End If End If Next
Ursprüngliche Antwort:
Sie haben erwähnt, dass Ihr Desktop an einen Netzwerkstandort umgeleitet wird. Wenn Ihre Benutzer über Durchquerungsrechte für den Pfad Ihres Netzwerkprofils verfügen ( strUsers
in diesem Zusammenhang), sollten sie die Fehlermeldung "Zugriff verweigert" erhalten, da die For Each
Schleife versucht, eine Datei vom umgeleiteten Desktop eines anderen Benutzers zu löschen.
Beispiel: Das Löschen \\fileserver\profiles\YourUser\Desktop\TeamViewer 12 Host.lnk
ist in Ordnung, aber beim Löschen \\fileserver\profiles\SomeOtherUser\Desktop\TeamViewer 12 Host.lnk
wird "Zugriff verweigert" angezeigt.