Daha önce kısmen bu konuyla ilgilenmiştim ama yeterli olmamıştı.
Komut satırından bir süreci başlatan süreci bulmak istiyourm. Örneğin bir notepad süreci var. Bunu başlatan süreci Get-Process ile bulmak mümkün değil. Bir WMI/CIM sorgusu lazım. Bunu da hem PID, hem de süreç ismi ile çalışacak şekilde yapmam gerek. Ben şöyle bir parent.ps1 dosyası oluşturarak yaptım:
bunuda
.\parent.ps1 -ProcessName notepad
şeklinde çalıştırınca şöyle bir çıktı verdi:
ProcessId ParentProcessId Name CommandLine
--------- --------------- ---- -----------
12216 3708 Notepad.exe "C:\Windows\System32\notepad.exe" Buradan 3708'i sorguladığımda bana svchost döndü.
ps -id 3708
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
450 21 7576 51272 3708 0 svchost Bu noktada da win32_service sınıfını sogrulamak gerek, 3708'in içinde hangi hizmetler çalışıyor diye:
Bunu da serv.ps1 diye kaydedip
.\serv1.ps1 -Id 3708
şeklinde çalıştırınca
ProcessId Name StartMode State Status ExitCode
--------- ---- --------- ----- ------ --------
3708 Schedule Auto Running OK 0Notepad'i çalıştıran hizmetin görev zamanlayıcısı olduğunu buldum.
Hiç yorum yok:
Yorum Gönder