Vista's Fake Symlink Support


Recommended Posts

Symlinks haven't really been added to Windows Vista. It seems that the only calls to the symlink API Windows Vista occur during the creation of such files or when accessing them from Windows Explorer. What this means is, you can't access symlinks from another OS. To be fair, you probably didn't expect to be able to dual-boot into XP and suddenly have access to the symlinks you created on the Vista partition earlier that day. But then again, you probably expected to be able to access these symlinks through a network share/UNC path or as files on a webserver - But you can't!

Article: Vista Symlinks Revisited...

Article 2: Vista Get's Symlinks - Read it for info on what Symlinks are

Source: NeoSmart Technologies

Edited by Computer Guru
Link to comment
https://www.neowin.net/forum/topic/513824-vistas-fake-symlink-support/
Share on other sites

Symlinks

This isn't as complete an explanation as I'd like to give. I'll probably fix this as soon as final exams are over here at MIT (I'm an undergraduate).

A symlink is a UNIX thing. I think there's a similar concept on Macintoshes called an "alias". (Mac people, please fill me in on this, or correct me.) Basically, it's a filename that has associated with it a string rather than the contents of a file. This string is the name of another file to which the symlink points. If you try to read the symlink, you see the file-to-which-is-pointed-by-the-string. You can make symlinks to anything that is in a UNIX filesystem, including regular files and directories. I use them a lot to make links from one place in my home directory to others places, especially when people might look in more than one place to find a bit of information or a file they're trying to find.

You create symbolic links with the command

Gooooooogle is your friend :)

Lol guys, read the article.

In the first and second paragraphs alone there are 2 links to the original NeoSmart article discussing Symlinks in Windows Vista... hence the title "Revisited"

Here's the first article: http://neosmart.net/blog/archives/278

I'll update the original post.

Anyway, I for one am majorly PO'd that such an important feature was faked in Windows Vista.

Thats abit stupid (Well Done Microsoft)...This going to mean symlinks created in XP will not work within Vista? It kinda sounds like it.

Looks like they Droped something without publishing it (Keeping it a secret)

Not exactly. You never could create Symlinks in XP, so it was a big deal when Vista shipped with Symlink support. Then it turns out that Vista doesn't have real symlinks, as in they're not a part of the filesystem and it doesn't support "bridging" to symlinks so you can access them from a non-Vista workstation like you can with Linux.

It also means that Microsoft won't support symlinks in webservers too.. Great going! /sarcasm

isnt that just a short cut?

Sort of. But the shortcuts Windows puts in are recognized and processed only by Explorer (to my understanding - there may be one or two other things that recognize them). A third party app with a save/load dialog will not read them, and just see a ".lnk" file.

Thats abit stupid (Well Done Microsoft)...This going to mean symlinks created in XP will not work within Vista? It kinda sounds like it.

Looks like they Droped something without publishing it (Keeping it a secret)

Symlinks aren't even supported in XP. :p

Anyway, too bad this sounds more like a hack than anything else then. Things like no UNC path support is especially bad.

And yes, symbolic links are like shortcuts, just that instead of the shortcut, to the user it's supposed to be a real file system-level link to the destination, not a .lnk file with information inside it describing what it points to, with all the disadvantages that has. (a third party app may need to parse the information in the .lnk file if not having access to the Windows API)

Edited by Jugalator
I don't know, but it looks like you are the only one talking of this... even the Wiki say only your site... *Yawn*

Anything else?

Yeah, NeoSmart Technologies is always on top of things :D

Here're a couple more links if you really want to know:

MS: http://blogs.msdn.com/junfeng/archive/2006/04/15/576568.aspx

Computer Zen: http://www.hanselman.com/blog/MoreOnVistaReparsePoints.aspx

{I have no idea why he calls them reparse points though}

It's fully documented in our first post, and you can try it for yourself and see.

mklink on vista, then open up XP/2k/2k3 and see how it doesn't work.

I can use ln on my Fedora and access it via a UNC path from Vista, XP, Mac, ROS, and SkyOS just to name a few - and of course it works on the webserver as well. My entire website used to be (before I switched to Windows) run off a symlink'd directory.

I guess you'll just have to trust NeoSmart if you can't test it for yourself :D

i concur.

doesn't seem to be an issue to anyone including myself..

That's because you haven't tried to access symlinks from another OS (or haven't even used symlinks yet) and/or don't care about cross compatibility.

You probably aren't running a Longhorn-Powered webserver, nor do you have Linux, Mac, and Windows one hard drive on 3 different machines....

.lnk files are basically just serialized PIDLs - a Windows Shell structure.

Symlinks in Vista are "real" symlinks. Contrary to this post's claim - you can traverse into a symlink'd directory from the command console, or via a network share. They probably ACL'd them wrong or something.

I don't know how they look or work to other operating systems - but that's more an issue with the other OS's support of NTFS 6, and not Vista.

Edited by Brandon Live

XP doesn't know how to interpret symlinks. If you make a hard link (directory junction -- also available via the mklink command) it works just fine from XP. As the article says, XP doesn't know how to read symlinks, but Vista does. What you have here is not a problem with the technology, but a problem with the client being able to understand what's being presented to it.

Having said that, I fail to see what the real problem is. Unless you're really "walking" the file system of remote Vista/Longhorn systems, most symlink benefits are realized through the localized applications; IIS for example.

@Brandon:

Not so. UNC File Shares are not FS-specific. It's a standard - that's why non-NTFS supporting OSes like Unix can access XP NTFS drives via UNC paths. It's because XP on-the-fly translates files and paths into the standard Samba platform.

Also, if what you say is true, then you couldn't access Linux symlinks via UNC from XP/2k - but you can. Clearly, Vista is to blame here.

mram: True. But just like I said, it doesn't *have* to understand it, no one asked Vista to send out the info as a non-UNC-compliant symlink. MS should realize that not all networked PCs will be running Windows Vista, but since when has MS cared about compatibility?

A good example of a pretty widely-used symlink (for those who don't quite understand the idea) is the www folder on your Linux-based web server. It's actually a symlink to the public_html folder, although I'm not sure of this is ALWAYS the case (any web server I've seen has it though).

My question is, are the Linux symlinks you're browsing in XP off of a currently-running computer through a network? If so, then the symlink information is probably being sent from Linux itself, and not being truly read by XP. I could be completely off though, as I've got good but limited experience with *nix and its filesystems.

according to the sysinternals guy, Windows 2000 and up have supported symbolic links. http://www.microsoft.com/technet/sysintern...k/Junction.mspx

Win2000 and up supports directory symbolic links and hard links for files, but not symbolic links for files, until Vista.

Junctions and Hard Links are supported by 2K, XP, 2K3 and Vista but only Vista will recognize a smybolic link, cause it's new to Windows Vista.

Junctions = Directory (can exist on another partition)

Hard Link = File (Can only exist on the same partition)

Hard Links can be used in Windows to have a file appear in 5 different folders but only take up the hard drive space in one folder.

Junctions can be used exactly like unix server style public_html and the www folder. This is useful if you need a folder like Document and Settings to appear on the C drive but your running out of room so you can move the entire folder to another partition or drive.

Junctions created in XP will be recognize by other Windows version that support it.

The symlink support is hardly a hack or faked. The way CreateSymbolicLink works is to call FSCTL_SET_REPARSE_POINT, which is how existing juntion points are created. All redirection would be handled at the kernel level, in a transparent manner.

I would curious to know if junction points are broken when accessing them via Samba from Linux, since they would use the same code path as the new symlinks. If they are not broken, I wonder if the Samba Linux implementation has code to handle junction points.

Edited by Andareed

Our article made OSNews, read the excelllent learned comments made at http://www.osnews.com/story.php?news_id=16524 for an answer to your question, Andareed (ignoring the first BS reply, that guy has no idea what he's talking about as later replies prove).

@Brandon:

Not so. UNC File Shares are not FS-specific. It's a standard - that's why non-NTFS supporting OSes like Unix can access XP NTFS drives via UNC paths. It's because XP on-the-fly translates files and paths into the standard Samba platform.

I think you're confused. "Samba" is a Unix implementation of SMB - the Microsoft standard for network sharing. "Samba" is not perfect, and does not necessarily support all the features present in the Vista version of SMB.

Also, if what you say is true, then you couldn't access Linux symlinks via UNC from XP/2k - but you can. Clearly, Vista is to blame here.

That's probably something done by the Samba server running on the Linux system, not by Explorer.

mram: True. But just like I said, it doesn't *have* to understand it, no one asked Vista to send out the info as a non-UNC-compliant symlink. MS should realize that not all networked PCs will be running Windows Vista, but since when has MS cared about compatibility?

How can it be "non-UNC-compliant"? SMB is a Microsoft technology. It sounds like it's Samba that you should be blaming, no?

The answer to my question is that junctions are always resolved/redirected on the server side, whereas symlinks need to be configured to have this behaviour. The following info was copy/pasted from a comment at OSNews.

Q: So then, what is the difference between a shortcut and the links?

A: A shortcut is a file implemented by Shell32 via the IShellLink interface. These files tell shell to jump to a different location. A symbolic link is implemented under the filesystem API, so regular applications calling CreateFile get the benefit of links without needing to implement their own code, as they would with IShellLink.

Q: What is the difference between a junction point, and a directory symlink?

A: Junctions and directory symlinks have subtly different semantics. For example, symbolic links are always evaluated on the client in a network scenario, whereas junctions are evaluated on the server. Also, ACLs are handled differently too. However, they are broadly similar.

Q: Should I be able to access a symlinked folder via the network?

A: Yes, remember that the client and the server needs to be Vista. By default only local to local links are turned on. You would need to enable the Local to Remote symlinks through the policy editor.

https://blogs.technet.com/filecab/articles/457811.aspx

Checking the Group Policy Editor in Vista (gpedit.msc) as advised above yields the following option under Computer Configuration | Administrative Templates | System | NTFS File System:

Selectively allow the evaluation of a symbolic link

o Not Configured (Default)

o Enabled

o Disabled

[] Local Link to Local Target

[] Local Link to a Remote Target

[] Remote Link to a Remote Target

[] Remote Link to a Local Target

Explaination:

Symbolic links can introduce vulnerabilities in certain applications. To mitigate this issue, you can selectively enable or disable the evaluation of these types of symbolic links:

Local Link to a Local Target

Local Link to a Remote Target

Remote Link to Remote Target

Remote Link to Local Target

For further information please refer to the Windows Help section

NOTE: If this policy is Disabled or Not Configured, local administrators may select the types of symbolic links to be evaluated.

mram: True. But just like I said, it doesn't *have* to understand it, no one asked Vista to send out the info as a non-UNC-compliant symlink. MS should realize that not all networked PCs will be running Windows Vista, but since when has MS cared about compatibility?

UNC covers how to name things and has nothing to do with symlinks. A "UNC compliant" application would just mean that it understands and supports paths of the form \\computername\sharedfolder\resource.

I think you're confused. "Samba" is a Unix implementation of SMB - the Microsoft standard for network sharing. "Samba" is not perfect, and does not necessarily support all the features present in the Vista version of SMB.

That's probably something done by the Samba server running on the Linux system, not by Explorer.

How can it be "non-UNC-compliant"? SMB is a Microsoft technology. It sounds like it's Samba that you should be blaming, no?

My bad. I meant SMB.

Not at all though, the proof being that Vista symlinks aren't accessible even from Windows XP via UNC/Network shares.

However, Vista/XP can both access Symlink'd files and folders in SMB-compliant *nix network shares.

The SMB standard as published by Microsoft themselves requires that the operating system itself intercept and translate calls to non-physical (softlink) paths - something that Vista doesn't comply with, and the reason why this is a fake.

;)

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Ditto that, I have a few Alexa devices around the house to control lighting and such for a disabled person I live with, and it shows a *lot* of ads on the display. The dots are simple but effective. A lot cheaper too.
    • Go for a Echo Dot or Pop instead. These Echo shows just advertise to you.
    • NetSpeedTray 1.3.3 by Razvan Serea NetSpeedTray is a lightweight, open-source Windows network monitor that shows live upload and download speeds directly on the Taskbar. Designed for efficiency, it quietly sits in the system tray, conserving CPU and battery with dynamic updates. It blends seamlessly with Windows 10/11, adapts to light/dark themes, and auto-positions to avoid overlaps. Features include accurate interface detection, customizable display, optional mini-graph, color coding, granular font and unit control, detailed per-interface history graphs, safe data management, and easy CSV export—bringing the network monitoring Windows forgot. NetSpeedTray key features: Lightweight & Efficient Runs quietly in your system tray without consuming resources. Features a "Dynamic Update Rate" that lowers refresh frequency when the network is idle to save CPU and battery life. Native Look & Feel Blends seamlessly with Windows 10/11 UI. Smart detection for light and dark taskbar themes ensures text is always visible. Intelligent & Adaptive Positioning Automatically finds empty space next to your system tray and shifts to make room for new icons, preventing overlaps. Seamless OS Integration Behaves like a native Windows component. Hides instantly with auto-hiding taskbar Hides when a fullscreen app is active Smart Network Monitoring Accurate by Default: Auto mode identifies your main internet connection and ignores noise from VPNs or virtual adapters. Easy Interface Selection: Switch effortlessly between Auto, All, or Selected network interfaces via intuitive radio buttons. Total Visual Customization Free Move Mode: Unlock and place the widget anywhere on your screen. Optional Mini-Graph: Real-time graph of recent network activity with adjustable opacity. Color Coding: Customize colors and speed thresholds to quickly see network status. Granular Display Control Text & Font: Adjust font family, size, weight, and alignment. Units: Automatic (B/s, KB/s, MB/s) or fixed Mbps display. Precision: Set decimal places and always show them for uniform appearance. Detailed & Intelligent History Graph Smart Scale: Logarithmic scale shows low-level traffic and large spikes clearly. Per-Interface Filtering: View speed history for specific adapters (Wi-Fi, Ethernet, VPN). Safe & Efficient Data Management: Adjustable retention, automatic cleanup, optimized database. Easy Data Export: Export raw data to .csv or save high-quality graphs for reports. NetSpeedTray v1.3.3: The Updater Fix A stabilization release that repairs a critical regression in v1.3.2: the app shipped without OpenSSL, which silently broke every HTTPS request — including the built-in update checker (the "Could not check for updates" error many of you hit). This release restores it, hardens the build so it can't happen again, and fixes a startup crash plus four other reported bugs. Changes: Fixed update checking — Resolved a critical issue that prevented the app from checking for updates ("Could not check for updates"). Fixed startup crash with Auto-Cycling — The app no longer crashes on launch after enabling Cycle display mode. Fixed incorrect network speeds on 10GbE adapters — Multi-gigabit network cards now display speeds correctly instead of being stuck at 0. Improved color coding — Default color is shown when idle, and color/threshold changes now apply immediately without restarting. Fullscreen visibility fix — The widget now correctly stays visible over fullscreen apps when Keep Visible is enabled. Improved AMD Ryzen temperature detection — More reliable CPU temperature monitoring for Ryzen processors. Cleaner upgrades — Installer now removes outdated application files during upgrades, preventing DLL/version conflicts while preserving user settings. Improved stability — Fixed potential DLL loading issues by excluding critical OpenSSL and NumPy components from UPX compression. Better settings window — Scrollbars removed and layout improved for a cleaner experience. Localization improvements — Updated translations and completed missing UI text across all supported languages. More reliable releases — Added regression tests covering recent critical fixes, bringing the test suite to 196 passing tests. [full release notes] Download: NetSpeedTray 1.3.3 | 87.9 MB (Open Source) Download: NetSpeedTray Portable | 101.0 MB View: NetSpeedTray Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Why Delta Chat is the best decentralized messenger you have probably never tried by Paul Hill There is no shortage of messaging apps out there; we have WhatsApp, Messenger, and Telegram, just to name a few. While Meta has taken steps to incorporate encryption into Messenger and WhatsApp, they still leave a lot to be desired. If you are in the market for a messaging app that promotes security, privacy, and optional anonymity, you'll want to read what I have to say about Delta Chat. For those not familiar with Delta Chat, rather than relying on centralized servers as you do with Facebook Messenger, it relies on email. Essentially, it is a chat interface that feels like a messaging app, but secretly in the background, it is firing off emails. In the past, you used to have to sign in with your email account. When you sent messages to people, it would just be sending encrypted messages to their inbox, which their Delta Chat client would decrypt. When I first learned about Delta Chat, it required users to sign in with an email account, but I was pleasantly surprised upon trying it in 2026 that this is no longer a requirement, or the preferred method was to use the app. Recently, I’ve tried UAD-ng on my old Nokia 3.4 to disable most of the Google apps because the bootloader is locked, and this is the next best option. While finding replacement apps in F-Droid, I came across Delta Chat again, and it has undergone quite a big change since I last used it, with its new chatmail relays, which no longer require you to sign in to your own email account, providing anonymity, and they offer greater security. Android and Desktop Delta Chat apps. Not only does it run on my de-googled phone, but it also works on desktop computers and iOS, making it truly ubiquitous. For me, Delta Chat is a wonderful alternative messenger because it gives you more control. It supports switching between different profiles, which you can set up super quickly; you don’t register a username, you don’t register a password. The only thing you do have is a random string email address on a chatmail relay (which you don’t have to memorize). To maintain access to your profile, you just need to add a second device to your account via QR code or make a backup of your account, which you can restore later. Fail to do these, your account is gone - as it should be if you don’t want to leave accounts that could get hacked later on. My decision to block Google stuff on my Nokia was done for practical reasons; the device sucked when it launched, and it sucks even more now. The nice thing about F-Droid and the apps within is that they’re usually lightweight, free of bloat, and work well on that device. What was inconvenient for me was that it was hard to send messages from that device, say if I wanted to copy a code over to my main phone or send family members a link from that device. That’s when I decided to look at the available chat apps and saw Delta Chat. Another nice thing about Delta Chat is its notifications. Some messaging apps rely on Google’s ecosystem for notification transport on Android; however, with Delta Chat, it can use Google’s solutions if you have Play Services or MicroG installed. Otherwise, it is able to keep a background connection to the chatmail relay server so that you can get notified when you receive a message. As free software, the code of Delta Chat is open for all who want to take it and build upon it. In the future, if the developers of Delta Chat make a catastrophically bad decision and take the app in an undesirable direction, users can take the code and fork the project. This contrasts with closed-source apps from corporations that can take their products in any direction they like. By relying on free software instead of closed-source programs, you actually control your computing. I’ve spoken at length about how running this type of software is like owning your own home rather than renting it. The same applies here; if you use Delta Chat, you don’t need to worry about it going away in the future. Whether it is Telegram, WhatsApp, or Messenger, you are required to register a username and password to use these services. A major flaw in this design is that anyone can try various passwords and potentially break into your account with your complete chat history intact. Sure, there is encryption in Messenger, where you need a second PIN and two-factor authentication in Telegram, but breaches happen all the time. Unlike before, when you used to sign in to your email account to send and receive messages, the primary way to do it now is to create an account on a chatmail relay. The resulting email address is a random string followed by the name of the relay you pick. This means you can start and begin adding contacts Without a username and password, you either need to ensure you have a backup or at least one device running your Delta Chat profile. The primary way to log in on another device is to go to the settings and add a second device. Then, you’ll just scan a QR code with your new device, and it’ll log in to your account and sync all your chat history and contacts. To end users, Delta Chat just looks like any instant messenger; however, it is really sending your messages as encrypted emails to your contact. This is pretty cool from a censorship perspective, as it makes the service more difficult to block. Previously, the main way to use the app was by logging in with email, but nowadays, it’s recommended that you use chatmail relays. Chatmail relays temporarily hold messages in case your device is offline. They are cheap, simple servers that don’t store data as group states. Other information, like your name and avatar, only exists on your device and the devices of those you share your contact information with. The relays are also decentralized and operated by various groups and individuals. It is even possible to set up your own chatmail relay, but most people will want to use one hosted elsewhere. To keep your messages secure, Delta Chat uses a secure subset of the OpenPGP standard that gives you automatic end-to-end encryption. It also uses Secure-Join to exchange encryption setup information through QR-code scanning or invite links. Autocrypt is also used to automatically establish end-to-end encryption between contacts and all members of group chat, but sometime this year Autocrypt v2 will be rolled out, bringing post-quantum resistant encryption and forward secrecy. The Delta Chat FAQ is an interesting read that explains many more details about the app. Credit: Pexels Delta Chat is unique among messaging apps because it is built on email, a technology that’s decades old and isn’t going anywhere soon. What’s more is that email is not centralized either, so it’s far more difficult for any authoritarian regime to disrupt the Delta Chat app. I haven’t spoken too much about features yet, so I will do that now. Delta Chat allows you to do one-on-one chats, group chats, and create channels. It also supports file sharing and making audio and video calls when chatting one-to-one, but it’s not available for group chats right now. At the time of writing, the calling functionality is disabled and can be enabled in Settings > Advanced > Debug Calls. I have used the video calling feature, and the quality is excellent. It works over WebRTC, another open standard. The app also lets you send voice notes, enables disappearing messages, and has its own app ecosystem. I did try playing chess one time there, but it was a bit spotty; though, we did manage to complete the game with a victory for me. To add people to Delta Chat, you can either give them your Delta Chat link or your QR code to scan. These are the only ways to add users, so you won't have any spam bots bothering you. If the people you want to chat with don't have the app yet, just send them your link, and it will take them to a webpage where they can install the app and then add you. It's really quick for them to install it and get started, which is nice. Credit: Microsoft. The Majorana 2 quantum chip unveiled in 2026. I do not think quantum computers are too far out now, and I do hope that Delta Chat is able to push out Autocrypt v2 sooner, rather than later, so bad actors do not attempt to collect encrypted communications and then decrypt them in the future using quantum computers. By getting people’s messages post-quantum-safe now, users won’t have to worry when quantum computers start cracking legacy encryption. Overall, I would recommend this app to people who are already past WhatsApp and Messenger and have perhaps begun using apps like Telegram or Session. It shares a lot of characteristics with these apps and goes a lot further than Telegram in terms of security. By being based on email, it is also resistant to censorship, and the lack of a username and password makes you anonymous (if you want to be) and safe from brute force password cracking attempts. Let me know in the comments if you’ve tried Delta Chat recently. Do you think it's a good bulwark against governments that are tightening their grip on the internet?
  • Recent Achievements

    • One Year In
      bernmeister earned a badge
      One Year In
    • Week One Done
      Scoobystu earned a badge
      Week One Done
    • Week One Done
      tuben earned a badge
      Week One Done
    • First Post
      OffsetAbs earned a badge
      First Post
    • Reacting Well
      OffsetAbs earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      474
    2. 2
      +Edouard
      220
    3. 3
      PsYcHoKiLLa
      156
    4. 4
      Steven P.
      73
    5. 5
      FloatingFatMan
      71
  • Tell a friend

    Love Neowin? Tell a friend!