Izin untuk membuat tautan simbolis di Windows 7?

59

Bagaimana saya bisa memberikan izin kepada pengguna tertentu untuk membuat symlink di Windows 7?

Saya telah mencari melalui "Kebijakan Grup" dan Google, tetapi belum menemukan apa pun.

Di samping catatan, apakah ada cara untuk mencari segala sesuatu di Editor Kebijakan Grup? Filter sepertinya hanya berfungsi pada sub pohon tertentu. Saya tidak pernah menemukan sesuatu menggunakan filter.

KarolDepka
sumber
2
BTW Apakah ada yang tahu mengapa membuat symlink memerlukan izin admin? Apa yang begitu berbahaya di dalamnya?
Monsinyur
1
@ Monsignor: Saya sudah lama melihat bahwa Microsoft mengklaim terlalu banyak program tidak bisa menanganinya dengan aman. Pokoknya saya agak kesal karena mereka membutuhkan elevasi untuk digunakan.
Joshua

Jawaban:

63
  1. Buka Editor Kebijakan Grup Lokal : Run> gpedit.msc. Jika itu tidak berhasil coba secpol.msc(Catatan, pengguna Windows Home mungkin perlu mengaktifkan grup-kebijakan-editor terlebih dahulu).

  2. Ke (Pengguna Windows Pro mungkin tidak melihat dua item pertama):

    Computer configuration → Windows SettingsSecurity Settings → Local Policies → User Rights Assignmentdan edit Create symbolic links.

    masukkan deskripsi gambar di sini

  3. Tambahkan pengguna atau grup yang ingin Anda izinkan untuk membuat tautan simbolik.

  4. Jika Anda telah menambahkan akun pengguna Anda sendiri, Anda harus keluar dan masuk kembali agar perubahan tersebut berlaku.

Catatan : Pengaturan ini tidak berpengaruh pada akun pengguna milik grup Administrators. Para pengguna harus selalu berjalan mklinkdi lingkungan yang ditinggikan (sebagai Administrator) karena cara UAC menghapus hak istimewa saat membuat token akses yang tidak ditinggikan . Ada lembar referensi Excel yang berguna untuk menemukan pengaturan kebijakan grup: Referensi Pengaturan Kebijakan Grup untuk Windows dan Windows Server

DanO
sumber
12
Di sini tampak lebih seperti berikut, hanya untuk referensi jika ada yang bingung: Panel Kontrol> Alat Administratif> Kebijakan Keamanan Lokal> Kebijakan Lokal> Tugas Hak Pengguna> Buat tautan simbolis Dan dengan cara Anda perlu keluar dan masuk lagi untuk pengaturan untuk melamar.
Seldaek
5
Dan Anda dapat menjalankan secpol.msc untuk melewati bagian pertama, maka yang tersisa hanyalah: Kebijakan Lokal> Penetapan Hak Pengguna> Buat tautan simbolis
Seldaek
5
Juga: Menjalankan "gpupdate / force" dari CMD atau hanya dialog Run harus menerapkan pengaturan juga.
Tobias Plutat
1
Adakah cara untuk melakukan hal yang sama melalui registri untuk pengguna Microsoft-benci-non-Windows-8-Pro? gpedit.msc tidak tersedia untuk mereka
szx
4
re - "Pengguna itu harus selalu menjalankan mklink di lingkungan yang ditinggikan (sebagai Administrator)" ... jadi administrator selalu harus menjalankan dengan peningkatan ... arg.
Trevor Boyd Smith
0

Beberapa konfigurasi windows ketinggalan gpedit.msc. Dalam hal ini Anda dapat mencoba sebagai alternatif:

  1. menjalankan skrip PowerShell ini dari sini :
    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. unduh polsedit yang merupakan alternatif freeware untuk gpedit.msc

Kemudian jalankan gpupdate /forceuntuk menerapkan perubahan dengan segera

Nikita Malyavin
sumber
1
Selain memberi sumber. harap tambahkan skrip jika sumbernya tidak ada lagi.
miroxlav
Windows Starter Edition, Home dan Home Premium tidak termasuk gpedit.msc. Petunjuk untuk menginstalnya ada di pertanyaan saya & jawab Windows Starter Edition, Home dan Home Premium tidak termasuk gpedit, bagaimana cara menginstalnya?
DavidPostill