Kør forhøjede kommandoer med Sudo på Windows 11

Startende med build 24H2 inkluderer Windows 11 en indbyggetsudokommando. Denne kommando tillader at køre kommandoer som administrator direkte fra en uprivilegeret (ikke-admin) CMD/PowerShell/Terminal-session.

Som standard er sudo-kommandoen deaktiveret i Windows 11. For at tillade brug af dette værktøj skal du brugeAktiver sudovippekontakt indIndstillinger->System->For udviklere.

Læs også:Sådan åbnes forhøjet kommandoprompt fra standardbruger i Windows

Eller du kan aktivere sudo via Windows-registreringsdatabasen.

reg add "HKLMSoftwareMicrosoftWindowsCurrentVersionSudo" /v "Enabled" /t REG_DWORD /d 1 /f

For eksempel vil kørsel af følgende PowerShell-kommando for at genstarte en Windows-tjeneste fra en ikke-forhøjet terminal resultere i en fejl

Restart-Service iphlpsvc

Aktiver derefter sudo i Windows-indstillingerne og kør den samme kommando via sudo.

sudo powershell "Restart-Service iphlpsvc"

En UAC-prompt (User Account Control) vises, der anmoder om privilegieforhøjelse. Når den er godkendt, startes et nyt terminalvindue (adskilt fra den aktuelle session, hvor konteksten allerede var etableret), og den angivne kommando udføres med administrative rettigheder.

I modsætning til runas beder sudo-kommandoen ikke om en administratoradgangskode på kommandolinjen. UAC-prompten bruges til at bekræfte og hæve den aktuelle brugers privilegier, men den tillader ikke valg af en anden brugerkonto til elevation.

På samme måde kan du bruge Sudo i CMD-prompten. Jeg forsøger at stoppe tjenesten ved hjælp af en ikke-admin (ikke-forhøjet) kommandoprompt.

net stop iphlpsvc

System error 5 has occurred.
Access is denied.

Nu kører jeg den samme kommando via sudo:

sudo net stop iphlpsvc

Tidligere krævede kørsel af et program eller en kommando med forhøjede tilladelser fra en ikke-privilegeret konsol at starte et nyt kommandopromptvindue ved hjælp af "Kør som administratorHvis PowerShell-konsollen kørte i ikke-admin-tilstand, skulle du starte en forhøjet session fra den aktuelle session ved at bruge denne kommando:

Start-Process powershell -Verb runAs

Sudo til Windows kører apps med forhøjede rettigheder itretilstande. Disse tilstande kan vælges fra appen Indstillinger eller angives fra kommandolinjen.

  • I et nyt vindue– når en kommando eller et program køres via sudo, åbnes det i et nyt forhøjet vindue (session), der kører som administrator. Dette er standardadfærden.sudo config --enable forceNewWindow
  • Med input deaktiveret –dette er den sikreste mulighed, hvor kommandoen kører med forhøjede rettigheder i det aktuelle vindue, men ikke kan modtage eller bede om brugerinput i den pågældende session:sudo config --enable disableInput
  • Inline– denne tilstand minder mest om opførselen af ​​sudo-kommandoen i Linux og andre operativsystemer. En forhøjet kommando kører i den aktuelle konsol og kan modtage input fra den (den mest bekvemme, men mindst sikre mulighed):sudo config --enable normal

Du kan køre en forhøjet kommando i den aktuelle konsol ved hjælp af sudo, uanset den aktuelle sudo-tilstand. Bare tilføjinlinevalgmulighed.

sudo --inline net stop iphlpsvc

For at se den fulde liste over understøttede sudo-indstillinger og -parametre i Windows skal du køre følgende kommando:

sudo -h

Related Posts