Uruchom jako administrator z wiersza poleceń w systemie Windows 8

11

Próbuję uruchomić Notatnik jako administrator, aby móc edytować plik hosts z wiersza polecenia.

Próbowałem runas /user:(myusername)\administrator "notepad c:\windows\system32\drivers\etc\hosts"następnie wprowadzić hasło i dostaję

BŁĄD RUNAS: Nie można uruchomić - notatnik c: \ windows \ system32 \ drivers \ etc \ hosts 1327: Ograniczenia konta uniemożliwiają zalogowanie się tego użytkownika. Na przykład: puste hasła nie są dozwolone, czasy logowania są ograniczone, lub wprowadzono ograniczenie polityki.

PS: Wiem, że jeśli pozwolę na moje konto użytkownika, mogę je edytować bez uruchamiania jako administrator. Ale chciałbym wiedzieć, jak to zrobić bez konieczności zmiany uprawnień do pliku hosts.

Kirill Fuchs
źródło

Odpowiedzi:

7

Ok, powodem tego nie jest model bezpieczeństwa w systemie Windows Vista i nowszych. Konto w grupie administratorów nadal uruchamia wszystko, co nie jest jawnie podniesione jako ograniczony użytkownik. Wyjątkiem jest Administratorkonto, które uruchamia wszystko podniesione. Z tego powodu korzystanie ze swojego konta logowania jest ogólnie złe, i zwykle jest wyłączone.

Możesz go włączyć, a następnie runaswywołać jako to konto. To wprowadza kilka problemów - teraz pracujesz w środowisku innego użytkownika, który może mieć ustawione różne zmienne środowiskowe. 1

Lepszym sposobem na osiągnięcie tego byłoby podniesienie poziomu twojego obecnego użytkownika za pomocą UAC. Niestety standardowy wiersz poleceń nie zawiera tej możliwości - ale mogą to zrobić zarówno programy innych firm, jak i wbudowane PowerShell i WSHell (VBScript).


Pożyczając z mojej innej odpowiedzi , możesz wywołać polecenie PowerShell bezpośrednio za pomocą powershell -c:

powershell -c start -verb runas notepad C:\Windows\System32\drivers\etc\hosts

który w zasadzie mówi PowerShellowi, aby uruchomił następujące ( startjest aliasowany Start-Process):

Start-Process -Verb "runas" notepad C:\Windows\System32\drivers\etc\hosts

Sztuczka polega na przekazaniu czasownika runas, uruchamiając UAC.

Ani Start-Process -Verb runasstandardowy cmd runasnie przejdzie do bieżącego katalogu roboczego , więc zawsze używaj pełnej ścieżki w poleceniach podniesionych w ten sposób.

Zauważ też, że niektóre argumenty, takie jak, -cmogą kolidować z Start-Processargumentami, więc najbezpieczniejszym sposobem jest:

powershell "-c start -verb runas commandname -argumentlist 'arg1 arg2'"

1 Uwaga: dotyczy to tylko dla użytkowników zmiennych środowiskowych „s. Zmienne środowiskowe ustawione w procesie nadrzędnym nie są przekazywane przez UAC ! Dotyczy to również runas, a nawet gorzej, ponieważ nie dostaniesz nawet różnych użytkowników.

Kok
źródło
W przypadku podwójnych cudzysłowów nie działało to dla mnie.
Vince
@Ghodmode Czy możesz podać przykład linii, którą próbujesz uruchomić? Jeśli odwołujesz się do ostatniego przykładu, spróbuj przenieść pierwszy cytat po -c. (więc -c "startzamiast "-c start)
Bob
Zauważ, że proces PowerShell nie musi być uruchamiany z podwyższonym poziomem uprawnień , aby uruchomić program jako administrator.
jiggunjer
Dziwne, że działał przed aktualizacją systemu Windows 10 2019-03.
Qwerty
-1

Jedną z rzeczy, które możesz wypróbować, jest otwarcie wiersza polecenia jako administrator i uruchomienie notatnika. Po prostu wpisz Notepad. Po wykonaniu tej czynności możesz kliknąć plik, a następnie otworzyć i przejść do pliku hosts i otworzyć go. Wreszcie możesz po prostu zapisać jak zwykle.

TylerDaNerd
źródło