Mengapa% USERDOMAIN% bukan "NT AUTHORITY" untuk pengguna SISTEM?

2

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:

  1. Mengapa USERDOMAIN"MY_CORPORATE_DOMAIN" bukan "NT AUTHORITY"?

  2. Jika saya ingin menjalankan taskkillseperti 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 
Calvin Kwok
sumber
Gunakan SC stop [service_name]untuk menghentikan layanan alih-alih membunuhnya.
DavidPostill

Jawaban:

0

Pada domain, SYSTEMpengguna 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 disebutkan CATACLYSMdalam INFERNOdomain akan INFERNO\CATACLYSM$merespons echo %userdomain%\%username%.

Jika Anda ingin NT AUTHORITY\SYSTEMmenjalankan program sebagai SYSTEM, gunakan whoamiutilitas. 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:

whoami > tmp-whoami
set /p currentuser= < tmp-whoami
del tmp-whoami

Anda kemudian dapat menggunakannya %currentuser%sebagai pengganti %userdomain%\%username%.

Ben N
sumber