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

SPIKE Consider replacing Windows CreateSymbolicLink with directory junctions

    XMLWordPrintable

    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

            People

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

              Dates

              Created:
              Updated:
              Resolved:

                Zendesk Support