Jalankan perintah berikut
set USERDOMAIN
set USERNAME
dalam layanan Windows akan kembali
USERDOMAIN=MY_CORPORATE_DOMAIN
USERNAME=SYSTEM
Tetapi layanan saya berjalan di "NT AUTHORITY \ SYSTEM".
Pertanyaan saya adalah:
Mengapa
USERDOMAIN
"MY_CORPORATE_DOMAIN" bukan "NT AUTHORITY"?Jika saya ingin menjalankan
taskkill
seperti yang ditunjukkan di bawah ini untuk mematikan proses saya di bawah pengguna saat ini.- Ini tidak akan berjalan dengan benar di pengguna SISTEM, karena userdomain mengembalikan MY_CORPORATE_DOMAIN, yang seharusnya mengembalikan NT AUTHORITY.
Bagaimana saya bisa menulis ulang perintah?
taskkill /F /FI "USERNAME eq %userdomain%\%username%" /IM my_process.exe
windows
command-line
cmd.exe
windows-services
Calvin Kwok
sumber
sumber
SC stop [service_name]
untuk menghentikan layanan alih-alih membunuhnya.Jawaban:
Pada domain,
SYSTEM
pengguna menggunakan kredensial akun mesin Direktori Aktif dalam beberapa keadaan, ini salah satunya. Komputer memiliki akun juga; nama SAM mereka hanya nama komputer dengan tambahan$
di akhir. Oleh karena itu, komputer yang disebutkanCATACLYSM
dalamINFERNO
domain akanINFERNO\CATACLYSM$
meresponsecho %userdomain%\%username%
.Jika Anda ingin
NT AUTHORITY\SYSTEM
menjalankan program sebagaiSYSTEM
, gunakanwhoami
utilitas. Sayangnya, tidak ada cara yang bagus di Windows batch untuk meletakkan output dari suatu perintah dalam sebuah variabel. Jawaban Stack Overflow ini akan menyarankan Anda melakukan sesuatu seperti ini:Anda kemudian dapat menggunakannya
%currentuser%
sebagai pengganti%userdomain%\%username%
.sumber