¿Cómo creo un enlace en Windows 7 Home Premium como usuario habitual? [duplicar]


69

Esta pregunta ya tiene una respuesta aquí:

Soy un chico de Linux y, como tal, estoy muy perdido cuando intento hacer algo con Windows. Estoy tratando de crear el siguiente enlace:

mklink /d C:\backup\data \\myth\backup\data

Pero no tengo el privilegio suficiente para realizar esta operación. ¿Cómo obtengo suficientes privilegios en Windows 7?

ACTUALIZAR:

Hice clic con el botón derecho en C: \ backup \ data y cambió los permisos a acceso completo para usuarios autenticados, reinició la máquina y probó el comando nuevamente sin suerte. Alguien tiene alguna sugerencia?


Asegúrese de que c: \ backup \ data no exista cuando intente crear el enlace como administrador.
David d C e Freitas

Respuestas:


112

Como se indica aquí ,

La creación de enlaces simbólicos requiere SeCreateSymbolicLinkPrivilege ("Crear enlaces simbólicos"), que se otorga solo a los administradores de forma predeterminada (pero puede cambiarlo mediante la política de seguridad).

Para cambiar las políticas:

  1. Haga clic derecho en StartRuny ejecútelo secpol.msc.

  2. Abrir Security Settings → Local Policies → User Rights Assignmenty seleccionar Create symbolic links(que representa SeCreateSymbolicLinkPrivilege).

ingrese la descripción de la imagen aquí

  1. Haga doble clic en el elemento y agréguese (o todo el Usersgrupo) a la lista.

Los cambios se aplicarán cuando cierre la sesión y vuelva a iniciarla.


2
Tenga en cuenta que en Win7, el grupo 'Usuarios' no estaba visible para mí hasta que, desde el cuadro de diálogo "Seleccionar usuarios o grupos", hice clic en el botón "Tipos de objetos" y agregué "grupos".
Jonathan Hartley

77
Esto no funciona para mí, independientemente de si agrego mi usuario, "Usuarios" o "Todos". Me desconecté y reinicié, pero en mi directorio de inicio, el comando "mklink / D docs Dropbox" aún me da "No tienes privilegios suficientes para realizar esta operación". El mismo resultado si trato de archivos en lugar de directorios.
Jonathan Hartley

3
Mi problema resuelto por la respuesta de Brandon Donnelson: además de lo anterior, el usuario que ejecuta "mklink" no puede ser administrador.
Jonathan Hartley

@ Jonathan. No funcionó para mí. Y parece tonto, o tal vez estoy malentendido. ¿Windows 7 no permite que un administrador cree enlaces simbólicos, pero solo los que no son administradores después de que un administrador les otorga privilegios?
Ben

44
@Ben, estoy de acuerdo, parece una locura. Sin embargo, al reflexionar, creo que resolví mi problema ejecutando la ventana 'cmd' haciendo clic derecho y seleccionando 'ejecutar como administrador'. Alguien me explicó que al iniciar un proceso, Windows le quita los privilegios de administrador, a menos que elija 'ejecutar como administrador'. En ese momento, si no es administrador, debe ingresar una contraseña de administrador. Si ya es administrador, entonces no tiene que ingresar nada. Quizás eso me permitió ejecutar 'mklink' desde la ventana de cmd.
Jonathan Hartley

19

Acabo de descubrir que puedo crear una 'Unión' incluso cuando no puedo crear un enlace simbólico:

mklink [/D] /J junctionname filename

donde / J indica 'crear una unión', y el / D es, creo, para si el archivo nombrado es un directorio. (mi usuario es actualmente administrador)

Sin embargo, una unión a un archivo 'bat' no parece ser ejecutable, por lo que en realidad no sirve de nada.

¿Alguien entiende por qué es esto o cómo se puede solucionar para proporcionar un enfoque alternativo al problema del OP?


11
Puede crear un enlace duro ( mklink /H) sin privilegios de administrador, y será ejecutable. Los enlaces duros son para archivos, las uniones son para directorios, los enlaces simbólicos son para ambos (y /Dse usa para indicar que un enlace simbólico es para un directorio).
Brilliand

3
Sin embargo, las uniones y los enlaces duros son inútiles para el ejemplo en el OP, porque ninguno de ellos puede apuntar a una unidad de red (los enlaces duros están limitados a la misma partición, las uniones están limitadas a las unidades locales); solo un enlace simbólico o un acceso directo de Windows pueden hacer eso.
Brilliand

12

Encontré que solo un no administrador puede hacerlo. Agregue no administrador para crear enlaces simbólicos y runas no administrador. Deberá agregar una persona con privilegios que no sean de administrador. Luego le das permiso al objetivo para el no administrador, para que pueda hacer las runas mklink.


1
Esto resolvió totalmente mi problema: mi usuario es administrador, pero "mklink" no funcionaría hasta que habilitara la cuenta "invitado", llame a "runas / user: guest cmd" y luego ejecute mklink desde esa nueva sesión de cmd. También requería otorgar permisos permanentes para que la cuenta de invitado pudiera ingresar y modificar mi directorio de inicio, donde quería el enlace simbólico, lo que provoca una oleada de diálogos de error, pero parecían dañinos.
Jonathan Hartley

Para el registro, "mklink" no funciona para mi usuario habitual que es administrador, pero funciona cuando se inicia desde un cmd que ha sido "runas / user: guest cmd" (no pude entender la cita requerida para ejecutar directamente el comando mklink como usuario invitado) o cuando elimino mi propia cuenta del grupo de 'administradores'.
Jonathan Hartley

3
También vale la pena señalar que es posible ejecutar mklink con éxito con una cuenta que tenga derechos de administrador. Pero eso requiere que UAC esté apagado.
Vladimir Sizikov

2

Las soluciones anteriores no funcionaron para mí porque no solo no podría crear un usuario "invitado" en mi máquina, sino que no puedo pedirles a todos los usuarios de mis herramientas que lo hagan también en sus máquinas. Tampoco es razonable exigir que usen consolas de administrador.

Mi solución es usar: elevate.cmd y elevate.vbs

  1. Descargar desde: http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
  2. Coloque esos dos archivos en la ruta de su sistema (o en algún lugar conveniente de la red)
  3. elevate.cmd cmd /c "cd /d LINK_DIR && mklink /D LINK_NAME LINK_TARGET_PATH"

Contras: elevate.cmd regresa inmediatamente, pero responder el diálogo UAC lleva tiempo. Esto me obligó a agregar un "¿ya aprobó el cuadro de diálogo UAC?" pregunta a mi guión. Es posible omitir "elevate.cmd" marcando el código de salida para el siguiente comando: whoami /groups | find "S-1-16-12288"(el código de salida 0 significa que tiene una consola Adminstrator).


2

Encontré este problema hoy también. Tenía una tarea de compilación NAnt tratando de crear enlaces simbólicos en una computadora. Estaba siendo rechazado por falta de privilegios. Encontré esta publicación que ayudó a resolver mi problema: http://josh.mainelan.net/tag/mklink/ .

La sección relevante:

  1. Abra su cuadro de ejecución, escriba "secpol.msc" y haga clic en Aceptar.
  2. Navegue en la carpeta Configuración de seguridad \ Políticas locales \ Asignación de derechos de usuario.
  3. Busque "Crear enlaces simbólicos" y agregue el grupo Usuarios.

Creo que necesita reiniciar su computadora o algo después de hacer esto.


1

Ejecute el símbolo del sistema como administrador para ejecutar este comando.

Escriba cmd (o comando) en el menú de inicio y haga clic derecho sobre él y elija "ejecutar como administrador".

Ahora, cualquier comando que ejecute se ejecutará con privilegios de administrador.


Como otros han mencionado, SeCreateSymbolicLinkPrivilege es lo que se requiere. Sin embargo, incluso si usted es el administrador en Windows 7, la mayoría de los programas no se ejecutan con privilegios administrativos. Para obtener privilegios administrativos para un programa, siga los pasos que mencioné anteriormente.
teknikqa

Creo que él sabe acerca de postularse como administrador, por eso está haciendo la pregunta
barlop el

-5

Recomiendo Ultimate Windows Tweaker . Úselo para seleccionar "Mostrar propiedad de Take Take" para solucionar el problema de los permisos y "Mostrar ventana de comando Open Here" para abrir el símbolo del sistema en la carpeta correcta.

texto alternativo


Instalé, abrí el explorador, hice clic con el botón derecho en la carpeta a vincular y "tomé posesión" y luego abrí la ventana de comandos desde aquí. Ejecuté el comando mklink anterior y obtuve el mismo error nuevamente.
stephenmm

Aw bien, vale la pena intentarlo. Como usuario reciente de Windows -> Linux, puedo simpatizar completamente con las cosas que no funcionan y no sé por qué. Buena suerte.
outsideblasts

55
Irónicamente, ni tomar posesión ni mostrar el símbolo del sistema le otorga privilegios de administrador. Al igual que en Linux.
surfasb

-1 Intenta probarlo tú mismo antes de publicarlo y verás que no funciona
barlop
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.