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

    • Micron reveals AI companies are spending billions to lock up its memory years in advance by Karthik Mudaliar The demand for more memory is far from over, and Micron is turning the AI-driven memory shortage into a much more predictable business. The company has revealed that it has signed 16 strategic supply agreements backed by roughly $22 billion in customer deposits and other financial commitments. The contracts cover DRAM and NAND deliveries over several years, with some running through 2030. With the AI boom, demand for high-bandwidth memory (HBM) has grown so quickly that large customers are now prepared to help finance future production in exchange for a guaranteed supply. According to Micron’s latest financial results, the company received commitments worth about $22 billion across its new agreements. Around $18 billion is expected to arrive as cash deposits, while the rest will come through other financial arrangements. Micron says the agreements could generate approximately $100 billion in future contracted obligations. They cover around 20% of its expected DRAM shipments and one-third of its NAND shipments during their respective terms. It should be noted that although AI infrastructure is the main force behind the current shortage, not all 16 agreements with Micron involve AI companies. Micron said the customers also include consumer electronics and automotive businesses, two sectors that increasingly compete with data centers for the same manufacturing capacity. HBM is consuming an increasing share of that supply. Unlike conventional desktop or server RAM, HBM stacks multiple memory dies vertically and places them close to an AI accelerator. This gives GPUs and other AI chips access to data at much higher speeds, but it also requires more complicated manufacturing and packaging. Micron says its 12-layer HBM4 memory is now shipping in high volume for a lead customer, with samples also supplied to other companies. The chipmaker has already generated more than $1 billion in HBM4 revenue and says the product is ramping twice as quickly as its earlier HBM3E generation. Samsung has similarly warned that the memory shortage could continue into 2027 and beyond. Consumer memory companies have also had to address sharp increases in DDR5 pricing, suggesting the effects are already reaching beyond the data center. For consumers, that could mean the AI memory crunch lasts longer than expected, even as manufacturers invest heavily in new production.
    • XnConvert 1.112 by Razvan Serea  XnConvert is a cross-platform batch image-converter and resizer with a powerful and ease of use experience. All common picture and graphics formats are supported (i.e. JPG, PNG, TIFF, GIF, Camera RAW, JPEG2000, WebP, OpenEXR) as well as supporting over 500 other image formats. Also available within the batch operations include rotating, adding of watermarks, adding of text along with many image-adjustment features such as brightness, shadows and more. Among the features included are: Batch adding of files and folders Support for drag and drop of files Batch rotating, cropping, resizing and more Adding of photo masks Preserving or removing image metadata in conversions Multipage image file support (i.e animated GIF, APNG, TIFF) Command line integration via NConvert Filters - such as 'Blur', 'Gaussian Blur', 'Emboss', "Sharpen' and much more Effects - such as 'Old camera' and much more Download: XnConvert 64-bit | Standalone | ~30.0 MB (Freeware) Download: XnConvert 32-bit | Standalone Links: XnConvert Website | Screenshot | Release Announcement Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Microsoft updates Visual Studio Code with chat cost tracking and multi-agent chats by Paul Hill Microsoft has just launched Visual Studio Code 1.126, its latest weekly release. This time, the company has focused on letting you see the total cost of chat sessions to spot expensive conversations; enabling multiple chats per session that run side-by-side in one agent host Copilot session; and letting you browse new folders safely in restricted mode. We have now reached the stage where free AI in IDEs is coming to an end. To help you keep track of your costs, VS Code now lets you see the entire cost of a chat session, rather than just individual turns. This should give you more transparency about which sessions consume the most credits, so you can better manage your usage over time and spend less. For those of you using the Agents window, you know it is possible to run and manage multiple agent sessions at once. In this update, a Copilot session started from an agent host can hold several chats at once. Explaining how this feature works, Microsoft writes: Finally, from this update forward, Microsoft will remove the pop-up when opening an untrusted folder. When you open a new folder now, it will automatically open in Restricted Mode. You will see a banner that lets you manage the trust level of the folder. Microsoft has made this change so that it’s easier to start inspecting code without giving it trust right away. If you have VS Code, you can check for updates within the app now to get this new version. Otherwise, you can download it from the Visual Studio Code website.
    • Anthropic accuses Alibaba of using 25,000 fake accounts to copy Claude's capabilities by Karthik Mudaliar Anthropic has accused Alibaba of using nearly 25,000 fraudulent accounts to extract capabilities from Claude on a huge scale. According to a report from Reuters, Anthropic told US lawmakers that operators linked to Alibaba and the company’s Qwen AI team generated 28.8 million exchanges with Claude between April 22 and June 5, 2026. That is a lot of Claude conversations, but Anthropic says this was not ordinary chatbot use. The company believes the accounts were part of a coordinated effort to collect answers that could help train or improve rival AI systems. The alleged campaign reportedly focused on some of Claude’s most valuable skills, including software development, multi-step reasoning, and agentic tasks. In practical terms, that means getting an AI model to plan and complete work across several stages rather than simply answering a single question. This is called 'distillation,' where AI companies use outputs from a larger model to train a smaller and cheaper one. The smaller model learns to imitate useful parts of the more capable system without needing the same amount of computing power. The distillation process isn't automatically suspicious, but the problem comes when one company gathers another provider's outputs without permission and at an industrial scale. Also, this does not mean Alibaba obtained Claude’s source code, model weights, or original training data. Instead, Anthropic claims the accounts repeatedly asked Claude carefully designed questions and collected the answers. Those answers could then be used as training material for another model. Anthropic has made similar accusations against DeepSeek, Moonshot AI, and MiniMax earlier this year. As Neowin previously reported, Anthropic said those three companies collectively generated more than 16 million Claude exchanges through roughly 24,000 accounts. Anthropic says the new campaign produced almost twice as many exchanges in a matter of weeks. Anthropic reportedly told lawmakers that the campaign could help Chinese AI developers approach the capabilities of its Mythos Preview model. Mythos is focused on advanced cybersecurity work, including finding and exploiting complex software vulnerabilities. via Reuters | Photo via DepositPhotos.com
  • Recent Achievements

    • Rookie
      krychek57 went up a rank
      Rookie
    • Grand Master
      Jaybonaut went up a rank
      Grand Master
    • One Year In
      Philsl earned a badge
      One Year In
    • Dedicated
      Scoobystu earned a badge
      Dedicated
    • First Post
      Tom Schmidt earned a badge
      First Post
  • Popular Contributors

    1. 1
      +primortal
      441
    2. 2
      +Edouard
      175
    3. 3
      PsYcHoKiLLa
      134
    4. 4
      Michael Scrip
      79
    5. 5
      Xenon
      77
  • Tell a friend

    Love Neowin? Tell a friend!