Windows 7에서 심볼릭 링크를 만들 수 있습니까?


59

Windows 7에서 특정 사용자에게 심볼릭 링크를 만들 수있는 권한을 부여하려면 어떻게해야합니까?

'그룹 정책'과 Google을 통해 검색했지만 아무것도 찾지 못했습니다.

참고로 그룹 정책 편집기의 모든 항목을 검색하는 방법이 있습니까? 필터는 특정 하위 트리에서만 작동하는 것 같습니다. 필터를 사용하여 실제로 아무것도 찾지 못했습니다.


2
BTW 심볼릭 링크를 만드는 데 관리자 권한이 필요한 이유를 아는 사람이 있습니까? 그들에게 무엇이 위험한가?
Monsignor

1
@Monsignor : 오래 전에 Microsoft가 너무 많은 프로그램이 안전하게 처리 할 수 ​​없다고 주장했습니다. 어쨌든 나는 사용하기 위해 고도가 필요하다는 것이 다소 화가납니다.
여호수아

답변:


63
  1. 열기 로컬 그룹 정책 편집기를 : Run> gpedit.msc. 그 시도가 작동하지 않는 경우 secpol.msc(참고, 윈도우 홈 사용자가해야 할 수도 있습니다 그룹 정책 편집기를 사용 첫번째).

  2. 다음으로 이동하십시오 (Windows Pro 사용자에게는 처음 두 항목이 표시되지 않을 수 있음).

    Computer configuration → Windows SettingsSecurity Settings → Local Policies → User Rights Assignment을 편집하십시오 Create symbolic links.

    여기에 이미지 설명을 입력하십시오

  3. 기호 링크 작성을 허용하려는 사용자 또는 그룹을 추가하십시오.

  4. 자신의 사용자 계정을 추가 한 경우 , 변경 사항을 적용 하려면 로그 아웃했다가 다시 로그인 해야합니다.

참고 :이 설정은 관리자 그룹에 속하는 사용자 계정에는 영향을 미치지 않습니다. 이러한 사용자는 관리자 가 아닌 관리자 권한으로 높은 수준의 액세스 토큰을 만들 때 UAC가 권한을 제거하는 방식 때문에 항상 실행해야합니다 . 그룹 정책 설정을 찾기위한 편리한 Excel 참조 시트가 있습니다. Windows 및 Windows Server 용 그룹 정책 설정 참조mklink


12
누군가 혼란스러워하는 경우 참조를 위해 다음과 같이 보입니다. 제어판> 관리 도구> 로컬 보안 정책> 로컬 정책> 사용자 권한 할당> 심볼릭 링크 만들기 그리고 설정을 위해 로그 아웃하고 다시 로그인해야합니다. 적용합니다.
Seldaek

5
그리고 secpol.msc를 실행하여 첫 번째 부분을 건너 뛸 수 있습니다. 로컬 정책> 사용자 권한 할당> 심볼릭 링크 만들기
Seldaek

5
또한 : CMD 또는 "실행"대화 상자에서 "gpupdate / force"를 실행하면 설정도 적용됩니다.
Tobias Plutat

1
Microsoft-hated-non-Windows-8-Pro 사용자를 위해 레지스트리를 통해 동일한 작업을 수행 할 수 있습니까? gpedit.msc는 사용할 수 없습니다
szx

4
re- "사용자는 항상 관리자 권한으로 관리자 환경에서 mklink를 실행해야합니다."... 관리자는 항상 관리자 권한으로 실행해야합니다. arg.
Trevor Boyd Smith

0

일부 창 구성이 누락되었습니다 gpedit.msc. 이 경우 대안으로 시도 할 수 있습니다.

  1. 이 PowerShell 스크립트 를 여기에서 실행 하십시오 .
    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. gpedit.msc의 프리웨어 대안으로 보이는 polsedit 다운로드

그런 다음 gpupdate /force즉시 변경 사항을 적용하기 위해 실행 하십시오.


1
소스를 제공하는 것 외에도. 소스가 더 이상 존재하지 않는 경우 스크립트를 추가하십시오.
miroxlav

Windows Starter Edition, Home 및 Home Premium에는 gpedit.msc가 포함되어 있지 않습니다. 설치 방법은 내 질문에 있으며 Windows Starter Edition, Home 및 Home Premium에는 gpedit가 포함되어 있지 않습니다. 어떻게 설치합니까?
DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.