Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-7743

SPIKE Consider replacing Windows CreateSymbolicLink with directory junctions

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Windows
    • Labels:
      None
    • QA Risk Assessment:
      Needs Assessment

      Description

      Puppet currently uses CreateSymbolicLinkW to handle symlink support on Windows at https://github.com/puppetlabs/puppet/blob/f2aa573b887a93fb309c8db039b0914db85187fe/lib/puppet/util/windows/file.rb#L86-L94

      However, DeviceIoControl can also be used to create junctions (aka reparse points) that behave similarly, but do not require Administrative tokens.

      See:

      https://www.codeproject.com/Articles/15633/Manipulating-NTFS-Junction-Points-in-NET
      http://www.flexhex.com/docs/articles/hard-links.phtml#junctions

      There are some slight differences in behavior that should be carefully weighed. Especially look at https://superuser.com/questions/343074/directory-junction-vs-directory-symbolic-link

        Attachments

          Activity

            jsd-sla-details-panel

              People

              • Assignee:
                Unassigned
                Reporter:
                ethan Ethan Brown
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: