Erlaubnis, symbolische Links in Windows 7 zu erstellen?

59

Wie kann ich einem bestimmten Benutzer die Berechtigung zum Erstellen von Symlinks in Windows 7 erteilen?

Ich habe nach "Gruppenrichtlinien" und Google gesucht, aber nichts gefunden.

Gibt es eine Möglichkeit, alles im Gruppenrichtlinien-Editor zu durchsuchen? Die Filter scheinen nur auf bestimmten Teilbäumen zu funktionieren. Ich habe mit den Filtern nie etwas gefunden.

KarolDepka
quelle
2
BTW Weiß jemand, warum das Erstellen von Symlinks Administratorrechte erfordert? Was ist an ihnen so gefährlich?
Monsignore
1
@ Monsignor: Ich habe vor langer Zeit gesehen, dass Microsoft behauptete, zu viele Programme könnten nicht sicher damit umgehen. Trotzdem ärgere ich mich ziemlich darüber, dass sie eine Erhebung benötigen, um benutzt zu werden.
Joshua

Antworten:

63
  1. Öffnen Sie den lokalen Gruppenrichtlinien-Editor : Run> gpedit.msc. Wenn dies nicht funktioniert, versuchen Sie es secpol.msc(Hinweis: Windows Home- Benutzer müssen möglicherweise zuerst den Gruppenrichtlinien-Editor aktivieren ).

  2. Wechseln Sie zu (Windows Pro-Benutzer sehen möglicherweise nicht die ersten beiden Elemente):

    Computer configuration → Windows SettingsSecurity Settings → Local Policies → User Rights Assignmentund bearbeiten Sie die Create symbolic links.

    Bildbeschreibung hier eingeben

  3. Fügen Sie den Benutzer oder die Gruppe hinzu, die Sie zum Erstellen symbolischer Links zulassen möchten.

  4. Wenn Sie Ihr eigenes Benutzerkonto hinzugefügt haben, müssen Sie sich abmelden und erneut anmelden, damit die Änderung wirksam wird.

Hinweis : Diese Einstellung hat keine Auswirkungen auf Benutzerkonten, die zur Gruppe Administratoren gehören. Diese Benutzer werden immer laufen müssen mklinkin einer erhöhten Umgebung (als Administrator) aufgrund der Art und Weise UAC Privilegien entfernt , wenn ein nicht erhöhten Zugriffstoken zu schaffen . Es gibt ein praktisches Excel-Referenzblatt zum Auffinden von Gruppenrichtlinieneinstellungen: Referenz zu Gruppenrichtlinieneinstellungen für Windows und Windows Server

DanO
quelle
12
Hier sah es eher wie folgt aus, nur als Referenz, wenn jemand verwirrt ist: Systemsteuerung> Verwaltung> Lokale Sicherheitsrichtlinie> Lokale Richtlinien> Zuweisen von Benutzerrechten> Erstellen symbolischer Links. Übrigens müssen Sie sich für die Einstellungen abmelden und erneut anmelden bewerben.
Seldaek,
5
Und Sie können secpol.msc ausführen, um den ersten Teil zu überspringen. Dann müssen Sie nur noch: Lokale Richtlinien> Zuweisung von Benutzerrechten> Symbolische Links erstellen
Seldaek,
5
Außerdem: Wenn Sie "gpupdate / force" entweder über CMD oder nur über das Dialogfeld "Ausführen" ausführen, sollte die Einstellung ebenfalls angewendet werden.
Tobias Plutat
1
Gibt es eine Möglichkeit, dies auch über die Registrierung für Microsoft-gehasste Nicht-Windows-8-Pro-Benutzer zu tun? gpedit.msc steht ihnen nicht zur Verfügung
szx
4
re - "Diese Benutzer müssen mklink immer in einer erhöhten Umgebung ausführen (als Administrator)" ... damit Administratoren immer mit erhöhten ... arg ausgeführt werden müssen.
Trevor Boyd Smith
0

Einige Windows-Konfigurationen fehlen gpedit.msc. In diesem Fall können Sie alternativ versuchen:

  1. Ausführen dieses PowerShell-Skripts von hier :
    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. Lade polsedit herunter, das aussieht wie eine Freeware-Alternative zu gpedit.msc

Führen Sie dann aus gpupdate /force, um die Änderungen sofort zu übernehmen

Nikita Malyavin
quelle
1
Neben der Angabe der Quelle. Bitte fügen Sie das Skript hinzu, falls die Quelle nicht mehr vorhanden ist.
Miroxlav
Windows Starter Edition, Home und Home Premium enthalten nicht gpedit.msc. Anweisungen zur Installation finden Sie in meiner Frage & Antwort. Windows Starter Edition, Home und Home Premium enthalten kein gpedit. Wie installiere ich es?
DavidPostill