web-dev-qa-db-fra.com

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

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.

58
KarolDepka
  1. Ouvrez l’éditeur de stratégie de groupe locale: Run> gpedit.msc. Si cela ne fonctionne pas, essayez secpol.msc(Remarque, Windows Homeles utilisateurs devront peut-être activer le groupe. -policy-editor en premier).

  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 modifiez le code Create symbolic links.

    enter image description here

  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 connecterpour que la modification soit prise en compte.

Remarque : ce paramètre n'a aucun effet sur les comptes d'utilisateurs appartenant au groupe Administrateurs. Ces utilisateurs devront toujours toujours exécuter mklink dans 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

61
DanO

Certaines configurations 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

Ensuite, lancez gpupdate /force pour appliquer les modifications immédiatement

0
Nikita Malyavin