Zezwolenie na tworzenie dowiązań symbolicznych w systemie Windows 7?

59

Jak mogę przyznać konkretnemu użytkownikowi uprawnienia do tworzenia dowiązań symbolicznych w systemie Windows 7?

Przeszukałem „Zasady grupy” i Google, ale niczego nie znalazłem.

Na marginesie, czy istnieje sposób na przeszukanie wszystkiego w Edytorze zasad grupy? Filtry wydają się działać tylko w określonych poddrzewach. Nigdy nie znalazłem niczego przy użyciu filtrów.

KarolDepka
źródło
2
BTW Czy ktoś wie, dlaczego tworzenie dowiązań symbolicznych wymaga uprawnień administratora? Co jest w nich takiego niebezpiecznego?
Monsignor,
1
@Monsignor: Dawno temu widziałem, że Microsoft twierdzi, że zbyt wiele programów nie może ich bezpiecznie obsłużyć. W każdym razie jestem raczej zirytowany, że wymagają one podniesienia do użycia.
Joshua

Odpowiedzi:

63
  1. Otwórz Edytor lokalnych zasad grupy : Run> gpedit.msc. Jeśli to nie zadziała, spróbuj secpol.msc(uwaga: użytkownicy systemu Windows Home mogą potrzebować najpierw włączyć edytora zasad grupy ).

  2. Idź do (użytkownicy Windows Pro mogą nie widzieć pierwszych dwóch elementów):

    Computer configuration → Windows SettingsSecurity Settings → Local Policies → User Rights Assignmenti edytuj Create symbolic links.

    wprowadź opis zdjęcia tutaj

  3. Dodaj użytkownika lub grupę, której chcesz zezwolić na tworzenie dowiązań symbolicznych.

  4. Jeśli dodałeś własne konto użytkownika, musisz się wylogować i zalogować ponownie, aby zmiana odniosła skutek.

Uwaga : To ustawienie nie ma wpływu na konta użytkowników, które należą do grupy Administratorzy. Ci użytkownicy zawsze będą musieli działać mklinkw środowisku z podwyższonym poziomem uprawnień (jako Administrator) ze względu na sposób, w jaki UAC usuwa uprawnienia podczas tworzenia tokena o podwyższonym poziomie uprawnień . Jest przydatny arkusz referencyjny Excel do wyszukiwania ustawień zasad grupy: Dokumentacja ustawień zasad grupy dla Windows i Windows Server

DanO
źródło
12
Tutaj wyglądało to bardziej jak poniżej, tylko w celach informacyjnych, jeśli ktoś się pomyli: Panel sterowania> Narzędzia administracyjne> Zasady zabezpieczeń lokalnych> Zasady lokalne> Przypisywanie praw użytkownika> Utwórz dowiązania symboliczne. A przy okazji, musisz się wylogować i zalogować ponownie dla ustawień aplikować.
Seldaek
5
I możesz uruchomić secpol.msc, aby pominąć pierwszą część, a wszystko, co pozostało, to: Zasady lokalne> Przypisanie praw użytkownika> Utwórz dowiązania symboliczne
Seldaek
5
Ponadto: Uruchomienie polecenia „gpupdate / force” z CMD lub tylko z okna dialogowego Uruchom powinno również zastosować to ustawienie.
Tobias Plutat
1
W jakikolwiek sposób zrobić to samo za pomocą rejestru dla użytkowników nienawidzonych przez Microsoft nie-Windows-8-Pro? gpedit.msc nie jest dla nich dostępny
szx
4
re - „Ci użytkownicy zawsze będą musieli uruchamiać mklink w środowisku z podwyższonym poziomem uprawnień (jako Administrator)” ... więc administratorzy zawsze muszą działać z podwyższonym ... arg.
Trevor Boyd Smith
0

Brakuje niektórych konfiguracji systemu Windows gpedit.msc. W takim przypadku możesz spróbować alternatywnie:

  1. uruchamianie skryptu PowerShell stąd :
    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. pobierz polsedit, który wygląda na darmową alternatywę dla gpedit.msc

Następnie uruchom, gpupdate /forceaby od razu zastosować zmiany

Nikita Malyavin
źródło
1
Oprócz podania źródła. dodaj skrypt na wypadek, gdyby źródło nie było już obecne.
miroxlav
Windows Starter Edition, Home i Home Premium nie obejmują gpedit.msc. Instrukcje instalacji znajdują się w moim pytaniu i odpowiedzi Windows Starter Edition, Home i Home Premium nie zawierają gpedit, jak to zainstalować?
DavidPostill