Permissão para criar links simbólicos no Windows 7?


59

Como posso conceder a um usuário específico a permissão para criar links simbólicos no Windows 7?

Pesquisei a "Política de Grupo" e o Google, mas não encontrei nada.

Em uma nota lateral, existe uma maneira de pesquisar tudo no Editor de Diretiva de Grupo? Os filtros parecem funcionar apenas em subárvores específicas. Na verdade, nunca encontrei nada usando os filtros.


2
BTW Alguém sabe por que criar links simbólicos requer permissões de administrador? O que é tão perigoso neles?
Monsenhor

11
@ Monsignor: Vi há muito tempo que a Microsoft alegava que muitos programas não podiam lidar com eles com segurança. De qualquer forma, estou um pouco irritado que eles exijam elevação para usar.
21717 Joshua

Respostas:


63
  1. Abra o Editor de Diretiva de Grupo Local : Run> gpedit.msc. Se isso não funcionar, tente secpol.msc(observe que os usuários do Windows Home talvez precisem ativar o editor de diretivas de grupo primeiro).

  2. Vá para (os usuários do Windows Pro podem não ver os dois primeiros itens):

    Computer configuration → Windows SettingsSecurity Settings → Local Policies → User Rights Assignmente edite o Create symbolic links.

    insira a descrição da imagem aqui

  3. Adicione o usuário ou grupo que você deseja permitir para criar links simbólicos.

  4. Se você adicionou sua própria conta de usuário, precisará sair e fazer login novamente para que a alteração tenha efeito.

Nota : Essa configuração não afeta as contas de usuário que pertencem ao grupo Administradores. Esses usuários sempre terão que executar mklinkem um ambiente elevado (como Administrador) devido à maneira como o UAC remove privilégios ao criar um token de acesso não elevado . Há uma folha de referência prática do Excel para encontrar configurações de diretiva de grupo: Referência de configurações de diretiva de grupo para Windows e Windows Server


12
Aqui, parecia mais o seguinte, apenas para referência, se alguém ficar confuso: Painel de Controle> Ferramentas Administrativas> Política de Segurança Local> Políticas Locais> Atribuição de Direitos do Usuário> Criar links simbólicos E, a propósito, você precisa sair e fazer login novamente para as configurações aplicar.
Seldaek

5
E você pode executar o secpol.msc para pular a primeira parte, e tudo o que resta é: Políticas locais> Atribuição de direitos do usuário> Criar links simbólicos
Seldaek

5
Além disso: Executar "gpupdate / force" a partir do CMD ou apenas da caixa de diálogo Executar também deve aplicar a configuração.
Tobias Plutat

11
Existe alguma maneira de fazer o mesmo via registro para usuários odiados pela Microsoft que não são Windows 8-Pro? gpedit.msc não está disponível para eles
szx 5/15

4
re - "Esses usuários sempre terão que executar o mklink em um ambiente elevado (como Administrador)" ... portanto, os administradores sempre precisam executar com ... arg.
Trevor Boyd Smith

0

Faltam algumas configurações do Windows gpedit.msc. Nesse caso, você pode tentar como uma alternativa:

  1. executando este script do PowerShell a partir daqui :
    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. baixar polsedit, que parece uma alternativa freeware ao gpedit.msc

Em seguida, execute gpupdate /forcepara aplicar as alterações imediatamente


11
Além de dar a fonte. adicione o script caso a fonte não esteja mais presente.
9607 miroxlav

Windows Starter Edition, Home e Home Premium não incluem gpedit.msc. As instruções para instalá-lo estão na minha pergunta e resposta O Windows Starter Edition, Home e Home Premium não incluem o gpedit, como faço para instalá-lo?
DavidPostill
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.