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.