Batch File - Delete Shortcut From ALLUSERS Desktop

65,620

Solution 1

As stated by Garrett in comments of this question, the only solution I see is as follows:

SET Version=XP

VER | FINDSTR /IL "6.1." > NUL
IF %ERRORLEVEL% EQU 0 SET Version=7

IF %Version% EQU 7  (
 del "%PUBLIC%\Desktop\MyShortcut.lnk"
)
IF %Version% EQU XP  (
 del "%allusersprofile%\Desktop\MyShortcut.lnk"
)

One might note that according to this StackOverflow question, and a blog post by Raymond Chen, a dir of %allusersprofile%\Desktop\<directory> should give the proper results on both XP and 7, however in my experience it does not.

Solution 2

You didn’t specify a type of script (VBS vs. BAT), but here is a VB script that is system agnostic. Not my script, I pulled it from this Microsoft site. According to that page it’s been verified to work on Windows 2000, XP, Vista, and 7.

'''''''''''''''''''''''''''''''''' 
'  
' This VB script removes the requested desktop shortcuts 
'  
' Change only the file name (test.lnk) 
' 
' Script created by Holger Habermehl. October 23, 2012  
'''''''''''''''''''''''''''''''''' 
Set Shell = CreateObject("WScript.Shell") 
Set FSO = CreateObject("Scripting.FileSystemObject") 
DesktopPath = Shell.SpecialFolders("Desktop")
FSO.DeleteFile DesktopPath & "\test.lnk"

EDIT

The above code will look at the specific user's desktop (i.e. Username "john" logs in, the code will look at "C:\Users\john\Desktop\" or "C:\Documents and Settings\john\Desktop"). If you want to check the public desktop, then change the line that reads

DesktopPath = Shell.SpecialFolders("Desktop")

to

DesktopPath = Shell.SpecialFolders("AllUsersDesktop")

But note that depending on the user's privileges and when you run the script, they may get a UAC box asking to sign in as an admin on Windows Vista/7. I'd run the script in a GPO as a computer startup script.

Solution 3

This works in win7.

I haven't been able to try it in XP but I think it should work.

    del "%HOMEDRIVE%%HOMEPATH%\Desktop\test.lnk"

Save it as a batch file and run it normally. If your account doesn't have administrator privileges you may need to right-click and select "run as administrator." You could also open cmd and just type it as a command.

Share:
65,620

Related videos on Youtube

Damien
Author by

Damien

Updated on September 18, 2022

Comments

  • Damien
    Damien over 1 year

    In Vista/7, if I try to delete a shortcut using the following command -:

    del "%allusersprofile%\Desktop\MyShortcut.lnk"
    

    ...Windows sees this folder as empty and doesn't delete the file.

    The environment variable "allusersprofile" points to "C:\ProgramData" however "Desktop" is actually a soft symbolic link to the C:\Users\Public\Desktop folder.

    The problem seems to be that these soft links are simply Window Explorer shortcuts and are not recognized by cmd prompts or batch files.

    The only solution that I can see is to do the following -:

    XP:

    del "%allusersprofile%\Desktop\MyShortcut.lnk"
    

    Vista/7:

    del "%PUBLIC%\Desktop\MyShortcut.lnk"
    

    Is there any common solution for both OSes?

    • Garrett
      Garrett over 12 years
      I'm not aware of any such way due to the file structure changes between XP and Vista/7. One way you could achieve this functionality in a script is to get the OS version using ver, run it through a series of if/else checks, and then use goto to run the appropriate command.
  • bertieb
    bertieb almost 9 years
    Hi Gooofy, thanks for the answer. Does this cover both XP and Vista/7, as stated in the original question?
  • DavidPostill
    DavidPostill almost 8 years
    That command is deleting a different file ... %HOMEDRIVE%%HOMEPATH% is not the same as %allusersprofile%
  • theGiantMidget 2000
    theGiantMidget 2000 almost 8 years
    It still goes to the desktop though. %allusersprofile% is different but I thought %HOMEDRIVE%%HOMEPATH% might work for what he was asking. @DavidPostill
  • DavidPostill
    DavidPostill almost 8 years
    One is the desktop for all users and the other is for a specific user. The contents are combined to create the desktop for the logged in user.