Penekanan dari pertanyaan ini adalah pada babak kedua.
Saya tahu cara mengekstrak daftar semua layanan dan cara memfilter di negara mereka. Namun, apa yang tidak pasti saya lakukan adalah mengekstrak akun pengguna, layanan ini diatur untuk "dijalankan sebagai".
Saya tidak memiliki opsi untuk menggunakan PowerShell (sayangnya), jadi saya mencari cara CMD asli. Saya berasumsi akan ada cara untuk menggunakan perintah sc query tetapi semua daftar itu adalah:
SERVICE_NAME
TYPE
STATE
WIN32_EXIT_CODE
SERVICE_EXIT_CODE
CHECKPOINT
WAIT_HINT
FYI - OS ini adalah WIndows 2003 SP2 dan saya memerlukan informasi ini untuk semua layanan, jadi ini adalah proses yang panjang lebar jika saya harus melakukannya secara manual untuk masing-masing.
sc query
danwmic
?Anda dapat mencapai ini dalam dua langkah:
sc \\localhost query | findstr SERVICE_NAME
sc \\localhost qc
+ SERVICE_NAME +| findstr SERVICE_START_NAME
Saya akan merekomendasikan skrip batch seperti ini:
Itu memberi Anda output seperti ini:
Tentu saja, Anda dapat membersihkan output tersebut atau menulis ke file CSV dengan cara apa pun yang Anda inginkan.
sumber
CMD tidak memiliki cara asli untuk melakukannya. SC dan NET adalah aplikasi bawaan yang datang dengan Windows tetapi itu tidak berarti itu asli. Kapan saja admin dapat menghapusnya dan bahkan CMD dibiarkan dalam kegelapan.
sc sdshow adalah apa yang akan membuat Anda deskriptor keamanan, tetapi ini akan mempersulit hal-hal jika Anda tidak tahu cara membaca string SDDL.
Cara paling sederhana adalah dengan mendapatkan Sysinternals PsService.exe dari paket Tools dan menggunakannya sebagai keamanan layanan [layanan] psservice. Ini akan mencantumkan SDDL dalam format yang dapat dibaca, termasuk nama akun.
sumber
C:\Windows\System32\sc.exe
untuk semua versi windows?Meskipun Anda tidak dapat menggunakan PowerShell, Anda masih harus dapat menggunakan VBScript untuk menarik info dari WMI:
Berikut skrip VBS yang akan mencantumkan semua layanan dan akun yang dimulainya sebagai:
Simpan dan jalankan dengan
cscript ScriptName.vbs
.objService.State
akan memberi Anda status layanan saat ini (karena Anda menyebutkan bahwa Anda ingin memfilternya).Info lebih lanjut tentang kelas Win32_Service .
sumber