L'autorisation de créer des liens symboliques dans Windows 7?

60

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

J'ai effectué une recherche dans "Stratégie de groupe" et Google, mais je n'ai rien trouvé.

En passant, y a-t-il un moyen de parcourir tout dans l'éditeur de stratégie de groupe? Les filtres ne semblent fonctionner que sur des sous-arbres particuliers. Je n'ai jamais rien trouvé en utilisant les filtres.

KarolDepka
la source
2
BTW Est-ce que quelqu'un sait pourquoi la création de liens symboliques nécessite des autorisations d'administrateur? Qu'est-ce qui est si dangereux en eux?
Monseigneur
1
@Monsignor: J'ai vu il y a longtemps que Microsoft affirmait que trop de programmes ne pouvaient pas les gérer en toute sécurité. Quoi qu'il en soit, je suis plutôt ennuyé qu'ils ont besoin d'élévation à utiliser.
Josué

Réponses:

64
  1. Ouvrez l' éditeur de stratégie de groupe local : Run> gpedit.msc. Si cela ne fonctionne pas, essayez secpol.msc(Remarque, les utilisateurs de Windows Home devront peut-être d'abord activer l'éditeur de stratégie de groupe ).

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

    Computer configuration → Windows SettingsSecurity Settings → Local Policies → User Rights Assignmentet éditez le Create symbolic links.

    entrez la description de l'image ici

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

  4. Si vous avez ajouté votre propre compte utilisateur, vous devez vous déconnecter et vous reconnecter pour que la modification ait un effet.

Remarque : ce paramètre n'a aucun effet sur les comptes d'utilisateurs appartenant au groupe Administrateurs. Ces utilisateurs devront toujours s'exécuter mklinkdans un environnement élevé (en tant qu'administrateur) en raison de la façon dont le contrôle de compte d'utilisateur 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 pratique pour rechercher les paramètres de stratégie de groupe: Référence des paramètres de stratégie de groupe pour Windows et Windows Server

DanO
la source
13
Ici, cela ressemblait plus à ce qui suit, juste pour référence si quelqu'un s'embrouille: Panneau de configuration> Outils d'administration> Stratégie de sécurité locale> Stratégies locales> Attribution des droits utilisateur> Créer des liens symboliques. postuler.
Seldaek
5
Et vous pouvez exécuter secpol.msc pour ignorer la première partie. Il ne vous reste plus qu'à: Stratégies locales> Attribution des droits de l'utilisateur> Créer des liens symboliques
Seldaek
5
En outre: L'exécution de "gpupdate / force" à partir de CMD ou simplement de la boîte de dialogue Exécuter devrait également appliquer le paramètre.
Tobias Plutat le
1
Est-il possible de faire la même chose via le registre pour les utilisateurs non-Windows-8-Pro? gpedit.msc n'est pas disponible pour eux
dimanche
4
re - "Ces utilisateurs devront toujours exécuter mklink dans un environnement élevé (en tant qu'administrateur)" ... ainsi, les administrateurs doivent toujours utiliser une version élevée ... arg.
Trevor Boyd Smith
0

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

  1. exécuter ce script PowerShell à partir 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;
        }
    }
  1. Téléchargez polsedit qui ressemble à une alternative gratuite à gpedit.msc

Puis lancez gpupdate /forcepour appliquer les modifications immédiatement

Nikita Malyavin
la source
1
En plus de donner la source. veuillez ajouter le script au cas où la source ne serait plus présente.
miroxlav
Windows Starter Edition, Home et Home Premium n'incluent pas gpedit.msc. Les instructions pour l'installer sont dans ma question & réponse Windows Starter Edition, Home and Home Premium n'incluent pas gpedit, comment puis-je l'installer?
DavidPostill