Jalankan sebagai administrator dari baris perintah pada Windows 8

11

Saya mencoba menjalankan Notepad sebagai admin sehingga saya dapat mengedit file host saya dari baris perintah.

Saya sudah mencoba runas /user:(myusername)\administrator "notepad c:\windows\system32\drivers\etc\hosts"saya kemudian memasukkan kata sandi saya dan saya dapatkan

RUNAS ERROR: Tidak dapat menjalankan - notepad c: \ windows \ system32 \ drivers \ etc \ hosts 1327: Pembatasan akun menghalangi pengguna ini untuk masuk. Misalnya: pa kosong pedang tidak diizinkan, waktu masuk terbatas, atau pembatasan kebijakan telah diberlakukan.

PS: Saya tahu jika saya memberi izin ke akun pengguna saya, saya dapat mengeditnya tanpa menjalankan sebagai admin. Tapi saya ingin tahu bagaimana melakukan ini tanpa harus mengubah izin pada file host.

Kirill Fuchs
sumber

Jawaban:

7

Oke, alasan mengapa ini tidak berhasil adalah model keamanan di Windows Vista dan yang lebih baru. Akun di grup administrator masih menjalankan semua yang tidak secara eksplisit ditingkatkan sebagai pengguna terbatas. Pengecualiannya adalah Administratorakun, yang menjalankan semuanya naik tinggi. Karena alasan ini, biasanya dianggap buruk untuk digunakan sebagai akun login Anda, dan biasanya dinonaktifkan.

Anda dapat mengaktifkannya dan kemudian runasmemohon sebagai akun itu. Itu menimbulkan beberapa masalah - sekarang Anda menjalankan dengan lingkungan pengguna yang berbeda, yang dapat mengatur variabel lingkungan yang berbeda. 1

Cara yang lebih baik untuk melakukan ini akan benar-benar meningkat sebagai pengguna Anda saat ini melalui UAC. Sayangnya, command prompt standar tidak termasuk kemampuan itu - tetapi kedua program pihak ketiga dan PowerShell dan WSHell (VBScript) yang built-in dapat melakukannya.


Meminjam dari jawaban saya yang lain , Anda dapat menjalankan perintah PowerShell secara langsung dengan powershell -c:

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

yang pada dasarnya memberitahu PowerShell untuk menjalankan yang berikut ( startalias Start-Process):

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

Kuncinya di sini adalah melewati kata kerja runas, memicu UAC.

Baik Start-Process -Verb runascmd standar tidak runasakan melewati direktori kerja saat ini , jadi selalu gunakan path lengkap dalam perintah apa pun yang Anda tingkatkan dengan cara ini.

Perhatikan juga bahwa beberapa argumen seperti -cmungkin berbenturan dengan Start-Processargumen, jadi cara teraman adalah:

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

1 Catatan: ini hanya berlaku untuk variabel lingkungan pengguna . Variabel lingkungan yang Anda atur dalam proses induk tidak diteruskan oleh UAC ! Ini juga berlaku untuk runas, dan bahkan lebih buruk di sana karena Anda bahkan tidak akan mendapatkan vars pengguna yang benar.

Bob
sumber
Tidak berhasil bagi saya dengan tanda kutip ganda.
Vince
@Hodmode Bisakah Anda memberikan contoh baris yang Anda coba jalankan? Jika Anda merujuk pada contoh terakhir, coba pindahkan kutipan pertama ke setelah -c. (jadi -c "startalih-alih "-c start)
Bob
Perhatikan bahwa proses PowerShell tidak tidak harus dijalankan ditinggikan untuk menjalankan program sebagai administrator.
jiggunjer
Aneh bahwa itu berfungsi sebelum pembaruan Windows 10 2019-03.
Qwerty
12

Kemungkinan besar, Anda belum mengaktifkan akun administrator.

Berikut adalah petunjuk untuk mengaktifkan akun administrator .

Anda juga akan menemukan lebih banyak info tentang runa di situs Microsoft.

Nicole Hamilton
sumber
Pengguna administrator saya berhenti bekerja setelah pembaruan Windows 10 2019-03, perintah ini memperbaikinyanet user administrator /active:yes
Qwerty
-1

Satu hal yang bisa Anda coba adalah membuka command prompt sebagai admin dan menjalankan notepad lewat sana. Cukup ketik Notepad. Setelah Anda melakukannya dari sana, Anda dapat mengklik file kemudian membuka dan menavigasi ke file host dan membukanya. Akhirnya, Anda bisa menyimpan seperti biasa.

TylerDaNerd
sumber