¿Permiso para hacer enlaces simbólicos en Windows 7?

59

¿Cómo puedo otorgar a un usuario en particular el permiso para crear enlaces simbólicos en Windows 7?

He buscado a través de "Política de grupo" y Google, pero no he encontrado nada.

En una nota al margen, ¿hay alguna forma de buscar a través de todo en el Editor de directivas de grupo? Los filtros solo parecen funcionar en subárboles particulares. En realidad, nunca encontré nada usando los filtros.

KarolDepka
fuente
2
Por cierto, ¿alguien sabe por qué la creación de enlaces simbólicos requiere permisos de administrador? ¿Qué es tan peligroso en ellos?
Monseñor
1
@Monsignor: Hace mucho tiempo vi que Microsoft afirmaba que muchos programas no podían manejarlos de manera segura. De todos modos, estoy bastante molesto porque requieren elevación para usar.
Joshua

Respuestas:

63
  1. Abra el Editor de directivas de grupo local : Run> gpedit.msc. Si eso no funciona, pruebe secpol.msc( tenga en cuenta que los usuarios de Windows Home pueden necesitar habilitar el editor de políticas de grupo primero).

  2. Vaya a (los usuarios de Windows Pro pueden no ver los dos primeros elementos):

    Computer configuration → Windows SettingsSecurity Settings → Local Policies → User Rights Assignmenty edite el Create symbolic links.

    ingrese la descripción de la imagen aquí

  3. Agregue el usuario o grupo que desea permitir para crear enlaces simbólicos.

  4. Si ha agregado su propia cuenta de usuario, debe cerrar sesión y volver a iniciarla para que el cambio surta efecto.

Nota : Esta configuración no tiene efecto en las cuentas de usuario que pertenecen al grupo Administradores. Esos usuarios siempre tendrán que ejecutarse mklinken un entorno elevado (como Administrador) debido a la forma en que UAC elimina los privilegios al crear un token de acceso no elevado . Hay una práctica hoja de referencia de Excel para encontrar la configuración de la directiva de grupo: Referencia de configuración de la directiva de grupo para Windows y Windows Server

DanO
fuente
12
Aquí se parecía más a lo siguiente, solo como referencia si alguien se confunde: Panel de control> Herramientas administrativas> Política de seguridad local> Políticas locales> Asignación de derechos de usuario> Crear enlaces simbólicos Y, por cierto, debe cerrar sesión e iniciar sesión nuevamente para la configuración Aplicar.
Seldaek
55
Y puede ejecutar secpol.msc para omitir la primera parte, luego todo lo que le queda es: Políticas locales> Asignación de derechos de usuario> Crear enlaces simbólicos
Seldaek
55
Además: la ejecución de "gpupdate / force" desde CMD o solo desde el cuadro de diálogo Ejecutar también debería aplicar la configuración.
Tobias Plutat
1
¿Alguna forma de hacer lo mismo a través del registro para usuarios que no odian a Windows-8-Pro de Microsoft? gpedit.msc no está disponible para ellos
szx
44
re - "Esos usuarios siempre tendrán que ejecutar mklink en un entorno elevado (como Administrador)" ... por lo que los administradores siempre tienen que ejecutar con elevado ... arg.
Trevor Boyd Smith
0

Algunas configuraciones de Windows fallan gpedit.msc. En este caso, puede probar como alternativa:

  1. ejecutando este script de PowerShell desde aquí :
    function addSymLinkPermissions($accountToAdd){
        Write-Host "Checking SymLink permissions.."
        $sidstr = $null
        try {
            $ntprincipal = new-object System.Security.Principal.NTAccount "$accountToAdd"
            $sid = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier])
            $sidstr = $sid.Value.ToString()
        } catch {
            $sidstr = $null
        }
        Write-Host "Account: $($accountToAdd)" -ForegroundColor DarkCyan
        if( [string]::IsNullOrEmpty($sidstr) ) {
            Write-Host "Account not found!" -ForegroundColor Red
            exit -1
        }
        Write-Host "Account SID: $($sidstr)" -ForegroundColor DarkCyan
        $tmp = [System.IO.Path]::GetTempFileName()
        Write-Host "Export current Local Security Policy" -ForegroundColor DarkCyan
        secedit.exe /export /cfg "$($tmp)" 
        $c = Get-Content -Path $tmp 
        $currentSetting = ""
        foreach($s in $c) {
            if( $s -like "SECreateSymbolicLinkPrivilege*") {
                $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
                $currentSetting = $x[1].Trim()
            }
        }
        if( $currentSetting -notlike "*$($sidstr)*" ) {
            Write-Host "Need to add permissions to SymLink" -ForegroundColor Yellow

            Write-Host "Modify Setting ""Create SymLink""" -ForegroundColor DarkCyan

            if( [string]::IsNullOrEmpty($currentSetting) ) {
                $currentSetting = "*$($sidstr)"
            } else {
                $currentSetting = "*$($sidstr),$($currentSetting)"
            }
            Write-Host "$currentSetting"
        $outfile = @"
    [Unicode]
    Unicode=yes
    [Version]
    signature="`$CHICAGO`$"
    Revision=1
    [Privilege Rights]
    SECreateSymbolicLinkPrivilege = $($currentSetting)
    "@
        $tmp2 = [System.IO.Path]::GetTempFileName()
            Write-Host "Import new settings to Local Security Policy" -ForegroundColor DarkCyan
            $outfile | Set-Content -Path $tmp2 -Encoding Unicode -Force
            Push-Location (Split-Path $tmp2)
            try {
                secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS 
            } finally { 
                Pop-Location
            }
        } else {
            Write-Host "NO ACTIONS REQUIRED! Account already in ""Create SymLink""" -ForegroundColor DarkCyan
            Write-Host "Account $accountToAdd already has permissions to SymLink" -ForegroundColor Green
            return $true;
        }
    }
  1. descargue polsedit que parece una alternativa gratuita a gpedit.msc

Luego ejecute gpupdate /forcepara aplicar los cambios de inmediato

Nikita Malyavin
fuente
1
Además de dar la fuente. agregue el script en caso de que la fuente ya no esté presente.
miroxlav
Windows Starter Edition, Home y Home Premium no incluyen gpedit.msc. Las instrucciones para instalarlo están en mi pregunta y respuesta Windows Starter Edition, Home y Home Premium no incluyen gpedit, ¿cómo lo instalo?
DavidPostill