69 votes

Autorisation de créer des liens symboliques dans Windows 7 ?

Comment puis-je accorder à un utilisateur particulier la permission de créer des liens symboliques dans Windows 7 ?

J'ai cherché dans "Group Policy" et sur Google, mais je n'ai rien trouvé.

Par ailleurs, existe-t-il un moyen de faire des recherches dans l'éditeur de stratégie de groupe ? Les filtres ne semblent fonctionner que sur des sous-arbres particuliers. Je n'ai jamais trouvé quoi que ce soit en utilisant les filtres.

79voto

mcchots Points 339
  1. Ouvrez le Éditeur de politique de groupe locale : Run > gpedit.msc . Si cela ne fonctionne pas, essayez secpol.msc (Note, Accueil Windows les utilisateurs peuvent avoir besoin de enable group-policy-editor d'abord).

  2. Allez sur (les utilisateurs de Windows Pro peuvent ne pas voir les deux premiers éléments) :

    Computer configuration Windows Settings Security Settings Local Policies User Rights Assignment et modifiez le Create symbolic links .

    enter image description here

  3. Ajoutez l'utilisateur ou le groupe que vous voulez autoriser à créer des liens symboliques.

  4. Si vous avez ajouté votre propre compte utilisateur, vous devez se déconnecter et se connecter pour que le changement ait un effet.

Note : Ce paramètre n'a aucun effet sur les comptes d'utilisateur qui appartiennent au groupe Administrateurs. Ces utilisateurs toujours doivent courir mklink dans un environnement élevé (en tant qu'administrateur) à cause de la façon dont l'UAC supprime les privilèges lors de la création d'un jeton d'accès non élevé. . Il existe une feuille de référence Excel très pratique pour trouver les paramètres de la stratégie de groupe : Référence des paramètres de stratégie de groupe pour Windows et Windows Server

6voto

Nikita Malyavin Points 141

Certaines configurations de Windows manquent gpedit.msc . Dans ce cas, vous pouvez essayer comme alternative :

  1. en exécutant ce script PowerShell. d'ici :

    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;
        }
    }
  2. télécharger polsedit qui ressemble à une alternative freeware à gpedit.msc

Ensuite, exécutez gpupdate /force pour appliquer les changements immédiatement

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X